C# 添加超链接到PDF文档

概述

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

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

工具

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

示例代码(供参考)

【示例1】插入网页链接

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 = 10;
            float y = 50;

            //创建字体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;

            //创建字体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;

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

            //保存文档
            pdf.SaveToFile("WebLink.pdf");
            System.Diagnostics.Process.Start("Weblink.pdf");
        }
    }
}

网页链接效果:

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

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(20, 40, 300,40);
            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】插入文档页面跳转链接

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(20, 20));
            page2.Canvas.DrawString("(第二页)", font, PdfBrushes.Black, new PointF(20, 20));
            page3.Canvas.DrawString("(第三页)", font, PdfBrushes.Black, new PointF(20, 20));

            //创建超链接文本
            string text = "点击跳转至最后一页";

            //创建RectangleF对象并添加文本
            RectangleF rectangle = new RectangleF(40, 50, 900, 20);
            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");
        }
    }
}

页面跳转链接效果:

(本文完)
转载请注明出处。

原文地址:http://blog.51cto.com/eiceblue/2308449

时间: 2024-07-30 05:10:40

C# 添加超链接到PDF文档的相关文章

Java生成PDF文档(表格、列表、添加图片等)

需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http://download.csdn.net/source/172399 代码如下: 1 import java.awt.Color; 2 import java.io.FileOutputStream; 3 import com.lowagie.text.Cell; 4 import com.lowagi

利用iTextSharp组件给PDF文档添加图片水印,文字水印

最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为:   using System; using System.Collections.Generic; using System.Linq; using System.Text; using iTextSharp.text.pdf; using System.IO; using iTextSharp.text; 创建一个

PDF文档如何添加、删除或移动页面

PDF文件在添加新的内容时需要添加新的页面,然后在页面中进行编辑操作,在处理文档中一些不需要的页面内容时我们可以对页面进行删除,还有对页面顺序的调整.这些和PPT很类似,但是具体怎样操作,怎么在PDF文档中添加,删除或是移动页面呢? 有些PDF文档设置的文档的编辑权限,所以在对PDF文件进行操作前需要解除文档的保护.? 用PDF编辑器来打开需要操作的文档,在工具中会有页面缩略图以及页面的编辑区域,如果没有显示缩略图那么就在“视图”菜单中选择页面缩略图选项来打开. 在缩略图窗口中我们可以选择对应的

给PDF文档添加电子图章的方法

在这电子商务遍地走的社会,电子图章被越来越多地应用在合同.发票和其它电子文档中.那么如果不会使用PS,该如何实现在文档中添加电子图章呢?今天就给各位老铁一种给PDF文档添加电子图章的方法. 工具:PDF编辑器中文版 第一步:先将我们需要加图章的文件转换为PDF格式 点击顶部菜单栏"转换"--"文件转换"--"将文件转换为PDF": 通过PDF编辑器将我们需要打电子图章的文件转换为PDF格式. 第二步:用PDF编辑器打开文档,点击顶部菜单栏&quo

PDF文档如何添加链接

PDF文档怎么添加链接?这是不少小伙伴日常工作和学习遇到的一个问题,今天小编就分享一下PDF文档添加链接的教程. 1. 首先用福昕阅读器打开PDF文件. 2. 点击顶部导航栏"主页"-"链接" 3. 在正文处选中需要插入链接的部位,拖动并滑动鼠标,轻轻勾勒出需要插入链接的范围,然后松开鼠标. 4. 在弹出的选项框中选择要插入的链接类型.如果要插入网络链接就勾选"打开web链接".如果要跳转到其他视图就勾选"跳转到页面视图" 5

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

https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档与pdf文档实例, 1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目 云计算 云服务器ECS 大数据 建站 备案 文档

有效避免PDF文档“肥胖”的技巧

PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨率的图形图像等封装在一个文件中.还包含超文本链接.声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高.所以,在日常工作学习中,为扩展阅读不少用户喜欢将大量的内容塞进同一个文档内,导致我们所见到的PDF文档小则几十MB,大的有上百MB,过度"肥胖",传输和查看都不打方便. 所以,有没有什么办法可以缓解呢? 今天,小编就教大家给PDF文档加超链的方法,可以将PDF链接到某个网站上,这样就不需要把网站内容都搬进来了,快

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

最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完.查找资料发现我们要实现的过程就是把office转换成pdf,当然pdf就不用转换了.然后在pdf转换为swf文件,在浏览器实现预览swf文件.整个过程就是这样,看起来很简单,实际操作起来会出现各种问题.下面我就把自己写的这一小功能记录下来. 1.首先我们需要找到可以把office转换成pdf的方法

常用PDF文档开发库

C++库: 1,PDF类库 PoDoFo   http://podofo.sourceforge.net/  PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析.修改和创建 PDF 文 2,Xpdf http://www.foolabs.com/xpdf/download.html   Xpdf是一个开放源代码的PDF档案浏览器,Xpdf 可解码LZW压缩格式并阅读加密的PDF文件 3,PDF生成工具 Poppler http://poppler.free