產品比較

IronPDF與XFINIUM.PDF的比較

發佈 2022年9月27日
分享:

技術的不斷進步意味著為大家提供了更智能的解決方案,尤其是對開發人員來說。自動化現在是軟體開發過程的關鍵。多年來,處理 C# PDF 文件一直是開發人員面臨的難題。在創建 PDF 文件的內容時需要考慮許多因素,尤其是在從不同格式轉換為 PDF 時問題更加複雜。這些問題現在已經通過建構多個庫來解決,這些庫旨在幫助讀取、寫入、創建和從不同格式轉換為 PDF。

本文將對比兩個最受 .NET 和 .NET Core 開發人員歡迎的 PDF 庫。這兩個庫分別是:

  • IronPDF 庫
  • XFININIUM.PDF 庫

IronPDF 和 XFININIUM.PDF 是兩個為 .NET 和 .NET Core 提供創建、操作和打印 PDF 方法的庫。下一個問題是決定哪個 C# PDF 庫最適合您的 .NET 專案。您可以通過閱讀以下有關兩個庫及其在 PDF 轉換和操作中的各自傑出功能的比較來衡量您的決定。

首先,讓我們看看這兩個庫提供了什麼,然後再進入比較本身。

XFINIUM.PDF 庫及其功能

XFINIUM.PDF 庫是一個跨平台的 PDF 開發庫。它提供了廣泛的功能,無論是業餘愛好者還是專業的 PDF 開發者都能夠使用。無論你是想要創建報告、填寫 PDF 表單、構建 PDF 組合、從 PDF 報告中編輯敏感數據,還是將 PDF 報告轉換為多頁 TIFF 圖像,XFINIUM.PDF 都能滿足你的需求。

XFINIUM.PDF 提供兩個版本:生成器版,包括 PDF 生成和編輯功能;查看器版,包含生成器版的所有功能,外加 PDF 渲染和 PDF 查看功能。「功能區」(Features)部分說明了兩個版本中包含的功能,以及只有查看器版才有的功能。

XFINIUM.PDF 完全使用 C# 編寫,並且是完全受管理的代碼。它採用每開發者授權方式,無版稅分發,允許你自由分發你的程式而不會產生額外費用。

生成器版本和查看器版本之間有什麼區別?

生成器版本是查看器版本的一個子集。生成器版本提供創建和編輯PDF的功能,而查看器版本在生成器版本的基礎上增加了PDF渲染功能。查看器版本可以將PDF頁面轉換為RAW、BMP、GIF、JPG、PNG和TIFF圖像。

XFINIUM.PDF 規格

一些重要的功能包括:

安全性

  • 使用者和擁有者密碼
  • 文件存取權限
  • 40位元和128位元RC4加密
  • 128位元和256位元AES加密
  • 內容刪除
  • 禁用文本複製/粘貼

數位簽章

  • 使用 X509 證書進行數位簽章的審核和認證
  • 使用 SHA256/SHA384/SHA512 的基礎 CMS 和 PAdES 數位簽章
  • 簽章時間戳
  • 數位簽章中包括 OCSP 和 CRL 資訊
  • 文件安全存儲
  • 文件時間戳
  • LTV (長期驗證) 啟用數位簽名
  • 將現有的簽名解碼為ASN.1對象
  • 從數位簽名中提取證書
  • 保存已簽名的PDF文件副本

條碼

  • 內建矢量條碼引擎,無需條碼圖片或條碼字體
  • 一維條碼:

    • 通用條碼:Codabar, Code 11, Code 25, Code 25 Interleaved, Code 39, Code 39 Extended, Code 93, Code 93 Extended, Code 128 A, Code 128 B, Code 128 C, COOP 25, Matrix 25, MSI/Plessey
  • 醫藥條碼:Code 32, Pharmacode, PZN (藥品中央代碼)
  • 二維條碼:

    • DataMatrix, QR, PDF417, Micro PDF417, Codablock F, Code 16K

