diff --git a/model/reader.go b/model/reader.go index 77a29dbf..5c570c06 100644 --- a/model/reader.go +++ b/model/reader.go @@ -414,13 +414,11 @@ func (r *PdfReader) GetOutlinesFlattened() ([]*PdfOutlineTreeNode, []string, err return } - if item, isItem := node.context.(*PdfOutlineItem); isItem { + item, isItem := node.context.(*PdfOutlineItem) + if isItem { *outlineList = append(*outlineList, &item.PdfOutlineTreeNode) - title := strings.Repeat(" ", depth*2) + item.Title.Str() + title := strings.Repeat(" ", depth*2) + item.Title.Decoded() *titleList = append(*titleList, title) - if item.Next != nil { - flattenFunc(item.Next, outlineList, titleList, depth) - } } if node.First != nil { @@ -428,6 +426,10 @@ func (r *PdfReader) GetOutlinesFlattened() ([]*PdfOutlineTreeNode, []string, err *titleList = append(*titleList, title) flattenFunc(node.First, outlineList, titleList, depth+1) } + + if isItem && item.Next != nil { + flattenFunc(item.Next, outlineList, titleList, depth) + } } flattenFunc(r.outlineTree, &outlineNodeList, &flattenedTitleList, 0) return outlineNodeList, flattenedTitleList, nil