添加和删除书签

向PDF文档添加书签

书签保存在文档对象的OutlineItemCollection集合中,该集合本身位于OutlineCollection集合中。

要向PDF添加书签:

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

以下代码片段向您展示如何在PDF文档中添加书签。

void AddBookmarks() {

String _dataDir("C:\\Samples\\Bookmarks\\");

auto pdfDocument = MakeObject<Document>(_dataDir + u"AddBookmark.pdf");

// 创建书签对象

auto pdfOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());

pdfOutline->set_Title(u"Test Outline");

pdfOutline->set_Italic(true);

pdfOutline->set_Bold(true);

// 设置目标页码

pdfOutline->set_Action(MakeObject<Aspose::Pdf::Annotations::GoToAction>(pdfDocument->get_Pages()->idx_get(2)));

// 在文档的大纲集合中添加书签。

pdfDocument->get_Outlines()->Add(pdfOutline);

// 保存更新后的文档

pdfDocument->Save(_dataDir + u"AddBookmark_out.pdf");
}

向PDF文档添加子书签

书签可以嵌套,表示与父书签和子书签的层次关系。 这篇文章解释了如何向 PDF 添加子书签,即二级书签。

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

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

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

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

void AddChildBookmark() {


String _dataDir("C:\\Samples\\Bookmarks\\");

// 打开文档

auto pdfDocument = MakeObject<Document>(_dataDir + u"AddChildBookmark.pdf");


// 创建一个父书签对象

auto pdfOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());

pdfOutline->set_Title(u"Parent Outline");

pdfOutline->set_Italic(true);

pdfOutline->set_Bold(true);


// 创建一个子书签对象

auto pdfChildOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());

pdfChildOutline->set_Title(u"Child Outline");

pdfChildOutline->set_Italic(true);

pdfChildOutline->set_Bold(true);


// 在父书签的集合中添加子书签

pdfOutline->Add(pdfChildOutline);

// 在文档的书签集合中添加父书签。

pdfDocument->get_Outlines()->Add(pdfOutline);


// 保存输出

pdfDocument->Save(_dataDir + u"AddChildBookmark_out.pdf");
}

删除 PDF 文档中的所有书签

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

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

  1. 调用 OutlineCollection 集合的 Delete 方法。
  2. 使用 Document 对象的 Save 方法保存修改后的文件。

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

void DeleteAllBookmarksFromPDFDocument() {

String _dataDir("C:\\Samples\\Bookmarks\\");

// 打开文档

auto pdfDocument = MakeObject<Document>(_dataDir + u"DeleteAllBookmarks.pdf");

// 删除所有书签

pdfDocument->get_Outlines()->Delete();

// 保存更新后的文件

pdfDocument->Save(_dataDir + u"DeleteAllBookmarks_out.pdf");
}

删除 PDF 文档中特定的书签

从PDF文档中删除所有附件 显示了如何从PDF文件中删除所有附件。也可以仅删除特定附件。

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

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

Document 类提供了 OutlineCollection 集合。Delete 方法会删除传递给该方法的标题的任何书签。

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

void DeleteParticularBookmarkPDFDocument() {


String _dataDir("C:\\Samples\\Bookmarks\\");

// 打开文档

auto pdfDocument = MakeObject<Document>(_dataDir + u"DeleteParticularBookmark.pdf");


// 按标题删除特定大纲

pdfDocument->get_Outlines()->Delete(u"Child Outline");


// 保存更新后的文件

pdfDocument->Save(_dataDir + u"DeleteParticularBookmark_out.pdf");
}