首頁 > 軟體

C# 在PDF中新增墨跡註釋Ink Annotation的步驟詳解

2022-02-17 13:00:43

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新增墨跡註釋內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com