
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.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 的更多信息。如果您有任何問題或疑問,可以通過我們的論壇 聯繫我們。