超链接可以实现不同元素之间的连接,用户可以通过点击被链接的元素来激活这些链接。具有高效、快捷、准确的特点。本文中,将分享通过C#编程在PDF文档中插入超链接的方法。内容包含以下要点:

  • 插入网页链接
  • 插入外部文档链接
  • 插入文档页面跳转链接

工具

下载安装后,注意将Spire.Pdf.dll引用到程序(dll文件可在安装路径下的Bin文件夹中获取)

示例代码(供参考)

【示例1】插入网页链接

步骤 1:创建实例,并添加页

PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.Pages.Add();

步骤 2:定义坐标变量

float x = ;
float y = ;

步骤 3:创建字体1,并添加文本到页面

//创建字体1
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
//添加文本到页面
string text = "注:\n本文主要数据来源参考自WTO,查看原文请点击:";
page.Canvas.DrawString(text, font1, PdfBrushes.Black, new PointF(x, y));
PdfStringFormat format = new PdfStringFormat();
format.MeasureTrailingSpaces = true;
x = x + font1.MeasureString(text, format).Width;

步骤 4:创建字体2 ,添加超链接文本,并设置格式

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

步骤 5 :添加超链接到页面,并保存文档

//添加超链接到页面
webLink.DrawTextWebLink(page.Canvas, new PointF(x, y+)); //保存文档
pdf.SaveToFile("WebLink.pdf");

网页链接效果:

