整理文档时,我们可能会需要在一些或一段文字上添加注释加以说明,那如何以编程的方式实现呢?本文将实例讲述 C# 中如何使用免费组件给 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");
这是添加注释后的效果图:
全部代码:
View Code
- 1 PdfDocument doc = new PdfDocument();
- 2
- 3 PdfPageBase page = doc.Pages.Add();
- 4
- 5 PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 13);
- 6
- 7 string text = "HelloWorld";
- 8
- 9 PointF point = new PointF(200, 100);
- 10
- 11 page.Canvas.DrawString(text, font, PdfBrushes.Red, point);
- 12
- 13
- 14
- 15 PdfTextMarkupAnnotation annotation1 = new PdfTextMarkupAnnotation("管理员", "一般来说,这是每一种计算机编程语言中最基本、最简单的程序", text, new PointF(0, 0), font);
- 16
- 17 annotation1.Border = new PdfAnnotationBorder(0.75f);
- 18
- 19 annotation1.TextMarkupColor = Color.Green;
- 20
- 21 annotation1.Location = new PointF(point.X + doc.PageSettings.Margins.Left, point.Y + doc.PageSettings.Margins.Left);
- 22
- 23 (page as PdfNewPage).Annotations.Add(annotation1);
- 24
- 25 doc.SaveToFile("result.pdf");
- 26
- 27 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");
这是添加自由文本注释的效果图:
全部代码:
View Code
- 1 PdfDocument doc = new PdfDocument();
- 2
- 3 PdfPageBase page = doc.Pages.Add();
- 4
- 5
- 6
- 7 RectangleF rect = new RectangleF(0, 40, 150, 50);
- 8
- 9 PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);
- 10
- 11 textAnnotation.Text = "Free text annotation ";
- 12
- 13
- 14
- 15 PdfFont font = new PdfFont(PdfFontFamily.TimesRoman, 10);
- 16
- 17 PdfAnnotationBorder border = new PdfAnnotationBorder(1f);
- 18
- 19 textAnnotation.Font = font;
- 20
- 21 textAnnotation.Border = border;
- 22
- 23 textAnnotation.BorderColor = Color. Purple;
- 24
- 25 textAnnotation.LineEndingStyle = PdfLineEndingStyle.Circle;
- 26
- 27 textAnnotation.Color = Color.Pink;
- 28
- 29 textAnnotation.Opacity = 0.8f;
- 30
- 31
- 32
- 33 page.AnnotationsWidget.Add(textAnnotation);
- 34
- 35 doc.SaveToFile("FreeTextAnnotation.pdf", FileFormat.PDF);
- 36
- 37 System.Diagnostics.Process.Start("FreeTextAnnotation.pdf");
之前我也分享过如何在,也许对你有帮助。谢谢浏览!
来源: