【前言】

向文档添加注释,是一种比较常用的向读者传递某些重要信息的手段。通过编程的方式来添加PDF注释,我们可以自定义注释的外观、类型及其他一些个性化的设置,这种可供选择的操作在编程中提供了更多的实用性。因此,本篇文章将介绍添加几种不同类型的PDF注释的方法。下面的示例中,借助控件总结了一些不同类型的注释的具体操作,主要包含以下几种

  • 添加弹出式注释(Popup Annotation)
  • 添加自由文本注释(Free Text Annotation)
  • 添加链接式注释(Link Annotation)
  • 添加多边形注释(Polygon Annotation)
  • 添加线性注释(Line Annotation)

【工具使用】

  • Spire.PDF for .NET 4.0

【代码操作】

1.弹出式注释(Popup Annotation)

C#

using Spire.Pdf;
using Spire.Pdf.General.Find;
using System.Drawing;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;namespace Annotation_PDF
{class Program{static void Main(string[] args){//初始化PdfDocument类实例,并加载测试文档            PdfDocument doc = new PdfDocument();doc.LoadFromFile("sample.pdf");//获取第一页PdfPageBase page = doc.Pages[0];//调用方法FindText()查找需要添加注释的字符串PdfTextFind[] results = page.FindText("IPCC").Finds;//指定注释添加的位置float x = results[0].Position.X - doc.PageSettings.Margins.Top;float y = results[0].Position.Y - doc.PageSettings.Margins.Left + results[0].Size.Height - 23;//创建弹出式注释RectangleF rect = new RectangleF(x, y, 10, 0);PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(rect); //添加注释内容,并设置注释的图标类型和颜色 popupAnnotation.Text = "IPCC,This is a scientific and intergovernmental body under the auspices of the United Nations.";popupAnnotation.Icon = PdfPopupIcon.Help; popupAnnotation.Color = Color.DarkOliveGreen;//添加注释到文件page.AnnotationsWidget.Add(popupAnnotation);//保存并打开文档doc.SaveToFile("Annotation.pdf");System.Diagnostics.Process.Start("Annotation.pdf");}}
}

在选择注释标签类型时,有以下几种类型可供选择

注释添加效果:

2. 自由文本注释(Free Text Annotation)

C#

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;namespace FreeTextAnnotation_pdf
{class Program{static void Main(string[] args){//创建PdfDocument类对象,加载测试文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("sample.pdf");PdfPageBase page = doc.Pages[0];//初始化RectangleF类,指定注释添加的位置、注释图标大小RectangleF rect = new RectangleF(50, 500, 100, 40);PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);//添加注释内容textAnnotation.Text = "This is just a sample, please refer the original article to see more!";//设置注释属性,包括字体、字号、注释边框粗细、边框颜色、填充颜色等PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 9);PdfAnnotationBorder border = new PdfAnnotationBorder(0.75f);textAnnotation.Font = font;textAnnotation.Border = border;textAnnotation.BorderColor = Color.White;textAnnotation.LineEndingStyle = PdfLineEndingStyle.Circle;textAnnotation.Color = Color.Transparent;textAnnotation.Opacity = 0.8f;//添加注释到页面page.AnnotationsWidget.Add(textAnnotation);//保存并打开文档doc.SaveToFile("FreeTextAnnotation.pdf", FileFormat.PDF);System.Diagnostics.Process.Start("FreeTextAnnotation.pdf");}}
}

添加效果

3. 链接式注释(Link Annotation)

C#

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;namespace FreeTextAnnotation_pdf
{class Program{static void Main(string[] args){//创建PdfDocument类对象,加载测试文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("sample.pdf");PdfPageBase page = doc.Pages[0];//初始化RectangleF类,指定注释添加的位置、注释图标大小RectangleF rect = new RectangleF(50, 500, 100, 40);PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);//添加注释内容textAnnotation.Text = "This is just a sample, Click here to read the original file!";//设置注释属性,包括字体、字号、注释边框粗细、边框颜色、填充颜色等PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 9);PdfAnnotationBorder border = new PdfAnnotationBorder(0.75f);textAnnotation.Font = font;textAnnotation.Border = border;textAnnotation.BorderColor = Color.White;textAnnotation.LineEndingStyle = PdfLineEndingStyle.Circle;textAnnotation.Color = Color.Transparent;//添加需要链接到的文件地址,并添加链接到注释string filePath = @"C:\Users\Administrator\Desktop\original.pdf";PdfFileLinkAnnotation link = new PdfFileLinkAnnotation(rect, filePath);page.AnnotationsWidget.Add(link);//添加注释到页面page.AnnotationsWidget.Add(textAnnotation);//保存并打开文档doc.SaveToFile("LinkAnnotation.pdf", FileFormat.PDF);System.Diagnostics.Process.Start("LinkAnnotation.pdf");}}
}

添加效果:

4. 多边形注释(Polygon Annotation)

C#

using Spire.Pdf;
using Spire.Pdf.Annotations;
using System;
using System.Drawing;namespace PolygonAnnotation_PDF
{class Program{static void Main(string[] args){//创建PdfDocument类对象,加载测试文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("sample.pdf");//获取文档第一页PdfPageBase page = pdf.Pages[0];//实例化PdfPolygonAnnotation类,指定多边形各顶点位置PdfPolygonAnnotation polygon = new PdfPolygonAnnotation(page, new PointF[] { new PointF(0, 30), new PointF(30, 15), new PointF(60, 30),new PointF(45, 50), new PointF(15, 50), new PointF(0, 30)});  //指定多边形注释的边框颜色、注释内容、作者、边框类型、修订时间等属性polygon.Color = Color.CornflowerBlue;polygon.Text = "This article is created by Mia, permit read ONLY.";polygon.Author = "Editor's Note";polygon.Subject = "polygon annotation demo";polygon.BorderEffect = PdfBorderEffect.BigCloud;polygon.ModifiedDate = DateTime.Now;//添加注释到页面page.AnnotationsWidget.Add(polygon);//保存并打开文档pdf.SaveToFile("Polygon_Annotation.pdf");System.Diagnostics.Process.Start("Polygon_Annotation.pdf");}}
}

添加效果:

5. 线性注释(Line Annotation)

C#

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Fields;
using Spire.Pdf.Graphics;
using System.Drawing;namespace LineAnnotation_PDF
{class Program{static void Main(string[] args){//实例化PdfDocument类,加载文档PdfDocument document = new PdfDocument();document.LoadFromFile("sample.pdf");PdfPageBase page = document.Pages[0];//在页面指定位置绘制Line类型注释,并添加注释的文本内容int[] linePoints = new int[] { 100,300, 180, 300 };PdfLineAnnotation lineAnnotation = new PdfLineAnnotation(linePoints, "Comment Text");//设置线条粗细、指向lineAnnotation.lineBorder.BorderStyle = PdfBorderStyle.Solid;lineAnnotation.lineBorder.BorderWidth = 1;lineAnnotation.LineIntent = PdfLineIntent.LineDimension;//设置线性注释的头、尾形状、flag类型lineAnnotation.BeginLineStyle = PdfLineEndingStyle.Circle;lineAnnotation.EndLineStyle = PdfLineEndingStyle.Diamond;lineAnnotation.Flags = PdfAnnotationFlags.Default;//设置注释颜色lineAnnotation.InnerLineColor = new PdfRGBColor(Color.Green);lineAnnotation.BackColor = new PdfRGBColor(Color.Green);lineAnnotation.LeaderLineExt = 0;lineAnnotation.LeaderLine = 0;//添加注释到页面page.AnnotationsWidget.Add(lineAnnotation);//保存并打开文档document.SaveToFile("LineAnnotation.pdf");System.Diagnostics.Process.Start("LineAnnotation.pdf");}}
}

添加效果:

以上为全部内容。如需转载,请注明出处!
感谢阅读。

转载于:https://blog.51cto.com/eiceblue/2116816

C# 添加PDF注释(5种类型)相关推荐

  1. python注释几种类型

    python注释的几种类型: 这些问题属于基本的编程语言问题,但是我们遇到的时候一定要完整.准确的回答,给面试者留下一个好的印象 1.单行注释 是在代码前面或者要注释的内容前面加上'#',目的是明确一 ...

  2. 【功能】:前台上传文件(txt,xls,xlsx,csv,pdf)五种格式的文件 后台java解析文件,并且判断文件内容是否为零字节

    描述:前台html上传文件到后台解析文件.文件类型有txt,xls,xlsx,csv,pdf这五种类型,并且要判断文件内容是否为空,就是有文件,但是文件内容的字节为零. 首先先配置需要maven依赖. ...

  3. 添加过的PDF注释可以修改吗?怎么修改PDF注释?

    添加过的PDF注释可以修改吗?怎么修改PDF注释?我们在阅读PDF文件的时候经常习惯给PDF文件添加注释,可能是高亮.下划线.删除线或者是绘制一些标注或添加一下注释等等,那可能经常会出现添加了注释以后 ...

  4. 快速为PDF文档添加书签的3种方法

    在PDF文档中添加书签是PDF阅读或PDF编辑的基本操作,有时候PDF文档的页数是相当多的,为PDF文档添加书签可以大大提高PDF阅读效率和PDF编辑速率,那么今天就为大家介绍快速为PDF文档添加书签 ...

  5. python语言的两种注释方法_python编程时添加中文注释的方法

    python编程时添加中文注释的方法 发布时间:2020-08-24 17:09:52 来源:亿速云 阅读:77 作者:小新 这篇文章主要介绍python编程时添加中文注释的方法,文中介绍的非常详细, ...

  6. 几个流畅阅读与标记PDF文件的顶级 PDF 注释器

    使用 PDF 注释工具改变您修改 PDF 文档的方式. PDF 注释器提供了广泛的对象集,用于对内容进行说明.PDF 注释器的目的范围从标记页面内容到添加有洞察力的功能(如表单). 您可以在评论表中添 ...

  7. 设计一个处理两种类型地址的地址簿程序_编译器设计-符号表-中间代码生成

    编译器设计-符号表-中间代码生成 Compiler Design - Symbol Table Compiler - Intermediate Code Generation 一.Compiler D ...

  8. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 本文讲解了在 Spring 中处理 LOB 数据的原理和方法, ...

  9. PDF怎么编辑注释? 5 个免费好用的 PDF 注释器

    成群结队的人和组织想要注释他们的 PDF 文档的原因有很多.无论哪种情况,目标是做到近乎完美并不是完美.但是,如果您没有合适的 PDF 注释器,这又是不可能的.虽然这些 PDF 注释器工具中的许多都很 ...

最新文章

  1. C# Sato CL4NX打印机发送SBPL指令打印表面信息、RFID芯片数据写入
  2. Spring Boot - 自动装配中的不可忽视的@Import
  3. mysql连接数thread_MySQL数据库负载很高连接数很多怎么处理
  4. 【VMCloud云平台】SCCM(五)创建第一个集合
  5. ArangoDB Foxx service 使用
  6. 互联生活:业务模式聚焦
  7. 后端的日期类型赋值前端表单_Spring Boot实践--前端字符串日期自动转换成后台date类型。...
  8. error processing request什么意思_从processing到Touchdesigner小教程
  9. php和python-php与python谁更适合web开发?为什么?
  10. linux关于bashrc与profile的区别(转)
  11. XCode: 如何添加自定义代码片段
  12. VSCode安装插件,使用本地下载vsix文件
  13. verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
  14. xdg在Linux中的用法,Linux – XDG (X Desktop Group)
  15. 冉宝的每日一题--8月11日
  16. 红与黑题解(深搜入门ing)
  17. Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到
  18. oracle 配置不能保存,Oracle Net Manager保存网络配置提示无效条目Error writing entr
  19. unity沙子堆积_Unity Shader 之 简单实现沙漠干旱热浪的效果
  20. Playfair Crack

热门文章

  1. mysql md 123456_MySQL修炼之路四
  2. PAT 1082. 射击比赛 (20) - 乙级
  3. L1-013. 计算阶乘和-PAT团体程序设计天梯赛GPLT
  4. ps文字换行_零基础一周内熟悉使用PS基础工具【Photoshop教程二】
  5. python 3d重建_三维人脸重建(一)——Python读取obj文件
  6. Java Project项目在Linux下部署步骤及注意事项
  7. 宝塔Linux 8888 进不去
  8. MATLAB批量读取图片,剪切,存储,放大
  9. Intellij idea创建maven项目并配置tomcat
  10. 《嵌入式系统可靠性设计技术及案例解析》读书笔记(七)