这篇文章主要介绍如何使用免费版PDF组件Free Spire.PDF及C#编程语言给现有PDF文档或新建的PDF文档中的文本添加注释或标注(完整代码附在文章末尾)。

首先,下载 Free Spire.PDF 组件并安装后,打开Visual Studio创建项目并引用Spire.Pdf.dll,如下图:

接下来添加命名空间:

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.General.Find;
using Spire.Pdf.Graphics;

命名空间添加后,我们就可以使用其中的类和方法来实现添加注释。

给现有的PDF文档中的文本添加注释

文档:

接下来的部分主要阐述如何给以上PDF文档中的文本“唐朝”添加注释。

1. 从系统加载PDF文档。

PdfDocument doc = new PdfDocument();
doc.LoadFromFile("唐朝.pdf");

2. 声明一个PdfTextFind类型的数组并创建一个新的PDF字体。

PdfTextFind[] result = null;
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 11f), true);

3. 获取文本,创建注释并添加到PDF页面。

遍历PDF文档的所有页面,获取需要添加注释的文本并将它们保存到声明的数组中,然后遍历数组,为每个文本创建注释并指定注释的作者、注释内容、注释的文本,位置,及字体等,然后设置注释的边框、颜色,最后将注释添加到页面上。

foreach (PdfPageBase page in doc.Pages)
{result =page.FindText("唐朝").Finds;foreach (PdfTextFind text in result){PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation("汤姆", "618年—907年", text.SearchText, text.Position, font);annotation.Border= new PdfAnnotationBorder(0.75f);annotation.TextMarkupColor= Color.Green; text.SearchPage.AnnotationsWidget.Add(annotation);}
}

4. 保存文档。

doc.SaveToFile("输出.pdf");

以上代码需要注意的几点:

1. 这里我是将文档放在项目的Debug目录下的。你也可以从路径加载文档,如:doc.LoadFromFile(@"E:\Program Files\唐朝.pdf");

2. Free Spire.PDF组件提供了几个不同的PDF字体类,因为这里我们使用的文档是中文,所以要选择支持中文的字体类,如PdfTrueTypeFont类和PdfCjkStandardFont类(支持繁体中文)。同时,在使用系统字体时也要注意选择支持中文(Unicode)的字体,如“Arial Unicode MS”。

3. 这里我遍历了PDF文档的所有页面,如果你只需要对某一页的文本添加注释,则只需获取该页,如:PdfPageBase page =doc.Pages[0];

运行结果:

给新建的PDF文档添加注释

给新建PDF文档添加注释较为简单,代码如下:

//创建文档
PdfDocument doc1 = new PdfDocument();
PdfPageBase page1 =doc1.Pages.Add();
//向文档添加文本
PdfFont font1 = new PdfFont(PdfFontFamily.Helvetica,13);
string text1 = "HelloWorld";
PointF point = new PointF(200, 100);
page1.Canvas.DrawString(text1, font1, PdfBrushes.CadetBlue, point);//给文本创建注释
PdfTextMarkupAnnotation annotation1 = new PdfTextMarkupAnnotation("管理员", "这是一个文本注释",text1, new PointF(0,0), font1);
annotation1.Border = new PdfAnnotationBorder(0.75f);
annotation1.TextMarkupColor = Color.Green;
annotation1.Location = new PointF(point.X +doc1.PageSettings.Margins.Left, point.Y + doc1.PageSettings.Margins.Left);
//将注释添加到页面
(page1 as PdfNewPage).Annotations.Add(annotation1);
//保存文档
doc1.SaveToFile("新建.pdf");

运行结果:

