IronPDF 操作指南 大纲 & 书签 如何在 Java 中添加 PDF 书签和大纲 Darrius Serrant 已更新:一月 10, 2026 下载 IronPDF Maven 下载 JAR 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronPDF for Java 的 Java 库使您能够使用 BookmarkManager 类以编程方式在 PDF 文档中添加书签和大纲,支持单层和多层书签结构,并可自定义导航点。 快速入门:在 Java 中添加 PDF 书签 1.安装 IronPDF for Java 库并设置许可证密钥 2.使用 PdfDocument.fromFile() 加载 PDF 3.使用 pdf.getBookmark() 获取 BookmarkManager 4.使用 addBookMarkAtEnd("Title", pageNumber) 添加书签 5.使用 pdf.saveAs() 保存 PDF ```java :title=快速入门 PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf")); BookmarkManager bookmarks = pdf.getBookmark(); bookmarks.addBookMarkAtEnd("Chapter 1", 0); pdf.saveAs(Path.of("bookmarked.pdf")); PDF 书签可大大提高文档的可用性和导航功能。 大纲在 PDF 文件中提供结构化导航,允许用户像目录一样直接跳转到关键部分。 在处理需要有条理导航的冗长文档、报告或多章节 PDF 文件时,这种功能证明是必不可少的。 IronPDF for Java 简化了 Java 应用程序中的 PDF 操作。 其书签功能提供了在 PDF 文件中创建自定义书签的直接方法。 该库可与 Java 应用程序无缝集成,支持除书签之外的各种 PDF 操作功能,包括 [合并 PDF](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/)、[创建表格](https://ironpdf.com/java/how-to/create-forms/) 和 [添加水印](https://ironpdf.com/java/how-to/custom-watermark/)。 <div class="hsg-featured-snippet"> <h2>如何添加PDF书签和大纲</h2> <ol> <li><a href="https://ironpdf.com/java/#download-modal">安装 Java 库为 PDF 添加书签</a></li> <li>Utilize the <strong>`PdfDocument`</strong> class to load an existing PDF file in Java</li> <li>Create and customize the bookmarks with the <strong>`BookmarkManager`</strong> class</li> <li>Use `addBookMarkAtEnd` to add bookmarks to specific pages of the PDF</li> <li>保存包含新目录和书签的 PDF 文档</li> </ol> </div> <h2>开始之前我需要什么? 在实施 PDF 书签之前,请确保在 Java 项目中正确配置了 IronPDF。 该库需要 Java 8 或更高版本,可使用 Maven 或 Gradle 轻松集成。 您需要在项目的构建文件中添加 IronPDF 依赖项。有关详细的设置说明,请参阅 [ 入门概述](https://ironpdf.com/java/docs/)。 您还必须确保您的许可证密钥配置正确,因为 IronPDF 需要许可证才能进行开发。 有关许可选项和实施的全面信息,请访问 [ 许可指南](https://ironpdf.com/java/get-started/license-keys/)。 在使用任何 IronPDF 功能之前,请在应用程序开始时设置许可证密钥。 <h2>如何在 PDF 中添加大纲和书签? 在本例中,我将使用此 [ 样本 PDF](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf) 来应用大纲和书签。 翻译过程包括加载现有的 PDF 文档,并利用 IronPDF 的 `BookmarkManager` 在整个文档中添加导航点。 <h3>如何添加单层书签? <!-- 待办事项:在此处添加图片 --> <!--  --> <!--说明:显示代码执行输出或结果的截图 --> 使用 [`PdfDocument`.fromFile](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html) 类从指定文件路径加载此 PDF 后,检索 [`BookmarkManager`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html) 对象以开始添加书签。 您可以使用 `addBookMarkAtEnd` 和 `addBookMarkAtStart` 方法将书签添加到书签集合的开始或结束位置。 这些方法可以根据文档结构灵活组织书签。 提示请记住,所有页面的索引都是基于零的索引。 ```java import java.io.IOException; import java.nio.file.Path; import com.ironsoftware.ironpdf.License; import com.ironsoftware.ironpdf.PdfDocument; import com.ironsoftware.ironpdf.bookmark.BookmarkManager; public class Main { public static void main(String[] args) throws IOException { // Set the license key for IronPDF License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the PDF file PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf")); // Get BookmarkManager object to manage bookmarks BookmarkManager bookmarks = pdf.getBookmark(); // Add bookmarks at the end of the bookmark collection 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); // Save the modified PDF with bookmarks pdf.saveAs(Path.of("bookmarked.pdf")); } } 使用上面的 PDF 查看器,查看大多数浏览器左上角的目录,查看所有添加的书签。 这种单层书签结构可为组织需求简单的文档提供直接导航。 如何创建多层书签? 在本例中,首先要添加书签,就像创建单层书签一样。 接下来,使用 [`insertBookmark`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html#insertBookmark) 方法在新图层上添加新书签。 第一个参数指定书签名称,第二个参数指定书签链接到的页面。 要创建新层,请使用该方法的第三个参数将新书签设为现有书签的 "子"。 这种分层结构适合包含章节、小节和分节的文档。 ```java import java.io.IOException; import java.nio.file.Path; import com.ironsoftware.ironpdf.License; import com.ironsoftware.ironpdf.PdfDocument; import com.ironsoftware.ironpdf.bookmark.BookmarkManager; public class Main { public static void main(String[] args) throws IOException { // Set the license key License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the PDF file PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf")); // Get BookmarkManager object BookmarkManager bookmarks = pdf.getBookmark(); // Add bookmarks at the end 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"); // Save the modified PDF with multiple layer bookmarks pdf.saveAs(Path.of("multiLayer.pdf")); } } ``` 在这里,您可以看到带有新书签树结构的 PDF。 查看大纲,了解 `insertBookmark` 功能如何添加了一层新书签。 这种多层次的方法适合技术文档、学术论文或任何需要详细导航结构的文档。 如何从 PDF 中检索现有书签? <!--说明:说明代码概念的图表或截图 --> IronPdf 的书签工具不仅可以添加新书签,还可以检索和查看现有书签。 在修改现有 PDF 或分析其结构时,这一功能证明是必不可少的。 要浏览书签,首先使用 [`PdfDocument.fromFile`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html) 方法加载 PDF。 然后访问 **`BookmarkManager`** 对象,并使用 [`getBookmarks`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html) 方法检索所有书签,包括子书签。 最后,使用 `get` 方法根据书签在列表中的索引检索书签。这种功能允许对现有的 PDF 导航结构进行编程检查和操作。 ```java 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 { // Set the license key License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the PDF file with bookmarks PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf")); // Retrieve the bookmark manager BookmarkManager bookmarks = pdf.getBookmark(); // Retrieve list of all bookmarks List bookmarkList = bookmarks.getBookmarks(); // Retrieve a specific bookmark by its index Bookmark bookmark = bookmarkList.get(2); // Print bookmark details System.out.println("Bookmark Title: " + bookmark.getText()); System.out.println("Page Number: " + bookmark.getPageIndex()); // Check if bookmark has children if(bookmark.getChildren() != null && !bookmark.getChildren().isEmpty()) { System.out.println("Number of child bookmarks: " + bookmark.getChildren().size()); } } } ``` 如何在特定索引处插入书签? --> <!--说明:说明代码概念的图表或截图 --> 通过检索书签,您可以在文档中的特定索引处添加新书签。 该功能有助于用新章节更新现有 PDF 文件或重组文件结构。 为此,请选择目标书签并使用 [`addNextBookmark`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/Bookmark.html) 方法在其后添加新书签。 例如,从 **'添加多层书签'** 部分获取 PDF 文件,并在 **'第三页'** 书签后添加一个书签。 您还可以使用 `addChildBookmark` 方法添加子书签作为更深层次的书签,从而实现对文档导航层次结构的精确控制。 ```java 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 { // Set the license key License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01"); // Load the PDF we modified earlier PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf")); // Get the BookmarkManager BookmarkManager bookmarks = pdf.getBookmark(); // Retrieve the list of bookmarks List bookmarkList = bookmarks.getBookmarks(); // Retrieve a specific bookmark by its index Bookmark bookmark = bookmarkList.get(5); // Add a new bookmark after the specified bookmark bookmark.addNextBookmark("Fourth Page", 6); // Add another layer to 'Third page' bookmark bookmark.addChildBookmark("Section 1", 7); // Save the modified PDF pdf.saveAs(Path.of("specificIndex.pdf")); } } ``` [{i:(如果将两个书签名称相同的 PDF 文档合并在一起,可能会破坏书签列表本身。 在复杂的 PDF 工作流程中处理书签时,可考虑探索 IronPDF 的其他功能,如 [ 拆分 PDF](https://ironpdf.com/java/how-to/java-split-pdf-tutorial/) 以创建具有自己书签结构的较小文档,或 [ 打印 PDF](https://ironpdf.com/java/how-to/java-print-pdf-tutorial/) 并保留书签导航功能。 有关更高级的示例和完整的代码演示,请查看我们示例部分中的 [bookmarks 代码示例](https://ironpdf.com/java/examples/bookmarks/)。 常见问题解答 如何在 Java PDF 文档中添加书签? 您可以使用 IronPDF 的 BookmarkManager 类为 PDF 文档添加书签。首先,使用 PdfDocument.fromFile() 加载 PDF 文件,然后使用 pdf.getBookmark() 访问书签管理器,并使用 addBookMarkAtEnd() 方法指定书签标题和页码添加书签。 以编程方式添加 PDF 书签的前提条件是什么? 要使用 IronPDF 添加 PDF 书签,您需要 Java 8 或更高版本、通过 Maven 或 Gradle 集成的 IronPDF 库以及在应用程序中配置的有效许可证密钥。该库支持单层和多层书签结构。 能否在 PDF 中创建多级书签层次结构? 是的,IronPDF 支持创建单层和多层书签结构。您可以使用 BookmarkManager 类创建带有父书签和子书签的分层导航,以组织复杂的 PDF 文档。 PDF 书签和大纲的目的是什么? PDF 书签和大纲通过提供结构化导航,大大提高了文档的可用性。它们允许用户直接跳转到目录等关键部分,这对于冗长的文档、报告或多章节 PDF 尤为重要。IronPDF 可以轻松地通过编程实现这些导航功能。 除了书签,还有哪些其他 PDF 操作功能? 除了添加书签,IronPDF 还提供全面的 PDF 操作功能,包括合并 PDF、创建表格、添加水印以及其他各种文档处理功能。这些功能可与 Java 应用程序无缝集成,实现完整的 PDF 管理。 添加书签后如何保存 PDF? 使用 IronPDF 的 BookmarkManager 添加书签后,通过调用 PdfDocument 对象上的 saveAs() 方法保存修改后的 PDF 文档,并指定要保存书签 PDF 的输出文件路径。 Darrius Serrant 立即与工程团队聊天 全栈软件工程师(WebOps) Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。 准备开始了吗? 版本: 2025.12 刚刚发布 免费 Maven 下载 查看许可证