我正在尝试从 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。您可以使用 beautifulsoup 之类的解析器解析 html 以提取您想要的任何数据。
通常 TOC 表示为页面上的常规文本。
尝试使用 pdfreader提取文本和/或 PDF “markdown”。
这是从页面中提取上述所有内容的示例代码:
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_text
或pdf_markdown
作为常规字符串。