內容擷取

  • 擷取具有片段級和字符級位置資訊的文字
  • 擷取具有單詞級和字符級位置資訊的文字
  • 從用戶定義的區域中擷取文字和單詞
  • 擷取圖片,包括圖片資訊,如像素大小、每像素位元數、色域、PDF頁面上的圖片位置、PDF頁面上的圖片大小、圖片的水平和垂直解析度

低層級 COS API

  • 添加、編輯和刪除 COS 對象
  • 支持的 COS 對象:字符串、數字、名稱、布林值、空值、數組、字典和流

PDF 渲染 (僅檢視版)

  • 將 PDF 頁面渲染為圖像:RAW、BMP、GIF、JPG、PNG 和 TIFF 的 ARGB、RGBA、BGRA、RGB、BGR 和灰度字節佈局的 RAW 圖像
  • PDF 轉換為多頁 TIFF (顏色/灰度/黑白CCITT G4)

IronPDF的主要功能

IronPDF .NET PDF庫是開發人員,尤其是C#程序員的夢想成真。使用這個了不起的工具,您可以輕鬆構建.NET核心PDF庫。

IronPDF使用.NET Chromium引擎將HTML頁面轉換為PDF文件。無需使用複雜的API將HTML轉換為PDF來設置或設計PDF。IronPDF 支持標準的在線文檔,包括HTML、ASPX、JS、CSS和圖片。

您還可以使用HTML5、CSS、JavaScript和圖片來開發.NET PDF庫。一個PDF可以輕鬆編輯、加蓋印章並添加頁眉和頁腳。它還能讓閱讀PDF文本和提取圖形變得輕而易舉。

下載 IronPDF 免費且立即在您的 .NET 專案中開始使用。

IronPDF C# 庫的突出功能

以下是一些主要功能:

生成PDF文件 (HTML轉PDF)

  • HTML4/5、CSS 和 JavaScript 都可以用來建立 PDF 文件。
  • 使用自訂的網路登入憑證、用戶代理、代理伺服器、cookie、HTTP 標頭和表單變數載入 URL,以啟用在 HTML 登入表單後的登入功能。

您可以在不使用 Adobe Acrobat 的情況下編輯現有的 PDF 文件

  • 表單欄位中的數據應該被讀取和填寫。
  • 從 PDF 中提取圖形和文本。
  • 可以使用新的 HTML 內容更新當前的任何 PDF 頁面。
  • 頁眉和頁腳應該是邏輯的或 HTML。

現有的 PDF 文件可以進行操作

  • 可以加載和解析現有的 PDF 文件。
  • 可以合併和分離 PDF 文件中的內容。
  • 添加頁眉、頁腳、註釋、書籤、水印、文本和圖像資產,以及文本和圖像資產。

從各種檔案格式轉換

  • ASPX WebForms ——只用三行程式碼將 ASP.NET WebForms 轉換為可在瀏覽器中查看的可打印 PDF。
  • 將 HTML 轉換為文件中的 PDF。
  • 自定義「基礎 URL」允許從互聯網上的任何地方訪問資產檔案。
  • 虛擬視口允許響應式設計 (寬度和高度).
  • 接受以任何主要文件格式編碼的 HTML 文件 (預設為 UTF-8).

列印和保存

  • 檔案、二進制數據和MemoryStreams都可以保存和加載。
  • 用於列印的電視或計算機螢幕CSS媒體類型。
  • 通過將PDF檔案轉換為PrintDocument物件來列印PDF檔案,而無需Adobe Acrobat (使用最少的代碼).
  • 官方日誌文件包含有關 API 成功和源代碼中調試錯誤的信息,可以導出。

IronPDF 支援幾乎所有的操作系統和與 C# 相容的框架,包括以下:

  • .NET Core 2.1, 3.0, 3.1, .NET 6 & 5
  • .NET Standard 2.0 通用相容性
  • Azure
  • AWS
  • Docker
  • Linux
  • Windows

IronPDF C# 庫安裝

