如何新增 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 Img related to 如何新增 PDF 書籤和大綱

手動安裝到您的項目中

下載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)為“考試”書籤添加子書籤。 以下代碼演示了這一概念:

: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" 書籤將具有一個指向 "Date1" 和 "Date2" 書籤的 Children 屬性。 「Date1」書籤具有指向「Date2」書籤的 NextBookmark 屬性。 此外,"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()
VB   C#

請注意
合併兩個具有相同書籤名稱的 PDF 文件可能會導致書籤列表的中斷。

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

了解如何在以下文章中,從 HTML 生成 PDF 時創建目錄:「使用 IronPDF 建立目錄.

Chaknith related to 检索书签列表

查克尼思·賓

軟體工程師

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