如何在 Java 中添加 PDF 书签和大纲
在 Java 项目中加入 PDF 书签可以大大提高 PDF 的可用性和导航功能。 PDF 中的大纲为 PDF 本身提供了一种简便的导航方法,因此您可以像使用目录一样轻松地导航到文档中的关键页面。
IronPDF 是一款功能强大的 PDF 工具,让处理 PDF 文件变得轻而易举。 其书签工具为您提供了一种简明易用的方法,可为 PDF 文件创建自定义书签。
如何添加 PDF 书签和大纲
- 安装 Java 库为 PDF 添加书签
- 利用 PdfDocument 在 Java 中加载现有 PDF 文件的类
- 创建和自定义书签 书签管理器 类
- 使用
添加书签
为 PDF 的特定页面添加书签 - 保存包含新大纲和书签的 PDF 文档
立即在您的项目中开始使用IronPDF,并享受免费试用。
开始之前
您还需要确保您的许可证密钥设置正确,因为 IronPDF 必须获得开发许可证。
添加大纲和书签示例
在今天的示例中,我将使用以下语句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。 请自行查看大纲,了解 "插入书签 "功能如何为书签增添了新的层次。
检索书签
IronPdf 的书签工具不仅可以添加新书签,还可以检索和查看现有书签。 要浏览书签,首先使用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"));
}
}