有四種下載和安裝 IronPDF 庫的方法。具體如下:

  1. 使用 Visual Studio
  2. 使用開發者命令提示符
  3. 直接下載 NuGet 包
  4. 下載 IronPDF .DLL 庫

使用 Visual Studio

Visual Studio 提供 NuGet 套件管理器來安裝專案中的 NuGet 套件。您可以透過專案選單存取它,或者在方案總管中右鍵點擊您的專案。這兩個選項如下圖(圖 1 和圖 2)所示。

在 Visual Studio 中使用專案選單訪問 NuGet 套件管理器

圖 1. 使用 Visual Studio 中的專案選單訪問 NuGet 套件管理器

在 Visual Studio 中使用上下文選單存取 NuGet 套件管理器

圖2. 使用 Visual Studio 右鍵選單進入 NuGet 套件管理員

選定後,瀏覽 IronPDF 套件並安裝,如下圖所示。

在 Visual Studio 中使用 NuGET 套件管理器安裝 IronPDF 程式庫

圖3使用 Visual Studio 中的 NuGET 套件管理器安裝 IronPDF 庫

使用開發人員命令提示字元

另一種下載和安裝IronPDF C# 程式庫的方法是使用以下步驟通過開發人員命令提示字元安裝IronPDF NuGet封裝

  • 打開開發人員命令提示字元 — 通常位於Visual Studio文件夾下
  • 輸入以下命令:
    :ProductInstall
  • 按 Enter
  • 這將下載並安裝套件
  • 重新載入你的 Visual Studio 專案並開始使用

直接下載 NuGet 套件

下載並安裝 IronPDF 的第三種方式是按照以下步驟進行。可以直接訪問 NuGet 網站並下載該套件。步驟如下:

通过下载库安装 IronPDF

您可以直接從以下位置下載 IronPDF .DLL 文件 網站.

從 IronPDF 網站下載 IronPDF 庫 DLL

圖4. 從IronPDF網站下載IronPDF庫DLL

在您的專案中通過以下步驟引用該庫:

  • 在解決方案資源管理器中右鍵點擊解決方案
  • 選擇引用
  • 瀏覽 IronPDF.dll 庫
  • 點擊確認

全部完成! IronPDF 已下載、安裝並可以使用。但是,在此之前,我們應該安裝 XFINIUM.PDF API。

XFINIUM.PDF 安裝

在 .NET Core 中,我們可以將 Xfinium PDF 安裝為 Cake 附加工具或 Cake 工具。

// Install Xfinium.Pdf.NetCore as a Cake Addin

#addin nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
// Install Xfinium.Pdf.NetCore as a Cake Tool

#tool nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0

接下來,我們深入比較一下IronPDF和XXFINIUM.PDF。

在 .NET Core 中創建簡單的 PDF 文檔

在當今的世界中,軟體開發人員必須知道如何使用 C# 代碼動態創建 PDF 文件,因為這在幾乎所有項目中都需要。您可能需要出於各種原因創建 PDF 文件,例如從用戶輸入生成報告、將用戶文本保存為 PDF、提取 HTML 信息並將其轉換為 PDF 等等。

這兩個庫都包含將 HTML 網頁轉換為 PDF 的功能。讓我們逐一查看每個庫的代碼。

使用 IronPDF

IronPDF 擁有多種創建 PDF 文件的方法。

將現有的 URL 轉換成 PDF

IronPDF 使從現有的 URL 將 HTML 轉換成 PDF 文件變得簡單。JavaScript、圖片、表單和 CSS 都有很高的支持。

使用以下代碼中的 IronPDF 直接從網站地址生成 PDF 文件。

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
VB   C#

HTML Input String to PDF

以下代碼演示了如何使用 HTML 輸入字符串來渲染 PDF 頁面。您可以僅使用 HTML,也可以將其與 CSS、圖片和 JavaScript 結合使用。

var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
PDF.SaveAs("pixel-perfect.pdf")
' Load external html assets: images, css and javascript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
Dim AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
AdvancedPDF.SaveAs("html-with-assets.pdf")
VB   C#

