超链接指的是能跳转到其他位置或对象的链接,常见的超链接可以链接到网址、电子邮箱地址和外部文件等。这里我将介绍如何使用免费PDF组件Free Spire.PDF和C#添加这三种超链接到PDF文档。实现这个功能需要下载​​Free Spire.PDF​​并将相应的dll文件添加到应用程序中。


一、链接到外部网页

//创建PDF文档并添加一页
PdfDocument pdf = new PdfDocument();
PdfPageBase page =pdf.Pages.Add();

//定义坐标变量并赋初值
float x = 10;
float y = 50;

//创建字体
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
//添加文本到页面
string text = "更多详情请访问E-iceblue官方网站: ";
page.Canvas.DrawString(text, font1, PdfBrushes.Black, newPointF(x, y));

PdfStringFormat format = new PdfStringFormat();
format.MeasureTrailingSpaces = true;
x = x + font1.MeasureString(text, format).Width;

//创建字体
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Underline), true);
//创建PdfTextWebLink对象
PdfTextWebLink webLink = new PdfTextWebLink();
//设置超链接地址
webLink.Url = "https://www.e-iceblue.cn/";
//设置超链接文本
webLink.Text = "www.e-iceblue.cn";
//设置超链接字体和字体颜色
webLink.Font = font2;
webLink.Brush = PdfBrushes.Blue;

//添加超链接到页面
webLink.DrawTextWebLink(page.Canvas, new PointF(x, y));

//保存文档
pdf.SaveToFile("WebLink.pdf");


C# 给PDF文档添加超链接_Regular

 

 

二、链接到文档内部的指定页面

//创建PDF文档并添加两页
PdfDocument pdf = new PdfDocument();
PdfPageBase page1 =pdf.Pages.Add();
PdfPageBase page2 =pdf.Pages.Add();

//创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);

//添加文本到页面
page1.Canvas.DrawString("第一页",font, PdfBrushes.Black, new PointF(20,20));
page2.Canvas.DrawString("第二页",font, PdfBrushes.Black, new PointF(20,20));

string text = "跳转到第二页";
//创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(20,80, 70, 20);
page1.Canvas.DrawString(text, font, PdfBrushes.ForestGreen, rectangle);

//创建PdfDocumentLinkAnnotation对象
PdfDocumentLinkAnnotation documentLink = new PdfDocumentLinkAnnotation(rectangle,new PdfDestination(page2));

//设置边框颜色
documentLink.Color = Color.DarkSeaGreen;

//添加超链接到第一页
page1.AnnotationsWidget.Add(documentLink);

//保存文档
pdf.SaveToFile("InternalFileLink.pdf");


C# 给PDF文档添加超链接_ico_02

 

 链接到文档内部的其他页面或位置,还可以通过添加按钮(button)和动作(action)的方式来实现,我会在后面的文章中介绍。


三、链接到外部文档

//创建PDF文档并添加一页
PdfDocument document = new PdfDocument();
PdfPageBase page =document.Pages.Add();

//创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);

string text = "打开1.jpg";
//创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(20,40, 80, 20);
page.Canvas.DrawString(text, font, PdfBrushes.ForestGreen, rectangle);

//创建PdfFileLinkAnnotation对象
PdfFileLinkAnnotation fileLink = new PdfFileLinkAnnotation(rectangle,@"1.jpg");
//设置超链接边框颜色
fileLink.Color = Color.DarkSeaGreen;

//添加超链接到页面
page.AnnotationsWidget.Add(fileLink);

//保存文档
document.SaveToFile("ExternalFileLink.pdf");

C# 给PDF文档添加超链接_超链接_03