如何在 Java 中添加 PDF 書籤和大綱
在您的 Java 專案中包含 PDF 書籤可以顯著提升您的 PDF 的可用性和導航性。 PDF 中的大綱提供了一種簡便的導航方法,使您可以像使用目錄一樣輕鬆導航到文檔中的關鍵頁面。
IronPDF 是一款強大的 PDF 工具,使處理 PDF 檔案變得輕而易舉。 其書籤工具為您提供一種簡潔且易於使用的方法,用於為 PDF 文件創建自定義書籤。
如何新增 PDF 書籤和大綱
- 安裝 Java 程式庫以向 PDF 添加書籤
- 使用 PdfDocument 在 Java 中載入現有 PDF 文件的類別
- 創建和自定義書籤與 書籤管理器 類別
- 使用
addBookMarkAtEnd
將書籤添加至 PDF 的特定頁面 - 保存包含新大綱和書籤的 PDF 文件
立即在您的專案中使用IronPDF,並享受免費試用。
在開始之前
您還需要確保正確設置授權密鑰,因為IronPDF必須獲得開發許可。
添加大綱和書籤範例
對於今天的示例,我將使用這個範例 PDF套用大綱和書籤。
添加單層書籤
從指定的文件路徑載入此 PDF 之後,使用PdfDocument類別後,我們可以透過檢索開始將書籤添加到文件中。書籤管理器物件。 您可以使用 addBookMarkAtEnd
和 addBookMarkAtStart
方法將書籤添加到書籤集合的開頭或結尾。
提示
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication Page", 2);
bookmarks.addBookMarkAtEnd("First Page", 3);
bookmarks.addBookMarkAtStart("Page 4", 6);
pdf.saveAs(Path.of("bookmarked.pdf"));
}
}
通過上面的 PDF 檢視器,您可以檢查位於大多數瀏覽器左上角的目錄,以查看我們添加的所有書籤。
新增多層書籤
在此示例中,我們將開始新增書籤,就像我們在建立單層書籤時所做的一樣。 接下來,我們將使用插入書籤使用該方法的第一個參數在新層上添加新書籤並給它命名的方法。 第二個參數指定新書籤鏈接到的頁面。 要創建一個新層,我們將新書籤設為現有書籤的“子項”,這是通過該方法的第三個參數完成的。
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication", 2);
// Insert second layer bookmarks
bookmarks.insertBookmark("First Page", 3, "Table of Contents", null);
bookmarks.insertBookmark("Second Page", 4, "Table of Contents", "First Page");
bookmarks.insertBookmark("End of Sample", 7, "Title Page", null);
bookmarks.insertBookmark("Fourth page", 6, "Table of Contents", "Second Page");
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
在這裡,您可以看到我們新的書籤樹狀結構的 PDF。 查看大綱以親自了解 insertBookmark
功能如何新增一層書籤。
檢索書籤
IronPDF 的書籤工具不僅可以新增書籤,還可以檢索和查看現有的書籤。 若要瀏覽書籤,首先使用以下方式加載 PDF:PdfDocument.fromFile方法。 然後,訪問 BookmarkManager 對象並使用取得書籤檢索所有書籤(包括子書籤)的方法。 最後,使用 get
方法根據書籤在列表中的索引來檢索書籤。
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
// Retrieve bookmarks list
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(2);
}
}
在特定索引插入書籤
透過檢索的書籤,您可以選擇在文件中的特定索引處新增書籤。 要做到這一點,請選擇目標書籤並使用新增下一個書籤在其後新增書籤的方法。 例如,我們從「添加多層書籤」部分提取 PDF,並在「第三頁」書籤後添加一個書籤。 您也可以使用 addChildBookmark
方法作為更深一層添加子書籤。
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(5);
bookmark.addNextBookmark("Fourth Page", 6);
// Add another layer to 'Third page' bookmark
bookmark.AddChildBookmark("Section 1", 7);
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}