
PDF 是一種功能豐富的文檔格式,支持一系列元素,包括註釋、媒體、表單等。超鏈接是一個重要的元素,用於在 PDF 中導航,從一個 PDF 到另一個 PDF,再到網頁等。在以編程方式生成 PDF 文檔時,您可能經常需要插入超鏈接。因此,在本文中,您將學習如何在 C# .NET 中添加和更新 PDF 文件中的超鏈接。
用於在 PDF 中添加或更新超鏈接的 C# .NET API
為了操作 PDF 文件中的超鏈接,我們將使用 Aspose.PDF for .NET。它是一種流行的 API,允許您從 .NET 應用程序中創建、處理和轉換 PDF 文件。您可以 下載 API 的二進製文件或使用 NuGet 安裝它。
PM> Install-Package Aspose.PDF
C# 在PDF中添加超鏈接
以下是在 C# 中向 PDF 文件添加超鏈接的步驟。
- 使用 Document 類創建新的 PDF 或加載現有的 PDF。
- 從 Document.Pages 集合中獲取要添加超鏈接的頁面的引用。
- 創建 LinkAnnotation 類的對象並設置其屬性。
- 將 LinkAnnotation.Action 屬性初始化為包含 URL 的 GoToURIAction 對象。
- 添加指向 Page.Annotations 集合的鏈接。
- 使用 Document.Save(String) 方法保存 PDF。
以下代碼示例顯示瞭如何使用 C# 在 PDF 中添加超鏈接。
// 打開文檔
Document document = new Document("input.pdf");
// 獲取頁面引用
var page = document.Pages[1];
// 創建鏈接註釋對象
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 100, 300, 300));
// 為 LinkAnnotation 創建邊框對象
Border border = new Border(link);
// 設置邊框寬度值為 0
border.Width = 0;
// 為 LinkAnnotation 設置邊框
link.Border = border;
// 將鏈接類型指定為遠程 URI
link.Action = new GoToURIAction("www.aspose.com");
// 將鏈接註釋添加到PDF文件第一頁的註釋集合
page.Annotations.Add(link);
// 保存更新的文檔
document.Save("output.pdf");
在 C# 中向外部 PDF 添加超鏈接
您還可以使用超鏈接從一個 PDF 導航到外部 PDF 文件。以下步驟演示瞭如何在 C# 中添加指向外部 PDF 文件的超鏈接。
- 使用 Document 類創建新的 PDF 或加載現有的 PDF。
- 從 Document.Pages 集合中獲取要添加超鏈接的頁面的引用。
- 創建一個 LinkAnnotation 類的對象並設置其屬性。
- 將 LinkAnnotation.Action 屬性初始化為包含外部 PDF 路徑的 GoToRemoteAction 對象。
- 添加指向 Page.Annotations 集合的鏈接。
- 使用 Document.Save(String) 方法保存文檔。
以下代碼示例顯示瞭如何在 C# 中添加指向外部 PDF 的超鏈接。
// 打開文檔
Document document = new Document("input.pdf");
// 獲取頁面引用
var page = document.Pages[1];
// 創建超鏈接
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 100, 300, 300));
link.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// 設置動作
link.Action = new GoToRemoteAction("external.pdf", 1);
// 添加超鏈接到頁面
page.Annotations.Add(link);
// 保存更新的文檔
document.Save("output.pdf");
插入指向特定 PDF 頁面的超鏈接
在某些情況下,您必須在 PDF 文檔中從一頁導航到另一頁。 LocalHyperlink 類用於導航到 PDF 中的特定頁面。以下是實現此目的的步驟。
- 使用 Document 類創建新的 PDF 或加載現有的 PDF。
- 從 Document.Pages 集合中獲取要添加超鏈接的頁面的引用。
- 創建 TextFragment 的實例以設置超鏈接的文本。
- 創建 LocalHyperlink 類的實例並將 LocalHyperlink.TargetPageNumber 屬性設置為所需的頁碼。
- 將 LocalHyperlink 對象分配給 TextFragment.Hyperlink 屬性。
- 使用 Page.Paragraphs.Add(TextFragment) 方法向頁面添加文本。
- 使用 Document.Save(String) 方法保存 PDF。
以下代碼示例顯示瞭如何添加超鏈接以導航到 PDF 中的特定頁面。
// 打開文檔
Document document = new Document("input.pdf");
// 獲取頁面引用
var page = document.Pages[1];
// 創建 TextFragment 實例
Aspose.Pdf.Text.TextFragment text = new Aspose.Pdf.Text.TextFragment("link page number test to page 7");
// 創建本地超鏈接實例
Aspose.Pdf.LocalHyperlink link = new Aspose.Pdf.LocalHyperlink();
// 設置鏈接實例的目標頁面
link.TargetPageNumber = 7;
// 設置 TextFragment 超鏈接
text.Hyperlink = link;
// 將文本添加到頁面的段落集合
page.Paragraphs.Add(text);
// 保存更新的文檔
document.Save("output.pdf");
使用 C# 更新 PDF 中的超鏈接
您還可以檢索 PDF 文件中的超鏈接並更新其屬性。以下是執行此操作的步驟。
- 使用 Document 類加載 PDF 文件。
- 從 Document.Pages 集合中獲取超鏈接所在頁面的引用。
- 按索引從 Page.Annotations 集合中提取所需的 LinkAnnotation 對象。
- 使用 Document.Save(String) 方法更新所需的屬性並保存 PDF。
以下代碼示例顯示瞭如何使用 C# 更新 PDF 中的超鏈接。
// 打開文檔
Document document = new Document("input.pdf");];
// 從文檔的第一頁獲取第一個鏈接註釋
LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];
// 更改鏈接操作並將目標設置為網址
linkAnnot.Action = new GoToURIAction("www.aspose.com");
// 根據需要更改其他屬性
// 保存更新的文檔
document.Save("output.pdf");
獲得免費許可證
您可以獲得免費的臨時許可證,以便在沒有評估限制的情況下使用 Aspose.PDF for .NET。
結論
在本文中,您學習瞭如何使用 C# 在 PDF 文件中添加不同類型的超鏈接。此外,您還看到瞭如何從現有 PDF 文件中檢索超鏈接並以編程方式更新它們的屬性。此外,您可以使用 文檔 探索更多關於 .NET PDF API 的信息。如果您有任何問題或疑問,可以通過我們的論壇 聯繫我們。