服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

2023-02-07 14:39E-iceblue C#

PDF中的墨迹注释表现为徒手涂鸦式的形状,该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线,下面通过C#程序代码介绍下在pdf中添加注释的步骤,感兴趣的朋友一起看看吧

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何在PDF中添加该注释。

一、dll引用

步骤1:在Visual Studio中打开“解决方案资源管理器”- 鼠标右键点击“引用”-“管理NuGet包”。

C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

步骤2:选择“浏览”-在搜索框中输入搜索内容,选择搜索结果,点击“安装”。

C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

步骤3:依次点击“OK”-"接受",然后等待程序完成安装。

C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

或者,通过官方渠道,下载包Spire.PDF for .NET到本地。解压后,将BIN文件夹下的Spire.Pdf.dll文件引用至VS程序。

 

二、代码示例

添加注释时,除了自定义各个点的位置及数量,也可以设置墨迹颜色、线条宽度、透明度、注释的内容、名称等。下面是代码实现的步骤:

  • 创建PdfDocument类的对象,并通过PdfDocument.LoadFromFile(String fileName)方法加载PDF文档。
  • 通过PdfDocument.Pages[int Index]属性获取PDF指定页面。
  • 创建类型为int的对象集合,集合元素为各墨迹顶点。
  • 创建PdfInkAnnotation类的实例。并通过该类提供的属性设置墨迹颜色、宽度、注释内容等格式。
  • 调用PdfPageBase.AnnotationsWidget属性提供的PdfAnnotationCollection.Add(PdfAnnotation annotation)方法添加注释到PDF。
  • 最后,通过PdfDocument.SaveToFile(string filename, FileFormat fileFormat)方法保存PDF文档到指定路径。

C#

using Spire.Pdf;
using Spire.Pdf.Annotations;
using System.Collections.Generic;
using System.Drawing;

namespace InkAnnotation
{
  class Program
  {
      static void Main(string[] args)
      {
          //加载PDF文档
          PdfDocument pdf = new PdfDocument();
          pdf.LoadFromFile("test.pdf");
          //获取第一页
          PdfPageBase pdfPage = pdf.Pages[0];
          //设置墨迹坐标点位置
          List<int[]> inkList = new List<int[]>();           
          int[] intPoints = new int[]
          {
              370,700,
              120,720,
              110,760,
              220,800,
              270,790,
              350,770,
              350,670
          };
          inkList.Add(intPoints);
          //添加墨迹注释到PDF页面
          PdfInkAnnotation inkannotation = new PdfInkAnnotation(inkList);
          inkannotation.Color = Color.MediumVioletRed;
          inkannotation.Border.Width = 6;
          inkannotation.Opacity = 0.5f;
          inkannotation.Text = "This is an ink annotation. ";
          inkannotation.Name = "Manager";     
          pdfPage.AnnotationsWidget.Add(inkannotation);
          //保存文档
          Pdf.SaveToFile("AddInkAnnotation.pdf",FileFormat.PDF);
          System.Diagnostics.Process.Start("AddInkAnnotation.pdf");
      }
  }
}

vb.net

Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports System.Collections.Generic
Imports System.Drawing
Namespace InkAnnotation
  Class Program
      Private Shared Sub Main(args As String())
          '加载PDF文档
          Dim pdf As New PdfDocument()
          pdf.LoadFromFile("test.pdf")
          '获取第一页
          Dim pdfPage As PdfPageBase = pdf.Pages(0)
          '设置墨迹坐标点位置
          Dim inkList As New List(Of Integer())()
          Dim intPoints As Integer() = New Integer() {370, 700, 120, 720, 110, 760, _
              220, 800, 270, 790, 350, 770, _
              350, 670}
          inkList.Add(intPoints)
          '添加墨迹注释到PDF页面
          Dim inkannotation As New PdfInkAnnotation(inkList)
          inkannotation.Color = Color.MediumVioletRed
          inkannotation.Border.Width = 6
          inkannotation.Opacity = 0.5F
          inkannotation.Text = "This is an ink annotation. "
          inkannotation.Name = "Manager"
          pdfPage.AnnotationsWidget.Add(inkannotation)
          '保存文档
          pdf.SaveToFile("AddInkAnnotation.pdf", FileFormat.PDF)
      End Sub
  End Class
End Namespace

注释效果:

C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

到此这篇关于C# 在PDF中添加墨迹注释Ink Annotation的文章就介绍到这了,更多相关C#  PDF添加墨迹注释内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/Yesi/archive/2022/02/17/15903542.html

延伸 · 阅读

精彩推荐
  • C#Unity3D中shader 轮廓描边效果实现代码

    Unity3D中shader 轮廓描边效果实现代码

    这篇文章主要介绍了Unity3D中shader 轮廓描边效果的相关资料,需要的朋友可以参考下...

    C#教程网11202022-08-29
  • C#C#通过正则表达式实现提取网页中的图片

    C#通过正则表达式实现提取网页中的图片

    本文给大家分享的是使用C#通过正则表达式来实现提取网页中的图片的代码,十分的方便,有需要的小伙伴可以参考下。...

    C#教程网8802021-11-05
  • C#c# 连接池的设置与使用

    c# 连接池的设置与使用

    这篇文章主要介绍了c# 连接池的设置与使用,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...

    旷野风筝少年9682022-10-31
  • C#详解C#中的out和ref

    详解C#中的out和ref

    本文主要介绍了out和ref的相关知识。具有一定的参考价值,下面跟着小编一起来看下吧...

    Alan_beijing9292021-12-18
  • C#C#使用InstallerProjects打包桌面应用程序的完整步骤

    C#使用InstallerProjects打包桌面应用程序的完整步骤

    这篇文章主要给大家介绍了关于C#使用InstallerProjects打包桌面应用程序的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参...

    kiba5186812022-07-28
  • C#c#实现几种数据库的大数据批量插入

    c#实现几种数据库的大数据批量插入

    这篇文章主要介绍了c#实现几种数据库的大数据批量插入,主要包括SqlServer、Oracle、SQLite和MySQL,有兴趣的可以了解一下。...

    youngyang5255462021-12-21
  • C#如何解决hash冲突

    如何解决hash冲突

    上篇文章 为什么哈希存取比较快?使用它需要付出什么代价 只是简单介绍了使用hash所带来的利与弊。并未涉及hash的技术细节,本文则着重学习一下如何解...

    Robin8992021-11-26
  • C#采用C#代码动态设置文件权限

    采用C#代码动态设置文件权限

    在开发中,我们经常会使用IO操作,例如创建,删除文件等操作。在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行...

    彭泽09027072021-12-13