ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

使用C#代码更改或删除 PDF 中的超链接

使用C#代码更改或删除 PDF 中的超链接 PDF 文档中的超链接可以帮助用户快速跳转到指定页面或打开相关文档让 PDF 文件更加便捷、易用。但如果链接目标发生变化或者链接指向了错误的页面就可能给文档使用者带来困扰或误解。因此及时修改或删除 PDF 文档中的错误或无效超链接对于确保链接的准确性和可用性非常重要也能为用户提供更好的阅读体验。本文将介绍如何通过 .NET 程序更改或删除 PDF 文档中的超链接。安装 PDF 处理库首先需要将 PDF 处理库中的 DLL 文件添加为 .NET 项目的引用。相关 DLL 文件可以从官方站点下载也可以通过 NuGet 进行安装。PM Install-Package Spire.PDF更改 PDF 中超链接的 URL要更改 PDF 页面中超链接的 URL需要从页面的注释集合中获取超链接注释将其转换为PdfLinkAnnotation对象然后通过其PdfURIAction操作的URI属性重新设置 URL。具体步骤如下创建一个PdfDocument类的对象。使用PdfDocument.LoadFromFIle()方法加载 PDF 文件。使用PdfDocument.Pages[]属性获取文档的第一页。使用PdfPageBase.AnnotationsV2[]属性获取页面中的第一个超链接注释并将其转换为PdfLinkAnnotation对象。通过PdfLinkAnnotation对象的PdfURIAction操作中的URI属性重新设置超链接的 URL。使用PdfDocument.SaveToFile()方法保存文档。完整示例代码如下using Spire.Pdf; using Spire.Pdf.Annotations; using System; namespace ChangeHyperlink { internal class Program { static void Main(string[] args) { // 创建一个 PdfDocument 对象 PdfDocument pdf new PdfDocument(); // 加载 PDF 文件 pdf.LoadFromFile(Sample.pdf); // 获取第一页 PdfPageBase page pdf.Pages[0]; // 获取第一个超链接 PdfUriAnnotationWidget url (PdfUriAnnotationWidget)page.Annotations[0]; // 重新设置超链接的 URL url.Uri https://en.wikipedia.org/wiki/Climate_change; // 保存 PDF 文件 pdf.SaveToFile(ChangeHyperlink.pdf); pdf.Dispose(); } } }从 PDF 中删除超链接PDF 处理库提供了PdfPageBase.AnnotationsV2.RemoveAt()方法可以根据索引删除 PDF 页面中的指定超链接。如果需要删除 PDF 文档中的所有超链接则需要遍历文档中的各个页面获取每个页面的注释集合检查注释是否为PdfLinkAnnotation类的实例如果是则将其删除。具体步骤如下创建一个PdfDocument类的对象。使用PdfDocument.LoadFromFIle()方法加载 PDF 文档。如果需要删除指定的超链接获取包含该超链接的页面并使用PdfPageBase.AnnotationsV2.RemoveAt()方法根据索引删除该超链接。如果需要删除所有超链接遍历文档中的各个页面并通过PdfPageBase.AnnotationsV2属性获取每个页面的注释集合。检查注释是否为PdfLinkAnnotation类的实例。如果是则使用PdfAnnotationCollection.Remove(PdfLinkAnnotation)方法删除该注释。使用PdfDocument.SaveToFIle()方法保存文档。完整示例代码如下// 示例 1更改 PDF 中超链接的 URL using Spire.Pdf; using Spire.Pdf.Actions; using Spire.Pdf.Interactive.Annotations; namespace ChangeHyperlink { internal class Program { static void Main(string[] args) { // 创建一个 PdfDocument 对象 PdfDocument pdf new PdfDocument(); // 加载 PDF 文件 pdf.LoadFromFile(Sample.pdf); // 获取第一页 PdfPageBase page pdf.Pages[0]; // 获取第一个超链接 PdfLinkAnnotation url page.AnnotationsV2[0] as PdfLinkAnnotation; // 重新设置超链接的 URL (url.Action as PdfURIAction).URI https://en.wikipedia.org/wiki/Climate_change; // 保存 PDF 文件 pdf.SaveToFile(ChangeHyperlink.pdf); pdf.Dispose(); } } } // 示例 2删除 PDF 中的超链接 using Spire.Pdf; using Spire.Pdf.Interactive.Annotations; namespace DeleteHyperlink { internal class Program { static void Main(string[] args) { // 创建一个 PdfDocument 对象 PdfDocument pdf new PdfDocument(); // 加载 PDF 文件 pdf.LoadFromFile(Sample.pdf); // 删除第一页中的第二个超链接 //PdfPageBase page pdf.Pages[0]; //page.AnnotationsV2.RemoveAt(1); // 删除文档中的所有超链接 // 遍历文档中的各个页面 foreach (PdfPageBase page in pdf.Pages) { // 获取页面的注释集合 PdfAnnotationCollection collection page.AnnotationsV2; for (int i collection.Count - 1; i 0; i--) { PdfAnnotation annotation collection[i]; // 检查注释是否为 PdfLinkAnnotation 的实例 if (annotation is PdfLinkAnnotation) { PdfLinkAnnotation url (PdfLinkAnnotation)annotation; // 删除超链接 collection.Remove(url); } } } // 保存文档 pdf.SaveToFile(DeleteHyperlink.pdf); pdf.Dispose(); } } }总结本文介绍了如何使用 C# 和 .NET 程序修改或删除 PDF 文档中的超链接。通过获取 PDF 页面中的超链接注释可以重新设置超链接的 URL如果需要删除超链接则可以根据索引删除指定链接或遍历文档中的页面和注释集合批量删除所有超链接。这种方法适用于维护 PDF 文档中的链接内容帮助及时更新失效或错误的链接并保持文档的准确性和可用性。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进