为了账号安全,请及时绑定邮箱和手机立即绑定

C# 添加超链接到PDF文档

标签:
C# .NET

超链接可以实现不同元素之间的连接,用户可以通过点击被链接的元素来激活这些链接,快速访问链接内容。本文中,将分享通过C#编程在PDF文档中插入超链接的方法,包含以下几种链接:

  • 插入网页链接

  • 插入外部文档链接

  • 插入文档页面跳转链接


工具:Free Spire.PDF for .NET (免费版)

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

https://img1.sycdn.imooc.com//5d01c6cb00014f0d02660249.jpg

示例代码(供参考)

【示例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");  
            
        }   
     }
  }

网页链接效果:

https://img1.sycdn.imooc.com//5d01c8ba00019dd305540234.jpg


【示例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");     
           }   
      }
 }

外部文档连接效果:

https://img1.sycdn.imooc.com//5d01ca0600014a1e05540360.jpg


【示例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");   
       }    
   }
}

页面跳转链接效果:

https://img1.sycdn.imooc.com//5d01e3d40001088e05540475.jpg


(本文完)

转载请注明出处。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
48

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消