使用C#给PDF文档添加注释的实现代码

 更新时间:2017年01月24日 22:46:58   投稿:mdxy-dxy  
本文将实例讲述C#中如何使用免费组件给PDF文档添加文本注释,包括自由文本注释。自由文本注释能允许我们自定义它的风格和外观,非常具有实用价值

整理文档时,我们可能会需要在一些或一段文字上添加注释加以说明,那如何以编程的方式实现呢?本文将实例讲述C#中如何使用免费组件给PDF文档添加文本注释,包括自由文本注释。自由文本注释能允许我们自定义它的风格和外观,非常具有实用价值。

首先,下载这个免费版组件Free Spire.PDF。组件下载安装后,Visual Studio创建C#控制台项目,添加bin文件夹的.DLL作为引用以及以下命名空间:

using System;
using System.Drawing;
using System.Windows.Forms;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Annotations;

现在我们就来具体看看如何给新建的文档添加注释的。

步骤1:新建一个PDF文档对象,再添加一个新页面。

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

步骤2:文档中添加文本,并设置文本的位置、字体大小、颜色。

PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 13);
string text = "HelloWorld";
PointF point = new PointF(200, 100);
page.Canvas.DrawString(text, font, PdfBrushes.Red, point);

步骤3:给文本添加注释,并设置注释的边框、颜色及位置。

PdfTextMarkupAnnotation annotation1 = new PdfTextMarkupAnnotation("管理员", "一般来说,这是每一种计算机编程语言中最基本、最简单的程序", text, new PointF(0, 0), font);
annotation1.Border = new PdfAnnotationBorder(0.75f);
annotation1.TextMarkupColor = Color.Green;
annotation1.Location = new PointF(point.X + doc.PageSettings.Margins.Left, point.Y + doc.PageSettings.Margins.Left);

步骤4:将注释添加到页面,最后保存文档。

(page as PdfNewPage).Annotations.Add(annotation1);
doc.SaveToFile("result.pdf");

这是添加注释后的效果图:

全部代码:

PdfDocument doc = new PdfDocument();
      PdfPageBase page = doc.Pages.Add();
      PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 13);
      string text = "HelloWorld";
      PointF point = new PointF(200, 100);
      page.Canvas.DrawString(text, font, PdfBrushes.Red, point);
 
      PdfTextMarkupAnnotation annotation1 = new PdfTextMarkupAnnotation("管理员", "一般来说,这是每一种计算机编程语言中最基本、最简单的程序", text, new PointF(0, 0), font);
      annotation1.Border = new PdfAnnotationBorder(0.75f);
      annotation1.TextMarkupColor = Color.Green;
      annotation1.Location = new PointF(point.X + doc.PageSettings.Margins.Left, point.Y + doc.PageSettings.Margins.Left);
      (page as PdfNewPage).Annotations.Add(annotation1);
      doc.SaveToFile("result.pdf");
      System.Diagnostics.Process.Start("result.pdf");

添加自由文本注释

同样,给文档添加自由文本注释也相对简单。

步骤1:新建一个PDF文档对象,并添加一个新页面。

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

步骤2:初始化一个PdfFreeTextAnnotation,然后自定义注释的文本。

RectangleF rect = new RectangleF(0, 40, 150, 50);
PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);
textAnnotation.Text = "Free text annotation ";

步骤3:设置注释的属性,包括字体、填充颜色、边框颜色和透明度。

PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 10);
PdfAnnotationBorder border = new PdfAnnotationBorder(1f);
textAnnotation.Font = font;
textAnnotation.Border = border;
textAnnotation.BorderColor = Color. Purple;
textAnnotation.LineEndingStyle = PdfLineEndingStyle.Circle;
textAnnotation.Color = Color. Pink;
textAnnotation.Opacity = 0.8f;

步骤4:添加注释到页面。

page.AnnotationsWidget.Add(textAnnotation); 

步骤5:保存并重新打开文档。

doc.SaveToFile("FreeTextAnnotation.pdf", FileFormat.PDF);
System.Diagnostics.Process.Start("FreeTextAnnotation.pdf");

这是添加自由文本注释的效果图:

全部代码:

PdfDocument doc = new PdfDocument();
      PdfPageBase page = doc.Pages.Add();
      
      RectangleF rect = new RectangleF(0, 40, 150, 50);
      PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);
      textAnnotation.Text = "Free text annotation ";
    
      PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 10);
      PdfAnnotationBorder border = new PdfAnnotationBorder(1f);
      textAnnotation.Font = font;
      textAnnotation.Border = border;
      textAnnotation.BorderColor = Color. Purple;
      textAnnotation.LineEndingStyle = PdfLineEndingStyle.Circle;
      textAnnotation.Color = Color.Pink;
      textAnnotation.Opacity = 0.8f;
      
      page.AnnotationsWidget.Add(textAnnotation);
      doc.SaveToFile("FreeTextAnnotation.pdf", FileFormat.PDF);
      System.Diagnostics.Process.Start("FreeTextAnnotation.pdf");

之前我也分享过如何在C#里面给PPT添加注释,也许对你有帮助。谢谢浏览!

相关文章

  • 基于C#的音乐播放器主Form实现代码

    基于C#的音乐播放器主Form实现代码

    这篇文章主要介绍了基于C#的音乐播放器主Form实现代码,很实用的功能,需要的朋友可以参考下
    2014-08-08
  • C# 调用命令行执行Cmd命令的操作

    C# 调用命令行执行Cmd命令的操作

    这篇文章主要介绍了C# 调用命令行执行Cmd命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 解决Unity urp级联阴影接缝问题

    解决Unity urp级联阴影接缝问题

    通过从unity内部函数中抽几个出来改造,强制取某个裁切球的级联阴影映射,通过案例给大家详细介绍,文中给出了完整的urp shader代码,对Unity级联阴影知识感兴趣的朋友一起看看吧
    2021-06-06
  • 亲自教你实现栈及C#中Stack源码分析

    亲自教你实现栈及C#中Stack源码分析

    大家都知道栈的实现方式有两种,一种是基于数组实现的顺序栈,另一种是基于链表实现的链式栈。这篇文章主要介绍了手把手教你实现栈以及C#中Stack源码分析,需要的朋友可以参考下
    2021-09-09
  • c# 用ICSharpCode组件压缩文件

    c# 用ICSharpCode组件压缩文件

    今天,主要总结下,windows平台下,zip的压缩与解压的方法,用ICSharpCode组件,有此需求的朋友可以参考下本文
    2021-06-06
  • C#使用委托的步骤浅析

    C#使用委托的步骤浅析

    这篇文章主要介绍了C#使用委托的步骤,以实例形式深入浅出的讲解了C#关于委托的定义、声明、实例化及相关的用法,具有很好的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • C#实现单例模式的几种方法总结

    C#实现单例模式的几种方法总结

    这篇文章主要介绍了C#实现单例模式的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C# 方法的递归调用实现

    C# 方法的递归调用实现

    在C#中,递归调用是指一个方法调用自身的过程,本文主要介绍了C# 方法的递归调用实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • LZW压缩算法 C#源码

    LZW压缩算法 C#源码

    本文分享了一个LZW压缩算法的C#源码,有需要的朋友可以参考一下。
    2016-06-06
  • C#递归实现显示文件夹及所有文件并计算其大小的方法

    C#递归实现显示文件夹及所有文件并计算其大小的方法

    这篇文章主要介绍了C#递归实现显示文件夹及所有文件并计算其大小的方法,是遍历算法中比较典型的一种应用,有不错的学习借鉴价值,需要的朋友可以参考下
    2014-08-08

最新评论