全部代码:

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing; namespace Weblink
{
class Program
{
static void Main(string[] args)
{
//创建PDF文档并添加一页
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.Pages.Add(); //定义坐标变量并赋初值
float x = ;
float y = ; //创建字体
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true);
//添加文本到页面
string text = "注:\n本文主要数据来源参考自WTO,查看原文请点击:";
page.Canvas.DrawString(text, font1, PdfBrushes.Black, new PointF(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.wto.org/";
//设置超链接文本
webLink.Text = "WTO Official Website";
//设置超链接字体和字体颜色
webLink.Font = font2;
webLink.Brush = PdfBrushes.Blue; //添加超链接到页面
webLink.DrawTextWebLink(page.Canvas, new PointF(x, y+)); //保存文档
pdf.SaveToFile("WebLink.pdf");
System.Diagnostics.Process.Start("Weblink.pdf");
}
}
}

【示例2】链接到外部文档

 步骤 1:创建实例,并添加页

PdfDocument document = new PdfDocument();
PdfPageBase page = document.Pages.Add();

步骤 2:创建字体,并绘制超链接文本

//创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 15f, FontStyle.Regular), true); //添加超链接文本
string text = "Clik and View the Original Document";
//创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(, , ,);
page.Canvas.DrawString(text, font, PdfBrushes.SteelBlue, rectangle); //创建PdfFileLinkAnnotation对象
PdfFileLinkAnnotation fileLink = new PdfFileLinkAnnotation(rectangle, @"sample.docx");
//设置超链接边框颜色
fileLink.Color = Color.White;

步骤 3 :添加超链接到页面,并保存文档

//添加超链接到页面
page.AnnotationsWidget.Add(fileLink); //保存并打开文档
document.SaveToFile("ExternalFileLink.pdf");

外部文档连接效果:

全部代码:

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing; namespace Filelink
{
class Program
{
static void Main(string[] args)
{
//创建PDF文档并添加一页
PdfDocument document = new PdfDocument();
PdfPageBase page = document.Pages.Add(); //创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 15f, FontStyle.Regular), true); //添加超链接文本
string text = "Clik and View the Original Document";
//创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(, , ,);
page.Canvas.DrawString(text, font, PdfBrushes.SteelBlue, rectangle); //创建PdfFileLinkAnnotation对象
PdfFileLinkAnnotation fileLink = new PdfFileLinkAnnotation(rectangle, @"sample.docx");
//设置超链接边框颜色
fileLink.Color = Color.White; //添加超链接到页面
page.AnnotationsWidget.Add(fileLink); //保存并打开文档
document.SaveToFile("ExternalFileLink.pdf");
System.Diagnostics.Process.Start("ExternalFileLink.pdf");
}
}
}

【示例3】插入文档页面跳转链接

步骤 1 :创建文档,并添加3页

PdfDocument pdf = new PdfDocument();
PdfPageBase page1 = pdf.Pages.Add();
PdfPageBase page2 = pdf.Pages.Add();
PdfPageBase page3 = pdf.Pages.Add();

步骤 2:创建字体,添加文本到页面

//创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true); //添加文本到页面
page1.Canvas.DrawString("(首页)", font, PdfBrushes.Black, new PointF(, ));
page2.Canvas.DrawString("(第二页)", font, PdfBrushes.Black, new PointF(, ));
page3.Canvas.DrawString("(第三页)", font, PdfBrushes.Black, new PointF(, )); //创建超链接文本
string text = "点击跳转至最后一页"; //创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(, , , );
page1.Canvas.DrawString(text, font, PdfBrushes.SteelBlue, rectangle); //创建PdfDocumentLinkAnnotation对象
PdfDocumentLinkAnnotation documentLink = new PdfDocumentLinkAnnotation(rectangle, new PdfDestination(page3)); //设置边框颜色
documentLink.Color = Color.White;

步骤 3: 添加超链接到页面并保存文档

//添加超链接到第一页
page1.AnnotationsWidget.Add(documentLink); //保存文档
pdf.SaveToFile("InternalFileLink.pdf");

页面跳转链接效果:

全部代码:

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.General;
using Spire.Pdf.Graphics;
using System.Drawing; namespace Documentlink
{
class Program
{
static void Main(string[] args)
{
//创建PDF文档并添加3页
PdfDocument pdf = new PdfDocument();
PdfPageBase page1 = pdf.Pages.Add();
PdfPageBase page2 = pdf.Pages.Add();
PdfPageBase page3 = pdf.Pages.Add(); //创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular), true); //添加文本到页面
page1.Canvas.DrawString("(首页)", font, PdfBrushes.Black, new PointF(, ));
page2.Canvas.DrawString("(第二页)", font, PdfBrushes.Black, new PointF(, ));
page3.Canvas.DrawString("(第三页)", font, PdfBrushes.Black, new PointF(, )); //创建超链接文本
string text = "点击跳转至最后一页"; //创建RectangleF对象并添加文本
RectangleF rectangle = new RectangleF(, , , );
page1.Canvas.DrawString(text, font, PdfBrushes.SteelBlue, rectangle); //创建PdfDocumentLinkAnnotation对象
PdfDocumentLinkAnnotation documentLink = new PdfDocumentLinkAnnotation(rectangle, new PdfDestination(page3)); //设置边框颜色
documentLink.Color = Color.White; //添加超链接到第一页
page1.AnnotationsWidget.Add(documentLink); //保存文档并打开
pdf.SaveToFile("InternalFileLink.pdf");
System.Diagnostics.Process.Start("InternalFileLink.pdf");
}
}
}

(本文完)

转载请注明出处。

C# 插入超链接到PDF文档(3种情况)的更多相关文章

  1. Java 添加超链接到Word文档

    对特定元素添加超链接后,用户可以通过点击被链接的元素来激活这些链接,通常在被链接的元素下带有下划线或者以不同的颜色显示来进行区分.按照使用对象的不同,链接可以分为文本超链接,图像超链接,E-mail链 ...

  2. Java 添加超链接到Excel文档

    超链接即内容链接,通过给特定对象设置超链接,可实现载体与特定网页.文件.邮件.网络等的链接,点击链接载体可打开链接目标,在文档处理中是一种比较常用的功能.本文将介绍通过Java程序给Excel文档添加 ...

  3. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  4. Java 插入附件到PDF文档

    在文档中插入附件,可以起到与源文档配套使用的目的,以一种更简便的方式对文档起到补充说明的作用.下面将介绍通过Java编程插入附件到PDF文档中的方法.这里插入的文档可以是常见的文档类型,如Word.E ...

  5. iText框架(生成pdf文档)

    1.创建一个itext的简单示例 a.导包(pom.xml文件) <dependencies> <dependency> <groupId>com.lowagie& ...

  6. Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  7. 常用PDF文档开发库

    C++库: 1,PDF类库 PoDoFo   http://podofo.sourceforge.net/  PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...

  8. Java实现web在线预览office文档与pdf文档实例

    https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...

  9. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

随机推荐

  1. Git分支合并冲突解决

    前2天群里发了张git历史图,如下: 根据提交历史,可以看出图中所有分支合并都采用merge的方式,具体merge是怎么操作的,可以阅读下边文章. 根据项目上的需求,如果要求git提交历史是比较简单的 ...

  2. Spring Boot实战笔记(八)-- Spring高级话题(条件注解@Conditional)

    一.条件注解@Conditional 在之前的学习中,通过活动的profile,我们可以获得不同的Bean.Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解 ...

  3. dubbo实现原理简单介绍

    一.什么是dubbo   Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,     ...

  4. C语言中变量的存储方式

    变量可以分为全局变量.静态全局变量.局部变量和静态局部变量变量的声明有两种情况:1)一种是需要建立存储空间的(定义性声明).例如int a 在生命的时候就已经建立了存储空间.2)另一种是不需要建立存储 ...

  5. springboot之启动原理解析

    前言 SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面 ...

  6. 项目开发中如何规范自己的CSS

    1.CSS规范 - 分类方法 CSS文件的分类和引用顺序 通常,一个项目我们只引用一个CSS,但是对于较大的项目,我们需要把CSS文件进行分类. 我们按照CSS的性质和用途,将CSS文件分成“公共型样 ...

  7. JVM 线上故障排查基本操作

    # 前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的.各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题.楼主同样也遇到过这些问题,那么,遇到这些问题该 ...

  8. Android 实现个性的ViewPager切换动画 实战PageTransformer(兼容Android3.0以下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40411921,本文出自:[张鸿洋的博客] 1.概述 之前写过一篇博文:Andro ...

  9. 【原】用Java编写第一个区块链(二)

    这篇文章将去介绍如何使用区块链进行交易. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 在上一篇文章中,我们已经创建了一个可信任的区块链.但是目前所创建的链中包含的有 ...

  10. 安装vmtools之后任然不能在虚拟机和主机之间复制粘贴的问题

    安装vmtools之后任然不能在虚拟机和主机之间复制粘贴的问题 都是因为这个进程没有启动起来,你只需要在启动后在终端输入 "/usr/bin /vmware-user" 就可以手动 ...