使用python从PDF获取目录

问题描述

我正在尝试从PDF获取目录。我为此使用PyMuPDF。但是,只有在PDF由书签组成时,它才会提取ToC。否则只会导致一个空列表。

def get_Table_Of_Contents(doc):
    toc = doc.getToC()
    return toc
toc= get_Table_Of_Contents(file)
toc

解决方法

使用pdf-html转换器将pdf转换为html。您可以解析HTML以使用诸如beautifulsoup之类的解析器提取所需的任何数据。

,

通常,TOC就像页面上的常规文本一样显示。

尝试pdfreader提取文本和/或PDF“降价”。

以下是从页面中提取以上所有内容的示例代码:

from pdfreader import SimplePDFViewer,PageDoesNotExist

fd = open(your_pdf_file_name,"rb")
viewer = SimplePDFViewer(fd)

# navigate to TOC
viewer.navigate(toc_page_number)

viewer.render()
pdf_markdown = viewer.canvas.text_content
plain_text = "".join(viewer.canvas.strings)

然后,您可以将plain_textpdf_markdown解析为常规字符串。