PDF 文件中的超链接允许用户通过点击跳转到指定页面或打开指定文件,使 PDF 文件更具互动性且更易使用。然而,如果链接的目标站点已被更改或链接指向错误的位置,可能会给文件使用者带来麻烦或造成误解。因此,更改或删除 PDF 文件中错误或无效的超链接非常重要,可以确保超链接的准确性和可用性,从而为用户提供更好的阅读体验。本文将介绍如何使用 Spire.PDF for .NET 通过 .NET 程序更改或删除 PDF 文档中的超链接。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDFC#/VB.NET 更改 PDF 中的超链接地址
更改 PDF 页面上超链接的 URL 时,需要先获取超链接注释,然后使用 PdfTextWebLinkAnnotationWidget.Url 属性来重新设置 URL。详细操作步骤如下:
- 创建一个 PdfDocument 的对象。
- 使用 PdfDocument.LoadFromFIle() 方法载入 PDF 文件。
- 使用 PdfDocument.Pages[] 属性获取文档的第一页。
- 使用 PdfPageBase.AnnotationsWidget[] 属性获取页面上的第一个超链接部件。
- 使用 PdfUriAnnotationWidget.Uri 属性重新设置超链接的 URL。
- 使用 PdfDocument.SaveToFile() 方法保存文档。
- C#
- VB.NET
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("示例.pdf");
            //获取第一页
            PdfPageBase page = pdf.Pages[0];
            //获取第一个超链接
            PdfUriAnnotationWidget url = (PdfUriAnnotationWidget)page.AnnotationsWidget[0];
            //重新设置该超链接的URL
            url.Uri = "https://www.ccchina.org.cn/";
            //保存PDF文件
            pdf.SaveToFile("更改超链接.pdf");
            pdf.Dispose();
        }
    }
}Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports System
Namespace ChangeHyperlink
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            '创建PdfDocument的对象 Dim pdf As PdfDocument = New PdfDocument() '载入PDF文件
            pdf.LoadFromFile("示例.pdf")
            '获取第一页 Dim page As PdfPageBase = pdf.Pages(0) '获取第一个超链接
            Dim url As PdfUriAnnotationWidget = CType(page.AnnotationsWidget(0), PdfUriAnnotationWidget)
            '重新设置该超链接的URL url.Uri = "https://www.ccchina.org.cn/" '保存PDF文件
            pdf.SaveToFile("更改超链接.pdf")
            pdf.Dispose()
        End Sub
    End Class
End Namespace
C#/VB.NET 删除 PDF 中的超链接
Spire.PDF for .NET 提供的 PdfPageBase.AnnotationsWidget.RemoveAt() 方法可以按其索引删除 PDF 页面上的超链接。而删除一个 PDF 文档中所有的超链接需要循环遍历所有页面以获取每一页的注释,然后判断注释是否是 PdfUriAnnotationWidget 类的实例。如果是,则删除该注释。下面是详细操作步骤:
- 创建一个 PdfDocument 的对象。
- 使用 PdfDocument.LoadFromFIle() 方法载入 PDF 文档。
- 如需删除某个特定的超链接,可以先获取包含该超链接的页面,并使用 PdfPageBase.AnnotationsWidget.RemoveAt() 方法按其索引从页面中删除该超链接。
- 如需删除所有的超链接,则可以循环遍历文档中的所有页面,并使用 PdfPageBase.AnnotationsWidget 属性获取每个页面的注释集合。
- 判断一个注释是否为 PdfUriAnnotationWidget 类的实例。如果是,则使用 PdfAnnotationCollection.Remove(PdfUriAnnotationWidget) 方法删除该注释。
- 使用 PdfDocument.SaveToFIle() 方法保存文档。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using System;
using System.Dynamic;
namespace DeleteHyperlink
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //创建PdfDocument的对象
            PdfDocument pdf = new PdfDocument();
            //载入PDF文件
            pdf.LoadFromFile("示例.pdf");
            //删除第一页中的第二个超链接
            //PdfPageBase page = pdf.Pages[0];
            //page.AnnotationsWidget.RemoveAt(1);
            //删除文档中的所有超链接
            //循环遍历文档中的页面
            foreach (PdfPageBase page in pdf.Pages)
            {
                //获取一个页面中的注释集合
                PdfAnnotationCollection collection = page.AnnotationsWidget;
                for (int i = collection.Count - 1; i >= 0; i--)
                {
                    PdfAnnotation annotation = collection[i];
                    //判断注释是否为PdfUriAnnotationWidget的实例
                    if (annotation is PdfUriAnnotationWidget)
                    {
                        PdfUriAnnotationWidget url = (PdfUriAnnotationWidget)annotation;
                        //删除超链接
                        collection.Remove(url);
                    }
                }
            }
            //保存文档
            pdf.SaveToFile("删除超链接.pdf");
            pdf.Dispose();
        }
    }
}Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports System
Imports System.Dynamic
Namespace DeleteHyperlink
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            '创建PdfDocument的对象 Dim pdf As PdfDocument = New PdfDocument() '载入PDF文件
            pdf.LoadFromFile("示例.pdf")
            '删除第一页中的第二个超链接 'PdfPageBase page = pdf.Pages[0];
            'page.AnnotationsWidget.RemoveAt(1);'删除文档中的所有超链接
            '循环遍历文档中的页面 Dim page As PdfPageBase For Each page In pdf.Pages '获取一个页面中的注释集合
                Dim collection As PdfAnnotationCollection = page.AnnotationsWidget
                Dim i As Integer
                For i = collection.Count - 1 To 0 Step i - 1
                    Dim annotation As PdfAnnotation = collection(i)
                    '判断注释是否为PdfUriAnnotationWidget的实例 If TypeOf annotation Is PdfUriAnnotationWidget Then Dim url As PdfUriAnnotationWidget = CType(annotation,PdfUriAnnotationWidget) '删除超链接
                        collection.Remove(url)
                    End If
                Next
            Next
            '保存文档 pdf.SaveToFile("删除超链接.pdf") pdf.Dispose() End Sub End Class End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



