PDF 文件通常包含书签,它们是可点击的链接,能方便用户浏览长文档。提取这些书签有助于创建文档大纲、分析文档结构或识别关键主题或章节。本文将介绍如何使用 Spire.PDF for Python 通过 Python 提取 PDF 文件中的书签。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
Python 提取 PDF 书签
使用 Spire.PDF for Python,您可以创建自定义方法 GetBookmarks() 和 GetChildBookmark() 来获取 PDF 文件中父书签和子书签的标题及其文本样式,然后将获取到的书签导出为 TXT 文件。具体步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfDocument.Bookmarks 属性获取 PDF 文件中的书签集合。
- 调用自定义方法 GetBookmarks() 和 GetChildBookmark() 获取父书签和子书签的文本内容和文本样式。
- 将提取的 PDF 书签导出到 TXT 文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
inputFile = "书签.pdf"
result = "获取PDF书签.txt"
def GetChildBookmark(parentBookmark, content):
if parentBookmark.Count > 0:
# 遍历父书签中的每个子书签
for i in range(parentBookmark.Count):
childBookmark = parentBookmark.get_Item(i)
# 获取标题
content.append(childBookmark.Title)
# 获取文本样式
textStyle = str(childBookmark.DisplayStyle)
content.append(textStyle)
cldBk = PdfBookmarkCollection(childBookmark)
GetChildBookmark(cldBk, content)
def GetBookmarks(bookmarks, result):
# 创建StringBuilder对象
content = []
# 获取PDF书签信息
if bookmarks.Count > 0:
content.append("Pdf bookmarks:")
# 遍历每个父书签
for i in range(bookmarks.Count):
parentBookmark = bookmarks.get_Item(i)
# 获取标题
content.append(parentBookmark.Title)
# 获取文本样式
textStyle = str(parentBookmark.DisplayStyle)
content.append(textStyle)
cldBk = PdfBookmarkCollection(parentBookmark)
GetChildBookmark(cldBk, content)
# 保存为txt文件
with open(result, "w") as file:
file.write("\n".join(content))
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile(inputFile)
# 获取PDF文件的书签集合
bookmarks = pdf.Bookmarks
# 获取书签内容并导出为TXT文件
GetBookmarks(bookmarks, result)
pdf.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。