如何添加 PDF 书签和大纲
在您的C#项目中包括PDF大纲,也称为书签,可以极大地增强可用性和用户体验设计。 PDF大纲充当导航工具,使用户可以轻松访问文档中的关键页面,类似于目录。 通过整合PDF大纲,您可以为您的文档提供更直观、更用户友好的体验。
如何添加 PDF 书签和大纲
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLL添加大纲和书签示例
在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")
单层书签文档
添加多层书签
使用IronPDF,您可以在树状结构中添加书签,这对于保持大型PDF文档的可导航性特别有用。 此功能在处理来自不同日期和地点的大量考试试卷、销售报告或收据记录的单个PDF文档时非常方便。
AddBookMarkAtEnd
方法返回一个 IPdfBookMark 对象,允许您添加子书签。 例如,您可以使用 Children.AddBookMarkAtStart("Date1", 0)或
Children.AddBookMarkAtEnd("Date1", 0)将子书签添加到“考试”书签中。 以下代码演示了这个概念:
: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")
多层书签文档
检索书签列表
使用IronPDF,您可以轻松检索和查看PDF文档中的书签。 浏览书签树非常直观,并且可以无缝访问不同的部分。 让我们考虑一下 多层书签文档 以上。
“Examination”书签将具有一个Children属性,该属性指向“Date1”和“Date2”书签。 “Date1”书签的NextBookmark属性指向“Date2”书签。 此外,“Date1”书签具有一个包含“Paper”书签的Children属性。
要检索打开的 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()
请注意
在继续之前
学习如何在从HTML生成PDF时创建目录,请参阅以下文章:如何添加目录."