在 Python 中添加和删除 PDF 书签

在 PDF 文档中添加书签

书签存放在 Document 对象的 OutlineItemCollection 集合本身在 OutlineCollection 集合。

要向 PDF 添加书签:

  1. 使用打开 PDF 文档 文档 对象。
  2. 创建书签并定义其属性。
  3. 添加 OutlineItemCollection 集合到 Outlines 集合。

下面的代码片段展示了如何在 PDF 文档中添加书签。

import aspose.pdf as ap
import sys
from os import path

def add_bookmark(infile, outfile):
    # Open PDF document
    document = ap.Document(infile)

    # Create a bookmark object
    pdf_outline = ap.OutlineItemCollection(document.outlines)
    pdf_outline.title = "Test Outline"
    pdf_outline.italic = True
    pdf_outline.bold = True

    # Set the destination page number
    pdf_outline.action = ap.annotations.GoToAction(document.pages[1])

    # Add bookmark to the document's outline collection
    outlines = document.outlines
    outlines.append(pdf_outline)

    # Save PDF document
    document.save(outfile)

向 PDF 文档添加子书签

书签可以嵌套,表示父书签和子书签之间的层级关系。本文说明了如何向 PDF 添加子书签,即二级书签。

要向 PDF 文件添加子书签,首先添加父书签:

  1. 打开文档。
  2. 将书签添加到 OutlineItemCollection,定义其属性。
  3. 将 OutlineItemCollection 添加到 Document 对象的 OutlineCollection 集合。

子书签的创建方式与上文解释的父书签相同,但它被添加到父书签的 Outlines 集合中

以下代码片段展示了如何向 PDF 文档添加子书签。

import aspose.pdf as ap
import sys
from os import path

def add_child_bookmark(infile, outfile):
    # Open PDF document
    document = ap.Document(infile)

    # Create a parent bookmark object
    pdf_outline = ap.OutlineItemCollection(document.outlines)
    pdf_outline.title = "Parent Outline"
    pdf_outline.italic = True
    pdf_outline.bold = True

    # Create a child bookmark object
    pdf_child_outline = ap.OutlineItemCollection(document.outlines)
    pdf_child_outline.title = "Child Outline"
    pdf_child_outline.italic = True
    pdf_child_outline.bold = True

    # Add child bookmark to parent bookmark's collection
    pdf_outline.append(pdf_child_outline)

    # Add parent bookmark to the document's outline collection
    document.outlines.append(pdf_outline)

    # Save PDF document
    document.save(outfile)

删除 PDF 文档中的所有书签

PDF 中的所有书签都存储在 OutlineCollection 集合中。本篇文章解释如何从 PDF 文件中删除所有书签。

要从 PDF 文件中删除所有书签:

  1. 调用 OutlineCollection collection 的 Delete 方法。
  2. 使用以下方式保存已修改的文件 文档 对象的 save() 方法。

以下代码片段展示了如何从 PDF 文档中删除所有书签。

import aspose.pdf as ap
import sys
from os import path

def delete_bookmarks(infile, outfile):
    # Open PDF document
    document = ap.Document(infile)

    # Delete all bookmarks in the PDF document
    document.outlines.delete()

    # Save PDF document
    document.save(outfile)

删除 PDF 文档中的特定书签

要从 PDF 文件中删除特定书签,请:

  1. 将书签的标题作为参数传递给 OutlineCollection collection 的 Delete 方法。
  2. 然后使用 Document 对象的 Save 方法保存更新后的文件。

文档 class’ 提供了 OutlineCollection 集合。The delete() method 删除传递给该方法的标题的任何书签。

以下代码片段展示了如何从 PDF 文档中删除特定的书签。

import aspose.pdf as ap
import sys
from os import path

def delete_bookmark(infile, outfile):
    # Open PDF document
    document = ap.Document(infile)

    # Delete a specific bookmark by title.
    # Note: If multiple bookmarks have the same title, only the first matching bookmark will be deleted.
    document.outlines.delete("Child Outline")

    # Save PDF document
    document.save(outfile)

相关书签主题