PDF 文档中的书签由带格式的文本组成,同时链接到文档的指定位置。文档读者可以通过简单地点击显示在页面旁边的书签来导航到文档的相应位置,而不用频繁上下滚动来寻找。特别是在浏览非常大的文档时,书签能够提供不小的帮助。组织好的书签还可以作为目录使用。我们在创建比较大的文档时,也可以使用书签链接到重要的内容,这样可以方便我们在阅读时找到这些重要内容。本文将演示如何使用 Spire.PDF for Java 通过简单编程在 PDF 文档中添加、编辑或移除书签。
安装 Spire.PDF for Java
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>10.11.2</version>
</dependency>
</dependencies>
添加书签到 PDF 文档
Spire.PDF for Java 提供的 PdfDocument.getBookmarks().add() 方法可以添加书签到 PDF 文档中。除了添加主书签,还可以使用 PdfBookmark.add() 方法添加子书签到主书签中。PdfBookmark 类下还有许多其他方法可以对书签的链接目标、字体颜色和字体样式等进行设置。在 PDF 文档中添加书签的详细操作步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.loadFromFile() 方法载入 PDF 文档。
- 循环遍历 PDF 文档中的页面,添加书签并设置其样式。
- 使用 PdfDocument.getBookmarks().add() 方法向文档添加一个主书签。
- 创建一个 PdfDestination 类对象,并使用 PdfBookmark.setAction() 方法设置主书签的链接目标。
- 使用 PdfBookmark.setColor() 方法设置主书签的字体颜色。
- 使用 PdfBookmark.setDisplayStyle() 方法设置主书签的字体格式。
- 使用 PdfBookmark.add() 方法添加一个子书签到主书签中。
- 使用上述方法来设置子书签的链接目标、字体颜色和字体格式。
- 使用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
import java.awt.geom.Point2D;
public class addBookmark {
public static void main(String[] args) {
//创建一个PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文件
pdf.loadFromFile("地球没有替代品.pdf");
//循环遍历PDF文档中的页面
for(int i = 0; i< pdf.getPages().getCount();i++) {
PdfPageBase page = pdf.getPages().get(i);
//添加一个书签
PdfBookmark bookmark = pdf.getBookmarks().add(String.format("书签-%s", i + 1));
//设置书签链接页面和位置
PdfDestination destination = new PdfDestination(page, new Point2D.Float(0, 0));
bookmark.setAction(new PdfGoToAction(destination));
//设置字体颜色
bookmark.setColor(new PdfRGBColor(new Color(139, 69, 19)));
//设置字体格式
bookmark.setDisplayStyle(PdfTextStyle.Bold);
//添加一个子书签
PdfBookmark childBookmark = bookmark.add(String.format("子书签-%s", i + 1));
//设置链接页面和位置
PdfDestination childDestination = new PdfDestination(page, new Point2D.Float(0, 100));
childBookmark.setAction(new PdfGoToAction(childDestination));
//设置字体颜色
childBookmark.setColor(new PdfRGBColor(new Color(255, 127, 80)));
//设置字体格式
childBookmark.setDisplayStyle(PdfTextStyle.Italic);
}
//保存文档
pdf.saveToFile("添加书签.pdf");
}
}
编辑 PDF 文档中的书签
Spire.PDF for Java 中的 PdfBookmark 类下的方法也可以用来编辑 PDF 文档中的书签。详细操作步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.loadFromFile() 方法载入 PDF 文档。
- 使用 PdfDocument.getBookmarks().get() 方法获取第一个书签。
- 使用 PdfBookmark.setTitle() 方法更改书签的标题。
- 使用 PdfBookmark.setColor() 方法更改书签的字体颜色。
- 使用 PdfBookmark.setDisplayStyle() 方法更改书签的字体格式。
- 使用上述方法更改子书签的字体颜色和格式。
- 使用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
public class editBookmarks {
public static void main(String[] args) {
//创建一个PdfDocument类的对象
PdfDocument doc = new PdfDocument();
//载入PDF文件
doc.loadFromFile("添加书签.pdf");
//获取第一个书签
PdfBookmark bookmark = doc.getBookmarks().get(0);
//更改书签的标题
bookmark.setTitle("新标题");
//更改书签的字体颜色
bookmark.setColor(new PdfRGBColor(new Color(255,0,0)));
//更改书签的字体格式
bookmark.setDisplayStyle(PdfTextStyle.Italic);
//编辑第一个书签的子书签
for (PdfBookmark childBookmark : (Iterable) bookmark) {
childBookmark.setColor(new PdfRGBColor(new Color(0,0,255)));
childBookmark.setDisplayStyle(PdfTextStyle.Bold);
}
//保存文档
doc.saveToFile("编辑书签.pdf");
doc.close();
}
}
删除 PDF 文档中的书签
Spire.PDF for Java 还可以用来删除 PDF 文档中的单个、多个或所有书签。其中,PdfDocument.getBookmarks().removeAt() 方法用于删除指定的主书签,PdfDocument.getBookmarks().clear() 方法用于删除所有书签,PdfBookmark.removeAt() 方法用于删除一个主书签的指定子书签。删除 PDF 书签的详细操作步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.loadFromFile() 方法载入 PDF 文档。
- 使用 PdfDocument.getBookmarks().get() 方法获取第一个书签。
- 使用 PdfBookmark.removeAt() 方法删除第一个书签的子书签。
- 使用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.PdfBookmark;
public class deleteBookmarks {
public static void main(String[] args) {
//创建一个PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文档
pdf.loadFromFile("添加书签.pdf");
//获取第一个书签
PdfBookmark pdfBookmark = pdf.getBookmarks().get(0);
//删除第一个书签的子书签
pdfBookmark.removeAt(0);
//删除第一个书签及其子书签
//pdf.getBookmarks().removeAt(0);
//删除所有书签
//pdf.getBookmarks().clear();
//保存文档
pdf.saveToFile("删除书签.pdf");
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。