PDF 中的超链接是一项很有价值的功能,它可以让读者轻松地访问指定页面。通过在 PDF 文档中添加超链接,我们可以更容易地向读者提供文档的补充信息,或者引导他们前往相关资源。当读者单击超链接时,相应的页面就会在浏览器中打开,这样可以极大地提升阅读体验。本文将介绍如何使用 Spire.PDF for .NET 通过 .NET 程序添加超链接到 PDF 中的现有文本。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
通过 C#/VB.NET 插入超链接到 PDF 中的现有文本
PDF 文档中的超链接是作为一种注释元素插入到页面中的。在 PDF 文档中添加超链接到指定文本需要先定位该文本。获取文本位置后,就可以创建一个带有指定连接的 PdfUriAnnotation 的对象,并插入到获取的位置,从而实现添加超链接到指定文本。详细操作步骤如下:
- 创建一个 PdfDocument 类的对象,并使用 PdfDocument.LoadFromFile() 方法载入 PDF 文件。
- 使用 PdfDocument.Pages 属性获取文档第一页。
- 创建一个 PdfTextFinder 类的对象,并使用 PdfTextFinder.Options.Parameter 属性设置查找器选项。
- 使用 PdfTextFinder.Find() 方法在页面中查找指定文本,并获取第二个查找结果。
- 循环遍历第二个查找结果的文本范围(被检索的文本可能跨越多行并有一个以上的范围,因此检索结果的范围被存储在一个列表中以应对这种不确定性)。
- 在文本范围内创建一个 PdfUriAnnotation 类的对象,并使用 PdfUriAnnotation 类下的属性设置链接、范围和边框颜色。
- 使用 PdfPageBase.AnnotationsWidget.Add(PdfUriAnnotation) 方法插入超链接到页面中。
- 使用 PdfDocument.SaveToFile() 方法保存该 PDF 文件。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Exporting.XPS.Schema;
using Spire.Pdf.General.Find;
using Spire.Pdf.Texts;
using System;
using System.Collections.Generic;
using System.Drawing;
using TextFindParameter = Spire.Pdf.Texts.TextFindParameter;
namespace ChangeHyperlink
{
internal class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument的对象
PdfDocument pdf = new PdfDocument();
//载入PDF文件
pdf.LoadFromFile("示例.pdf");
//获取文档第一页
PdfPageBase page = pdf.Pages[0];
//创建一个PdfTextFinder的对象并设置查找器选项
PdfTextFinder finder = new PdfTextFinder(page);
finder.Options.Parameter = TextFindParameter.WholeWord;
//在页面中查找指定文本并获取第二个查找结果
List collection = finder.Find("气候变化");
PdfTextFragment fragment = collection[1];
//循环遍历第二个查找结果的文本范围
foreach (RectangleF bounds in fragment.Bounds)
{
//创建一个PdfUriAnnotation的对象
PdfUriAnnotation url = new PdfUriAnnotation(bounds);
//设置超链接的链接
url.Uri = "https://www.ccchina.org.cn/";
//设置超链接的边框
url.Border = new PdfAnnotationBorder(1f);
//设置边框颜色
url.Color = Color.Blue;
//将超链接插入到页面上
page.AnnotationsWidget.Add(url);
}
//保存PDF文件
pdf.SaveToFile("添加超链接.pdf");
pdf.Dispose();
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports Spire.Pdf.Exporting.XPS.Schema
Imports Spire.Pdf.General.Find
Imports Spire.Pdf.Texts
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports TextFindParameter = Spire.Pdf.Texts.TextFindParameter
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)
'创建一个PdfTextFinder的对象并设置查找器选项
Dim finder As PdfTextFinder = New PdfTextFinder(page)
finder.Options.Parameter = TextFindParameter.WholeWord
'在页面中查找指定文本并获取第二个查找结果
Dim collection As List= finder.Find("气候变化")
Dim fragment As PdfTextFragment = collection(1)
'循环遍历第二个查找结果的文本范围
Dim bounds As RectangleF
For Each bounds In fragment.Bounds
'创建一个PdfUriAnnotation的对象
Dim url As PdfUriAnnotation = New PdfUriAnnotation(bounds)
'设置超链接的链接
url.Uri = "https://www.ccchina.org.cn/"
'设置超链接的边框
url.Border = New PdfAnnotationBorder(1.0F)
'设置边框颜色
url.Color = Color.Blue
'将超链接插入到页面上
page.AnnotationsWidget.Add(url)
Next
'保存PDF文件
pdf.SaveToFile("添加超链接.pdf")
pdf.Dispose()
End Sub
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。