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

 更新时间:2022年02月17日 11:16:59   作者:E-iceblue  
PDF中的墨迹注释表现为徒手涂鸦式的形状,该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线,下面通过C#程序代码介绍下在pdf中添加注释的步骤,感兴趣的朋友一起看看吧

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

一、dll引用

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

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

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

或者,通过官方渠道,下载包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添加墨迹注释内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#可用于登录验证码的四位随机数生成方法

    C#可用于登录验证码的四位随机数生成方法

    这篇文章主要介绍了C#可用于登录验证码的四位随机数生成方法,提供了两种生成四位随机数的方法供大家参考,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • C#实现12306自动登录的方法

    C#实现12306自动登录的方法

    本文介绍了C#实现12306自动登录的方法,主要方法是捕获参数和url并补充参数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-07-07
  • 轻松学习C#的正则表达式

    轻松学习C#的正则表达式

    轻松学习C#的正则表达式,对C#的正则表达式感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的正则表达式
    2015-11-11
  • unity实现简单抽奖系统

    unity实现简单抽奖系统

    这篇文章主要为大家详细介绍了unity实现简单抽奖系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#通过属性名称获取(读取)属性值的方法

    C#通过属性名称获取(读取)属性值的方法

    本文主要介绍了C#通过属性名称获取(读取)属性值的方法,并提供了简化版代码,具有很好的参考价值,需要的朋友可以看下
    2016-12-12
  • 登录验证全局控制的几种方式总结(session)

    登录验证全局控制的几种方式总结(session)

    在登陆验证或者其他需要用到session全局变量的时候,归结起来,主要有以下三种较方便的实现方式。(其中个人较喜欢使用第一种实现方法)
    2014-01-01
  • C#读写txt文件多种方法实例代码

    C#读写txt文件多种方法实例代码

    这篇文章主要介绍了C#读写txt文件的小例子,大家可以参考使用
    2013-11-11
  • C# 中的多态底层虚方法调用详情

    C# 中的多态底层虚方法调用详情

    这篇文章主要介绍了C# 中的多态底层虚方法调用详情,文章围绕主题展开详细的内容介绍,需要的小伙伴你可以参考一下
    2022-06-06
  • C# TreeView无限目录树实现方法

    C# TreeView无限目录树实现方法

    这篇文章主要介绍了C# TreeView无限目录树实现方法,实例分析了TreeView节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • C#事件处理和委托event delegate实例简述

    C#事件处理和委托event delegate实例简述

    这篇文章主要介绍了C#事件处理和委托event delegate的简单实例,较为详细的讲述了C#事件处理和委托的声明与实现过程,代码简单易懂,需要的朋友可以参考下
    2014-09-09

最新评论