使用 XFINIUM.PDF

使用 XFINIUM.PDF 創建一個空白的 PDF 文件只需要三行代碼:一行創建文檔,一行創建一頁,另一行保存文檔。

PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
document.Save("empty.pdf");
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
document.Save("empty.pdf");
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
document.Save("empty.pdf")
VB   C#

在上述文件中添加文字內容需要三行額外的代碼:一行用於創建用於繪製文字的字體,一行用於創建畫筆並設置文字顏色,還有一行用於實際在頁面上繪製文字和圖形。

PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);
document.Save("helloworld.pdf");
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);
document.Save("helloworld.pdf");
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
' Create a standard font with Helvetica face and 24 point size
Dim helvetica As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
' Create a solid RGB red brush.
Dim brush As New PdfBrush(PdfRgbColor.Red)
' Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100)
document.Save("helloworld.pdf")
VB   C#

我們的物件模型與 PDF 標準非常相似。這使您能輕鬆地在其基礎上構建複雜的抽象,例如流文件。

製作可填寫的生成 PDF 文件

使用 XFINIUM.PDF

XFINIUM.PDF 庫可以創建新的 PDF 表單,也可以填寫現有的 PDF 表單。

在 PDF 規範中支持的每種類型的表單欄位都由相應的類表示:

  • PdfTextBoxField – 文本框欄位
  • PdfCheckBoxField – 複選框
  • PdfRadioButtonField – 單選按鈕組
  • PdfComboboxField – 組合框
  • PdfListboxField – 列表框
  • PdfPushbuttonField – 按鈕
  • PdfSignatureField – 簽名欄位

構建表單欄位所需的信息只有欄位名稱及其在頁面上的位置。創建欄位對象後,必須先將它添加到頁面上,然後才能指定任何其他屬性。

PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");
pdfpage.Fields.Add(firstNameTextBox);
firstNameTextBox.Widgets [0].VisualRectangle = 
    new PdfVisualRectangle(150, 45, 200, 20);
PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");
pdfpage.Fields.Add(firstNameTextBox);
firstNameTextBox.Widgets [0].VisualRectangle = 
    new PdfVisualRectangle(150, 45, 200, 20);
Dim firstNameTextBox As New PdfTextBoxField("firstname")
pdfpage.Fields.Add(firstNameTextBox)
firstNameTextBox.Widgets (0).VisualRectangle = New PdfVisualRectangle(150, 45, 200, 20)
VB   C#

如果 PDF 表單已經載入到 PdfFixedDocument 物件中,則可以填寫現有的 PDF 表單。表單載入後,文檔的欄位集合會自動填充表單中定義的欄位。欄位可以通過索引或其名稱在集合中定位,並且可以通過設置 PdfField 基類中定義的通用值屬性或在每個欄位類型上定義的特定值屬性來填寫。

