如何在 C# 中使用 IronPDF 為 PDF 添加書籤和大綱

How to Add PDF Bookmarks and Outline

This article was translated from English: Does it need improvement?
Translated
View the article in English

在您的C#项目中包括PDF大纲(也称为书签)可以极大地提升可用性和用户体验设计。 PDF大纲作为导航工具,使用户可以轻松访问文档中的关键页面,类似于目录。 通过引入PDF大纲,您可以为您的文档提供更直观和用户友好的体验。

快速入门:在C#中向PDF添加书签

通过IronPDF快速入门,轻松地为您的PDF文档添加书签。 本指南展示了如何加载现有的PDF、添加书签以便于导航,并保存更新后的文档。 非常适合希望在C#项目中以最小努力和最大效率增强PDF功能的开发人员。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    var pdf = new IronPdf.PdfDocument("example.pdf");
    pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1", 1);
    pdf.SaveAs("bookmarked.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小工作流程(5个步骤)

  1. 从NuGet下载IronPDF
  2. 加载现有的或生成新的PDF文档
  3. 在PDF文件上添加单层书签以跳转到关键部分
  4. 添加多层书签以创建层次结构的组织
  5. 检索和查看书签属性

添加大纲和书签示例

在Adobe Acrobat Reader中,大纲(也称为书签)显示在左侧边栏中,提供了跳转到文档关键部分的便捷方式。

使用IronPDF,您可以导入PDF文档并对现有的大纲执行各种操作,例如添加、重新排序、编辑属性和删除书签。 这使您可以完全控制PDF文件的组织和结构。

提示所有页码索引都遵循零基索引。

添加单层书签

在IronPDF中添加书签是一个简单的过程。 您可以使用AddBookmarkAtEnd方法,需要指定书签名称和相应的页码索引。 下面是一个示例代码片段:

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-single-layer-bookmark.cs
using IronPdf;

// Create a new PDF or edit an existing document.
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

// Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0);

// Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1);

pdf.SaveAs("singleLayerBookmarks.pdf");
Imports IronPdf

' Create a new PDF or edit an existing document.
Private pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")

' Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0)

' Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1)

pdf.SaveAs("singleLayerBookmarks.pdf")
$vbLabelText   $csharpLabel

单层书签文档

添加多层书签

使用IronPDF,您可以在树形结构中添加书签,这在维持大型PDF文档的可导航性时特别有用。 此功能在处理单个PDF文档中大量的考试试卷、销售报告或来自不同日期和地点的收据记录时特别有用。

AddBookMarkAtEnd方法返回一个IPdfBookMark对象,允许您添加子书签。 例如,您可以使用Children.AddBookMarkAtStart("Date1", 0)Children.AddBookMarkAtEnd("Date1", 0)来向"Examination"书签添加子书签。 以下代码演示了这个概念:

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-multi-layer-bookmark.cs
using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("examinationPaper.pdf");

// Assign IPdfBookMark object to a variable
var mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0);

// Add bookmark for days
var date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1);

// Add bookmark for type of test
var paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1);
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3);
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4);

// Add bookmark for days
var date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5);

// Add bookmark for type of test
var computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5);
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6);
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7);

pdf.SaveAs("multiLayerBookmarks.pdf");
Imports IronPdf

' Load existing PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("examinationPaper.pdf")

' Assign IPdfBookMark object to a variable
Private mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0)

' Add bookmark for days
Private date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1)

' Add bookmark for type of test
Private paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1)
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3)
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4)

' Add bookmark for days
Dim date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5)

' Add bookmark for type of test
Dim computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5)
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6)
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7)

pdf.SaveAs("multiLayerBookmarks.pdf")
$vbLabelText   $csharpLabel

多层书签文档

检索书签列表

使用IronPDF,您可以轻松检索和查看PDF文档中的书签。 在书签树中导航非常简单,并提供了无缝访问不同部分的功能。 Let's consider the multi-layer bookmarks document example above.

"Examination"书签将有一个Children属性,指向"Date1"和"Date2"书签。 "Date1"书签则有一个NextBookmark属性,指向"Date2"书签。 此外,"Date1"书签还有一个Children属性,其中包含"Paper"书签。

要检索打开的PDF文档中存在的所有书签,您可以使用GetAllBookmarks方法。 这将为您提供一个所有书签的综合列表,允许您进一步分析和利用书签结构。

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-retrieve-bookmark.cs
using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("multiLayerBookmarks.pdf");

// Retrieve bookmarks list
var mainBookmark = pdf.Bookmarks.GetAllBookmarks();
Imports IronPdf

' Load existing PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("multiLayerBookmarks.pdf")

' Retrieve bookmarks list
Private mainBookmark = pdf.Bookmarks.GetAllBookmarks()
$vbLabelText   $csharpLabel

請注意合并两个具有相同名称书签的PDF文档可能导致书签列表中断。

[{w:(只支持从页码索引创建的书签。 从PDF文档的其他部分或元素创建的书签将设定页码索引值为-1。)}]

了解如何在以下文章中通过HTML生成PDF时创建目录:"使用IronPDF创建目录。"

準備看看您還能做哪些其他事情嗎? 查看我们的教程页面:组织 PDF

常見問題解答

如何开始使用 IronPDF 在 PDF 中添加书签?

要开始使用 IronPDF 添加书签,从 NuGet 下载 IronPDF,加载现有 PDF 或渲染一个新 PDF,并使用 `AddBookmarkAtEnd` 方法为您的文档添加书签。

书签在 PDF 文档中的作用是什么?

PDF 文档中的书签充当导航工具,允许用户轻松跳转到关键部分,类似于目录,从而增强文档的可用性。

如何向 PDF 添加多层书签?

使用 IronPDF,您可以通过 `AddBookMarkAtEnd` 方法创建树状结构中的多层书签,这对于具有分层内容的大型文档的组织非常有用。

使用 IronPDF 如何从 PDF 中检索书签的流程是什么?

您可以通过 IronPDF 的 `GetAllBookmarks` 方法从 PDF 中检索书签,该方法提供了所有书签的列表,方便文档的轻松导航和分析。

我可以使用 IronPDF 编辑或删除 PDF 中的书签吗?

是的,IronPDF 允许您管理书签,通过添加、重新排序、编辑属性和删除书签,您可以完全控制 PDF 的组织结构。

合并带有书签的 PDFs 时应该考虑什么?

合并带有书签的 PDF 文档时,确保书签具有唯一名称,因为合并具有相同书签名称的 PDFs 可能会破坏书签结构。

如何在从 HTML 生成的 PDF 中创建目录?

要在从 HTML 生成的 PDF 中创建目录,请参考文献《使用 IronPDF 创建目录》,它提供了有关此过程的详细指导。

如果书签是从非页面索引元素创建的会怎么样?

从非页面索引元素创建的书签将其页面索引值设置为 -1,因为 IronPDF 仅支持直接从页面索引创建的书签。

Chaknith Bin
軟體工程師
Chaknith 在 IronXL 和 IronBarcode 上工作。他對 C# 和 .NET 擁有深厚的專業知識,幫助改進了軟體並支持客戶。他從用戶互動中得到的見解有助於改善產品、文檔和整體體驗。
準備好開始了嗎?
Nuget 下載 16,154,058 | 版本: 2025.11 剛剛發布