完整代码:

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.General.Find;
using Spire.Pdf.Graphics;namespace PDF文档添加注释
{class Program{static void Main(string[] args){//给现有的PDF文档中的文本添加注释PdfDocument doc = new PdfDocument();doc.LoadFromFile("唐朝.pdf");PdfTextFind[] result = null;PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 11f), true);foreach (PdfPageBasepage in doc.Pages){result = page.FindText("唐朝").Finds;foreach (PdfTextFind text in result){PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation("汤姆", "618年—907年",text.SearchText, text.Postition, font);annotation.Border = new PdfAnnotationBorder(0.75f);annotation.TextMarkupColor = Color.Green;text.SearchPage.AnnotationsWidget.Add(annotation);}}doc.SaveToFile("输出.pdf");//给新建的PDF文档添加注释PdfDocument doc1 = new PdfDocument();PdfPageBase page1 = doc1.Pages.Add();PdfFont font1 = new PdfFont(PdfFontFamily.Helvetica,13);string text1 = "HelloWorld";PointF point = new PointF(200, 100);page1.Canvas.DrawString(text1, font1, PdfBrushes.CadetBlue,point);PdfTextMarkupAnnotation annotation1 = new PdfTextMarkupAnnotation("管理员", "这是一个文本注释",text1, new PointF(0,0), font1);annotation1.Border = new PdfAnnotationBorder(0.75f);annotation1.TextMarkupColor = Color.Green;annotation1.Location = new PointF(point.X + doc1.PageSettings.Margins.Left,point.Y + doc1.PageSettings.Margins.Left);(page1 as PdfNewPage).Annotations.Add(annotation1);doc1.SaveToFile("新建.pdf");}}
}

C# 如何给现有/新建PDF文档添加注释或标注相关推荐

  1. 怎样使用PDF编辑器从TXT文档新建PDF文档

    编辑器中可以从TXT文档新建PDF文档吗,我们知道,PDF文档是可以由其他的文档格式转化而来的,那么,如何使用PDF编辑器从TXT文档新建PDF文档呢. 小编使用的迅捷PDF编辑器作为专业PDF文件编 ...

  2. 使用免费组件给PDF文档添加文本和图片页眉

    C#/.NET 使用免费组件给PDF文档添加文本和图片页眉 如今PDF文档与Office文档一样成为了一种通用文档,在日常工作中我们经常会碰到需要给PDF文件添加页眉和页脚/页码等情况,如果你正好是喜 ...

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

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

  4. java给word和pdf文档添加二维码

    背景 目前收到一个需求,需要给上传的word和pdf文档添加二维码,防止职工给领导签字时伪造合同,所以提出这个需求,上传的word和pdf添加二维码,然后使用我们的app扫码查看相关的信息. 解决方案 ...

  5. elementui表格添加滚动条_如何给PDF文档添加超链接?

    有时我们在编辑PDF文档时,需要给目录做快速跳转或给文中的某些内容跳转到其他网页,这就需要用到超链接的功能.下面就一起看看给PDF文档添加超链接的是如何操作的. https://www.zhihu.c ...

  6. pdf常用字体包 -baijiahao_如何给PDF文档添加和插入页码?

    如今PDF格式因其比常用的office格式更稳定,被越来越多人使用,但也正因为近几年才慢慢广泛使用,对于其编辑的相关操作也相对陌生,那么如何给PDF文档添加页码呢?如果不喜欢从第一页就开始编码,如何直 ...

  7. 使用PDF编辑器为PDF文档添加页码教程

    在日常工作中编辑PDF文档时,必然会遇到需要给PDF文档添加页码的情况.那么如何给PDF文档添加页码呢?需要借助什么软件才能完成呢? 今天就教大家轻松为PDF文档添加页码. PDF编辑器https:/ ...

  8. 用PDF格式协议的方式给PDF文档添加透明文字水印

    用PDF格式协议的方式给PDF文档添加透明文字水印 *有情提示:本文适合有一定pdf格式协议基础的人阅读. 一.生成一个HelloWorld.pdf 首先,为了方便介绍,我们先写一个Helloworl ...

  9. pdf文档添加书签的三种方式

    本文总结了三种pdf文档添加书签的方式. 1 搜出书签用PdgCntEditor创建书签方式 方法原地址:https://zhuanlan.zhihu.com/p/170590863 1.1 在全国图 ...

最新文章

  1. pandas 中 的drop函数
  2. IDT 信息设计工具使用
  3. 如何对SQL Server数据库中的孤立用户和系统及用户建立映射
  4. 【转载】Linux截图工具
  5. Scalaz(27)- Inference Unapply :类型的推导和匹配
  6. “约见”面试官系列之常见面试题之第五十八篇之join和split(建议收藏)
  7. 【 IT版 】啥是佩奇?
  8. CGIC库的移植及使用
  9. kafka 丢弃数据_Kafka快速入门
  10. rabbitmq的下载与安装windows-64
  11. 化工原理物性参数_化工原理
  12. 第3章 快速开始:HelloWorld 《Kotin 编程思想·实战》
  13. [转载] python flask实现分页
  14. 计算机网络第期末试题及答案,计算机网络期末考试试题及答案
  15. 组合数怎么用计算机算方差,投资组合的方差公式是什么?怎么算的
  16. debug5x 微信_微信X5内核webview调试
  17. EXCEL的100种便捷用法(2):怎么将EXCEL里面一个单元格的数据拆分为多列
  18. Python随机生成出生日期
  19. PHP实现简单计算器
  20. C++设计模式——享元模式(高屋建瓴)

热门文章

  1. 从心灰意冷到自学Java3个月顺利拿到offer,多亏这份文档
  2. linux dhcp搭建及自动安装
  3. Incapsula免费日本CDN加速和CDNZZ香港CDN节点加速
  4. 令狐冲的SDL(安全开发周期)引进手记
  5. 网页信息采集-网页数据采集方法
  6. python将时间戳与年月日时分秒时间的互相转换
  7. 王珺:智能音箱语音技术分享
  8. 记录中国银行原油宝导致 中国普通人亏300多乙事件
  9. 联想笔记本电脑连接不到无线网络的解决办法
  10. 绿化工程公司、苗木企业、苗圃、花木行业使用的网站源码,自带手机版,代码完整开源