PDF 是一种流行的文档格式,它提供跨平台支持以及一系列功能来创建丰富的文档。此外,它支持多种元素,例如媒体、表单、注释、工件等。在这些元素中,超链接经常用于在 PDF 中导航、从一个 PDF 到另一个 PDF、打开 URL 等。所以在本文中,您将学习如何使用 Java 以编程方式在 PDF 文件中添加和更新超链接。
用于在 PDF 中添加超链接的 Java API - 免费下载
Aspose.PDF for Java 是一个用于 PDF 生成和操作的了不起的 API。使用 API,您可以无缝地创建、处理和转换简单和复杂布局的 PDF 文件。我们将使用此 API 来添加和更新 PDF 文件中的超链接。您可以下载 API 的 JAR 或使用以下 Maven 配置安装它。
存储库:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
依赖:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.4</version>
</dependency>
用 Java 在 PDF 中添加超链接
以下是在 Java 中为 PDF 文件添加超链接的步骤。
- 使用 Document 类创建新 PDF 或加载现有 PDF。
- 从 Document.getPages() 集合中获取要添加超链接的页面的引用。
- 创建 LinkAnnotation 类的对象并设置其属性。
- 使用 LinkAnnotation.setAction() 方法分配包含 URL 的 GoToURIAction 对象。
- 使用 Page.getAnnotations().add() 方法将超链接添加到页面。
- 使用 Document.save(String) 方法保存 PDF。
以下代码示例展示了如何在 Java 中的 PDF 中添加超链接。
// 打开文档
Document document = new Document("input.pdf");
// 获取页面参考
Page page = document.getPages().get_Item(1);
// 创建链接注释对象
LinkAnnotation link = new LinkAnnotation(page, new com.aspose.pdf.Rectangle(100, 100, 300, 300));
// 为 LinkAnnotation 创建边框对象
Border border = new Border(link);
// 将边框宽度值设置为 0
border.setWidth ( 0);
// 设置 LinkAnnotation 的边框
link.setBorder(border);
// 将链接类型指定为远程 URI
link.setAction( new GoToURIAction("www.aspose.com"));
// 将链接注释添加到 PDF 文件第一页的注释集合
page.getAnnotations().add(link);
// 保存更新的文档
document.save("output.pdf");
Java 为外部 PDF 添加超链接
您还可以使用超链接从 PDF 导航到外部 PDF 文件。以下步骤演示了如何在 Java 中为外部 PDF 文件添加超链接。
- 使用 Document 类创建新 PDF 或加载现有 PDF。
- 从 Document.getPages() 集合中获取要添加超链接的页面的引用。
- 创建 LinkAnnotation 类的对象并设置其属性。
- 使用 LinkAnnotation.setAction() 方法将操作设置为包含外部 PDF 路径的 GoToRemoteAction 对象。
- 使用 Page.getAnnotations().add() 方法将超链接添加到页面。
- 使用 Document.save(String) 方法保存 PDF。
以下代码示例展示了如何在 Java 中为外部 PDF 添加超链接。
// 打开文档
Document document = new Document("input.pdf");
// 获取页面参考
Page page = document.getPages().get_Item(1);
// 创建超链接
LinkAnnotation link = new LinkAnnotation(page, new com.aspose.pdf.Rectangle(100, 100, 300, 300));
link.setColor(Color.getGreen());
// 设置动作
link.setAction( new GoToRemoteAction("external.pdf", 1));
// 将链接注释添加到 PDF 文件第一页的注释集合
page.getAnnotations().add(link);
// 保存更新的文档
document.save("output.pdf");
Java 插入特定 PDF 页面的超链接
在某些情况下,您必须在 PDF 文档中从一个页面导航到另一个页面。 LocalHyperlink 类用于导航到 PDF 中的特定页面。以下是实现此目的的步骤。
- 使用 Document 类创建新 PDF 或加载现有 PDF。
- 从 Document.getPages() 集合中获取要添加超链接的页面的引用。
- 创建一个 TextFragment 类的实例来设置超链接的文本。
- 创建一个 LocalHyperlink 类的实例,并使用 LocalHyperlink.setTargetPageNumber() 方法设置目标页码。
- 使用 TextFragment.setHyperlink() 方法分配 LocalHyperlink 对象。
- 使用 Page.getParagraphs().add(TextFragment) 方法向页面添加文本。
- 使用 Document.save(String) 方法保存 PDF。
以下代码示例显示了如何添加超链接以导航到 PDF 中的特定页面。
// 打开文档
Document document = new Document("input.pdf");
// 获取页面参考
Page page = document.getPages().get_Item(1);
// 创建 TextFragment 实例
TextFragment text = new TextFragment("link page number test to page 7");
// 创建本地超链接实例
LocalHyperlink link = new LocalHyperlink();
// 设置链接实例的目标页面
link.setTargetPageNumber( 7);
// 设置 TextFragment 超链接
text.setHyperlink(link);
// 将文本添加到 Page 的段落集合
page.getParagraphs().add(text);
// 保存更新的文档
document.save("output.pdf");
使用 Java 更新 PDF 中的超链接
您还可以从 PDF 文件中检索超链接并更新其属性。以下是执行此操作的步骤。
- 使用 Document 类创建新 PDF 或加载现有 PDF。
- 从 Document.getPages() 集合中获取超链接所在页面的引用。
- 使用 Page.getAnnotations().getitem() 方法按索引提取所需的 LinkAnnotation 对象。
- 使用 Document.save(String) 方法更新超链接所需的属性并保存 PDF。
以下代码示例展示了如何使用 Java 更新 PDF 中的超链接。
// 打开文档
Document document = new Document("input.pdf");
// 从文档的第一页获取第一个链接注释
LinkAnnotation linkAnnot = (LinkAnnotation)document.getPages().get_Item(1).getAnnotations().get_Item(1);
// 更改链接操作并将目标设置为网址
linkAnnot.setAction(new GoToURIAction("www.aspose.com"));
// 根据需要更改其他属性
// 保存更新的文档
document.save("output.pdf");
用于在 PDF 中添加超链接的 Java API - 获得免费许可证
您可以获得一个免费的临时许可证 以便在没有评估限制的情况下使用 Aspose.PDF for Java。
结论
在本文中,您学习了如何使用 Java 在 PDF 文件中添加不同类型的超链接。此外,您还了解了如何从现有 PDF 文件中检索超链接并以编程方式更新其属性。此外,您可以使用 文档 探索有关 Java PDF API 的更多信息。如果您有任何问题或疑问,可以通过我们的 论坛 与我们联系。