PdfFixedDocument document = new PdfFixedDocument("form.pdf");
(document.Form.Fields ["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields ["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields ["sex"].Widgets [0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields ["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields ["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields ["agree"] as PdfCheckBoxField).Checked = true;
document.Save("form_filled.pdf");
PdfFixedDocument document = new PdfFixedDocument("form.pdf");
(document.Form.Fields ["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields ["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields ["sex"].Widgets [0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields ["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields ["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields ["agree"] as PdfCheckBoxField).Checked = true;
document.Save("form_filled.pdf");
Dim document As New PdfFixedDocument("form.pdf")
TryCast(document.Form.Fields ("firstname"), PdfTextBoxField).Text = "John"
TryCast(document.Form.Fields ("lastname"), PdfTextBoxField).Value = "Doe"
TryCast(document.Form.Fields ("sex").Widgets (0), PdfRadioButtonWidget).Checked = True
TryCast(document.Form.Fields ("firstcar"), PdfComboBoxField).SelectedIndex = 0
TryCast(document.Form.Fields ("secondcar"), PdfListBoxField).SelectedIndex = 1
TryCast(document.Form.Fields ("agree"), PdfCheckBoxField).Checked = True
document.Save("form_filled.pdf")
VB   C#

使用IronPDF

讓我們看看如何使用IronPDF C#庫來創建可填寫的PDF。

// PM> Install-Package IronPdf
using IronPdf;

// Step 1.  Creating a PDF with editable forms from HTML using form and input tags

var FormHtml = @"
<html>
    <body>
        <h2>Editable PDF  Form</h2>
        <form>
          First name:<br> <input type='text' name='firstname' value=''   > <br>
          Last name:<br> <input type='text' name='lastname'  value='' >
        </form>
    </body>
</html>";

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("BasicForm.pdf");

// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");

//Set and Read the value of the "firstname" field
var FirstNameField =  FormDocument.Form.GetFieldByName("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);

//Set and Read the value of the "lastname" field
IronPdf.Forms.FormField LastNameField = FormDocument.Form.GetFieldByName("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);

FormDocument.SaveAs("FilledForm.pdf");
// PM> Install-Package IronPdf
using IronPdf;

// Step 1.  Creating a PDF with editable forms from HTML using form and input tags

var FormHtml = @"
<html>
    <body>
        <h2>Editable PDF  Form</h2>
        <form>
          First name:<br> <input type='text' name='firstname' value=''   > <br>
          Last name:<br> <input type='text' name='lastname'  value='' >
        </form>
    </body>
</html>";

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("BasicForm.pdf");

// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");

//Set and Read the value of the "firstname" field
var FirstNameField =  FormDocument.Form.GetFieldByName("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);

//Set and Read the value of the "lastname" field
IronPdf.Forms.FormField LastNameField = FormDocument.Form.GetFieldByName("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);

FormDocument.SaveAs("FilledForm.pdf");
' PM> Install-Package IronPdf
Imports IronPdf

' Step 1.  Creating a PDF with editable forms from HTML using form and input tags

Private FormHtml = "
<html>
    <body>
        <h2>Editable PDF  Form</h2>
        <form>
          First name:<br> <input type='text' name='firstname' value=''   > <br>
          Last name:<br> <input type='text' name='lastname'  value='' >
        </form>
    </body>
</html>"

Private Renderer As New IronPdf.ChromePdfRenderer()
Renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("BasicForm.pdf")

' Step 2. Reading and Writing PDF form values.
Dim FormDocument = PdfDocument.FromFile("BasicForm.pdf")

'Set and Read the value of the "firstname" field
Dim FirstNameField = FormDocument.Form.GetFieldByName("firstname")
FirstNameField.Value = "Minnie"
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value)

'Set and Read the value of the "lastname" field
Dim LastNameField As IronPdf.Forms.FormField = FormDocument.Form.GetFieldByName("lastname")
LastNameField.Value = "Mouse"
Console.WriteLine("LastNameField value: {0}", LastNameField.Value)

FormDocument.SaveAs("FilledForm.pdf")
VB   C#

我們首先在以下程式碼中使用 HTML 格式標籤創建一個表單。之後,我們將其另存為 PDF 文檔。我們在第2步開始讀取和寫入 PDF 表單值。通過字段名稱,您可以訪問表單字段。在 IronPDF 中提供了 GetFieldByName 函數。然後設置選定字段的值,並保存新填寫的表單。

PDF 文件的數位簽名

在現代,許多人正在遠端工作。填寫和簽署表格、傳送文件以及處理檔案是企業每天需要完成的主要活動之一。其中一個主要活動是簽署 PDF 文件、PDF 資料夾和 PDF 表格,以代替紙本文件。隨著企業尋找簽署協議和合約以及在線分享 PDF 表格的方法,數位簽名已變得至關重要。

使用 XFINIUM.PDF

PDF 文件中的簽名欄位用於應用數位簽名 (PdfSignatureField類別)雖然簽名欄位是出現在文件某一頁上的表單欄位,但數位簽名用來簽署整個文件,而不僅僅是那一頁。

簽署過程始於使用PdfDigitalSignature物件來設置簽名欄位的簽名屬性。由於簽名是基於PDF文件的實際二進位佈局因此當文件被保存時才會形成簽名。

PdfDigitalSignature類是所有XFINIUM數位簽名的基礎。

有幾種簽名類別可以選擇:

  • PdfCmsDigitalSignature – 基於CMS標準的數位簽名 (繼承自 PdfDigitalSignature)
  • PdfPadesDigitalSignature – 實現PADES標準的數位簽名 (繼承自 PdfCmsDigitalSignature)
  • PdfInteractiveCmsDigitalSignature – 基於CMS標準的數位簽章,可以使用硬體簽章智慧卡來建立數位簽章 (繼承自 PdfDigitalSignature)
  • PdfInteractivePadesDigitalSignature – 一種實現PADES標準的數位簽章,可使用硬體簽章智慧卡來創建數位簽章 (繼承自 PdfInteractiveCmsDigitalSignature)
  • PdfDocumentTimeStamp – 文件級時間戳 (繼承自 PdfDigitalSignature)

使用 IronPDF

開發者經常詢問如何利用 IronPDF 和 C# 來程式化地向 PDF 添加簽名。這對開發者來說可能有多種意義:

  • 從圖像文件中,將數字簽名圖像添加到現有的 PDF 文件中。
  • 透過加密簽名來確認 PDF 沒有被篡改。
  • 向已經加密簽名的 PDF 添加手寫簽名圖標。

第一種方法是將簽名 PNG 蓋章到已存在的 PDF 頁面上。它可以用作簽名或公司印章。建議使用不透明度。完成這個過程只需要幾行代碼。

// open an existing PDF document or create a new one
PdfDocument Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");
var SignatureStamp = new HtmlStamp() { Html = "<img src='signature.png' />", Width = 150, Height = 50, Bottom = 300, Left=85, ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent };
Pdf.StampHTML(SignatureStamp,1);
Pdf.SaveAs(@"C:\Path\To\ASPX to PDF.pdf");
// open an existing PDF document or create a new one
PdfDocument Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");
var SignatureStamp = new HtmlStamp() { Html = "<img src='signature.png' />", Width = 150, Height = 50, Bottom = 300, Left=85, ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent };
Pdf.StampHTML(SignatureStamp,1);
Pdf.SaveAs(@"C:\Path\To\ASPX to PDF.pdf");
' open an existing PDF document or create a new one
Dim Pdf As PdfDocument = PdfDocument.FromFile("C:\Path\To\ASPX to PDF.pdf")
Dim SignatureStamp = New HtmlStamp() With {
	.Html = "<img src='signature.png' />",
	.Width = 150,
	.Height = 50,
	.Bottom = 300,
	.Left=85,
	.ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
}
Pdf.StampHTML(SignatureStamp,1)
Pdf.SaveAs("C:\Path\To\ASPX to PDF.pdf")
VB   C#

以下程式碼使用 .pfx 和 .p12 X509Certificate2 數位憑證進行加密簽署 PDF,該憑證可以僅需一行程式碼輕鬆創建。

// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");
// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");
' 123456 below represents the signature password
Call (New IronPdf.PdfSignature("CertificateFile.p12", "123456")).SignPdfFile("ASPX to PDF.pdf")
VB   C#

這個更高級的範例允許 .pfx / .p12 X509Certificate2 數位簽名方法與手寫簽名掃描相結合。

var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");
PdfDocument doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
// Step 3. Optional signing options and a handwritten Signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";
Signature.LoadSignatureImageFromFile("handwriting.png");
doc.SignPdfWithDigitalSignature(Signature);
doc.SaveAs("ASPX to PDF.pdf");
var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");
PdfDocument doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
// Step 3. Optional signing options and a handwritten Signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";
Signature.LoadSignatureImageFromFile("handwriting.png");
doc.SignPdfWithDigitalSignature(Signature);
doc.SaveAs("ASPX to PDF.pdf");
Dim Signature = New IronPdf.PdfSignature("Iron.pfx", "123456")
Dim doc As PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")
' Step 3. Optional signing options and a handwritten Signature graphic
Signature.SigningContact = "support@ironsoftware.com"
Signature.SigningLocation = "Chicago, USA"
Signature.SigningReason = "To show how to sign a PDF"
Signature.LoadSignatureImageFromFile("handwriting.png")
doc.SignPdfWithDigitalSignature(Signature)
doc.SaveAs("ASPX to PDF.pdf")
VB   C#

定價和授權

XFINIUM.PDF 定價與授權

每個套件有兩個版本:生成版,提供PDF生成和編輯功能;以及查看器版,包含生成版的所有功能,加上PDF渲染和PDF查看功能。

  • 每個開發者擁有Xfinium PDF庫的自己的授權。每個為XFINIUM產生代碼的開發者都需要這個PDF文件庫的授權。
  • 依據您的授權,XFINIUM.PDF可以免版稅地發送到無限數量的桌面電腦和伺服器。
  • 一年的“協助訂閱”提供一年內的免費升級及技術支援。

視相關套件而定,價格範圍在每年$290.00到$872.00之間。

IronPDF 價格和授權

IronPDF 是一個 C# PDF 庫。它在開發過程中是免費使用的,並且可以隨時取得商業使用的授權。單一專案授權、單一開發者、代理、跨國組織,以及 SaaS 和 OEM 重新分配等都可選擇。所有授權都附有 30 天退款保證、一年的軟體支持和升級、開發/測試/生產有效性,以及永久授權。 (一次性購買). Lite 套餐的價格為 $749。IronPDF 產品沒有任何經常性費用。

結論

Iron PDF 文庫使 PDF 文件創建變得更容易,因為它不依賴於專有 API。 "HTML-To-PDF" 會將開放標準的文件類型,如 HTML、JS、CSS、JPG、PNG、GIF 和 SVG 轉換成精準的 PDF。換句話說,它建立在開發人員目前擁有的技能基礎上。它允許用戶下載文件、發送電子郵件或保存到雲端,還可以製作賬單、報價單、報告、合同和其他文件。它適用於 ASP.NET、ASP.NET Core、Web 表單、MVC、.NET Framework 和 .NET Core Web API。

XFINIUM.PDF 文庫為初學者和高級 PDF 開發人員提供了廣泛的功能。無論您需要製作簡單的報告、填寫 PDF 表單、構建 PDF 組合、從 PDF 文件中刪除敏感信息,還是將 PDF 文件轉換為多頁 TIFF 圖像,它都有您所需的工具。由於基本對象模型遵循 PDF 規範,您對生成的 PDF 文件具有完全的控制權。XFINIUM.PDF 代碼可以在所有支持的平台上編譯,無需修改。XFINIUM.PDF 集合隨時為您提供幫助。

XFINIUM.PDF 授權分為生成器和查看器兩個版本,起價分別為 $290 和 $387。這略便宜於 IronPDF,其輕量版起價為 $749。IronPDF 值得選擇,因為它提供了單用戶和多用戶授權,而 XFINIUM.PDF 只提供單用戶授權——這意味著每個開發人員都需要一個授權。另一方面,IronPDF 的專業版授權起價為 $799,可供無限人數使用。

使用 IronPDF 操作 PDF 文件比使用 XFINIUM.PDF 更容易。IronPDF 使用更少的代碼行進行複雜操作,這有助於減輕程序員的工作量。

Iron Software 公司還為所有客戶提供了僅需兩次點擊即可獲取完整套件的選項。這意味著只需購買兩個 Iron Software 套件中的圖書館的價格,您目前可以獲得所有五個圖書館,並且所有這些都享有不間斷的支持。

< 上一頁
IronPDF與SautinSoft PDF Focus的比較
下一個 >
IronPDF 和 GrapeCity PDF Viewer 之間的比較

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >