PDF 是一种功能丰富的文档格式,支持一系列元素,包括注释、媒体、表单等。超链接是一个重要元素,用于在 PDF 中导航,从一个 PDF 到另一个 PDF,再到另一个网页等。在以编程方式生成 PDF 文档时,您可能经常需要插入超链接。因此,在本文中,您将学习如何在 C# .NET 中添加和更新 PDF 文件中的超链接。
C# .NET API 在 PDF 中添加或更新超链接
要操作 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 的段落集合
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 的更多信息。如果您有任何问题或疑问,可以通过我们的 论坛 与我们联系。