如何添加 PDF 書籤和大綱

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

在您的 C# 專案中包含 PDF 大綱(也稱為書籤)可以大大提升易用性和用户体验設計。PDF 大綱作為導航工具,允許用戶輕鬆訪問文檔中的關鍵頁面,類似於目錄。通過加入 PDF 大綱,您可以為您的文檔提供更直觀和友好的體驗。



C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF nuget.org/packages/IronPdf/
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")
VB   C#

單層書籤文件

添加多層次的書籤

使用 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")
VB   C#

多層書籤文件

檢索書籤列表

使用 IronPDF,您可以輕鬆地檢索和查看 PDF 文件中的書籤。瀏覽書籤樹結構十分簡單,並提供順暢的訪問不同部分的功能。讓我們考慮一下 多層書籤文件 以上。

“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()
VB   C#

請注意
合併兩個包含相同名稱書籤的 PDF 文件可能會導致書籤列表出現混亂。

在繼續之前
僅支援從頁面索引創建的書籤。從 PDF 文件的其他部分或元素創建的書籤將獲得頁面索引值 -1

了解如何在從 HTML 生成 PDF 時創建目錄, 請閱讀以下文章:如何添加目錄.

查克尼思·賓

軟體工程師

Chaknith 是開發者界的夏洛克福爾摩斯。他第一次意識到自己可能有個軟體工程的未來,是在他為了娛樂而參加程式挑戰的時候。他的重點是 IronXL 和 IronBarcode,但他也引以為豪的是,他幫助客戶解決所有產品的問題。Chaknith 利用他與客戶直接對話中獲得的知識,以進一步改進產品。他的實際反饋超越了 Jira 工單,並支持產品開發、文件撰寫和行銷,以提升客戶的整體體驗。不在公司時,他通常在學習機器學習、寫程式和徒步旅行。