在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
不斷進步的技術意味著為所有人,尤其是開發人員,提供更智能的解決方案。 自動化現在是軟體開發流程的關鍵。 多年来,使用 C# 處理 PDF 檔案對開發者來說一直是個問題。 創建PDF文件的內容時需要考慮許多因素,而當從不同格式轉換內容為PDF時則需考慮更多因素。 這些問題現在已經通過構建多個庫得以解決,這些庫旨在幫助從不同格式中讀取、寫入、創建和轉換為PDF。
本文將比較兩個最受.NET和.NET Core開發者歡迎的PDF庫。 這兩個庫是:
XFININIUM.PDF 庫
IronPDF 和 XFININUM.PDF 是兩個庫,它們提供在 .NET 和 .NET Core 中創建、操作和列印 PDF 的方法。 接下來的問題是決定哪個 C# PDF 函式庫最適合您的 .NET 專案。 您可以透過閱讀以下兩個庫的比較及其在 PDF 轉換和操作方面的傑出功能來權衡您的決定。
首先,讓我們來看看這兩個庫所提供的功能,然後再進行比較。
XFINIUM.PDF 庫是一個用於 PDF 開發的跨平台庫。 它為業餘和高級 PDF 開發者提供了多種功能。 無論您是要創建報告、填寫 PDF 表單、構建 PDF 投資組合、從 PDF 報告中編輯敏感數據,還是將 PDF 報告轉換為多頁 TIFF 圖像。
XFINIUM.PDF 提供兩個版本:生成器版和查看器版。生成器版包含 PDF 生成和編輯功能,而查看器版則包含生成器版的所有功能,加上 PDF 渲染和 PDF 查看功能。 特色部分說明了兩個版本中都包含哪些功能,以及哪些功能僅在查看器版本中可用。
XFINIUM.PDF 完全用 C# 编写,并且是完全托管的代码。 它是按開發者授權,且免版稅分發,允許您自由分發您的程式而不會產生任何進一步的費用。
生成器版本是檢視器版本的一個子集。 Generator Edition 提供創建和編輯 PDF 的功能,而 Viewer Edition 在 Generator Edition 的基礎上增加了 PDF 渲染能力。 查看器版本可以將 PDF 頁面轉換為 RAW、BMP、GIF、JPG、PNG 和 TIFF 圖像。
一些重要功能包括:
一維條碼:
IronPDF .NET PDF 預覽庫是開發人員的夢想成真,特別是 C# 程式設計師。 使用這個令人驚嘆的工具,您可以輕鬆地為 .NET 構建一個核心 PDF 庫。
IronPDF 使用 .NET Chromium 引擎將 HTML 頁面轉換為 PDF 文件。無需使用複雜的 API 聯定位或設計 HTML 至 PDF。 IronPDF 支援標準線上文件,包括 HTML、ASPX、JS、CSS 和圖片。
您還可以使用 HTML5、CSS、JavaScript 和圖片來開發 .NET PDF 庫。 PDF 可以輕鬆編輯、加蓋戳記,並添加頁眉和頁腳。 這也讓讀取 PDF 文字和提取圖形變得輕而易舉。
下載 IronPDF免費且立即在您的 .NET 專案中開始使用。
以下是一些主要特點:
官方日志文件包含有关 API 成功和源代码调试故障的信息,可以导出。
IronPDF 可用于几乎所有与 C# 兼容的操作系统和框架,包括以下内容:
有四種方式可以下載並安裝 IronPDF 程式庫。 如下:
使用 Visual Studio
開發者命令提示字元
直接下載 NuGet 套件
Visual Studio 提供 NuGet 套件管理器以在您的專案中安裝 NuGet 套件。 您可以通過專案選單存取它,或在方案總管中右鍵點擊您的專案。 這兩個選項在下方的截圖圖1和圖2中顯示。
圖 1. 使用 Visual Studio 中的專案選單訪問 NuGet 套件管理器
圖2. 使用 Visual Studio 右鍵選單進入 NuGet 套件管理員
選定後,瀏覽 IronPDF 套件並安裝,如下圖所示。
圖3使用 Visual Studio 中的 NuGET 套件管理器安裝 IronPDF 庫
另一種下載和安裝 IronPDF C# 庫的方法是使用以下步驟通過開發者命令提示字元安裝 IronPDF NuGet package。
:ProductInstall
下載和安裝 IronPDF 的第三種方法是遵循以下步驟。 這可以透過直接訪問 NuGet 網站並下載套件來完成。 步驟如下:
您可以直接從網站下載 IronPDF .DLL 文件IronPDF 下載.
圖4. 從IronPDF網站下載IronPDF庫DLL
使用以下步驟在您的專案中引用該庫:
點擊確定
全部完成! IronPDF 已下載、安裝並準備使用。 不過,在此之前,我們應該安裝 XFINIUM.PDF API。
在 .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 和 XFINIUM.PDF。
在當今世界,軟體開發人員必須了解如何使用 C# 代碼動態創建 PDF 文件,因為這在幾乎所有項目中都是必需的。 您可能需要出於各種原因創建 PDF 文件,例如從用戶輸入生成報告、將用戶文本保存為 PDF、提取 HTML 信息並將其轉換為 PDF 等。
將HTML網頁轉換為PDF的功能包含在這兩個庫中。 讓我們逐一查看每個庫的代碼。
IronPDF 有多種方法來創建 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");
以下程式碼演示了如何使用 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");
使用 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");
在上述文件中添加文字內容需要三行額外的代碼:一行用於創建用於繪製文字的字體,一行用於創建畫筆並設置文字顏色,還有一行用於實際在頁面上繪製文字和圖形。
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");
我們的物件模型與 PDF 標準非常相似。 這使您可以輕鬆地在其基礎上構建複雜的抽象,例如流程文件。
XFINIUM.PDF 程式庫既可以建立新的 PDF 表單,也可以填寫現有的 PDF 表單。
在 PDF 規範中支持的每種類型的表單欄位皆由相應的類別表示:
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);
如果將現有的 PDF 表單載入 PdfFixedDocument 物件中,則可以填寫。 在表單載入後,文件的欄位集合會自動填入表單中定義的欄位。 可以透過索引或名稱在集合中定位欄位,並透過設置 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");
讓我們看看如何使用 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.FindFormField("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.FindFormField("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.FindFormField("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.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);
FormDocument.SaveAs("FilledForm.pdf");
我們從在以下程式碼中使用 HTML 格式標籤建立表單開始。 之後,我們將其儲存為 PDF 文件。 我們從第 2 步開始讀取和寫入 PDF 表單值。使用欄位名稱,您可以訪問表單欄位。 FindFormField 函數在 IronPDF 中可用。 然後設定選定欄位的值,並保存新填寫的表單。
在現代,許多人在遠端工作。 填寫和簽署表單、傳送檔案以及處理文件只是企業每天需要完成的一些主要活動。 其中一項主要活動是簽署 PDF 文件、PDF 作品集和 PDF 表單,以作為紙質文件的替代方案。 隨著公司尋求簽訂協議和合同以及在線共享 PDF 表單的方法,數位簽章已變得不可或缺。
PDF 文件中的簽名欄位用於應用數位簽名(PdfSignatureField類別). 雖然簽名欄位是出現在文件頁面上的表單欄位,但數位簽名是用來簽署整個文件,而不僅僅是該頁面。
簽署過程始於使用 PdfDigitalSignature 物件來設定簽署欄位的簽名屬性。 由於簽名是基於 PDF 文件的實際二進位佈局,因此在保存文件時形成。
PdfDigitalSignature 類別是所有 XFINIUM 數位簽章的基礎。
有多個簽名類別可供選擇:
開發人員經常詢問如何使用 IronPDF 和 C# 以程式化方式將簽名新增至 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");
以下程式碼使用 .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");
這個更高級的範例允許 .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");
每個軟體包提供兩個版本:Generator Edition 提供 PDF 生成和編輯功能,Viewer Edition 包含了 Generator Edition 的所有功能,並額外提供 PDF 渲染和 PDF 查看功能。
「協助訂閱」一年提供一年的免費升級以及技術支持。
價格範圍從每年 $290.00 到 $872.00 不等,具體取決於相應的套餐。
另一方面,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稍微便宜一些,IronPDF的輕量版起價為$749。 選擇IronPDF值得考慮,因為它提供單一和多用戶許可證,而XFINIUM.PDF僅提供單一用戶許可證——這意味著每位開發人員都需要一個許可證。 另一方面,IronPDF 提供專業授權,起價為 $799,可供無限人數使用。
使用IronPDF,您可以比使用XFINIUM.PDF更輕鬆地處理PDF文件。 IronPDF 使用較少的代碼行來進行複雜的操作,這有助於減輕程式設計師的工作負擔。
Iron Software公司還為所有客戶提供只需兩次點擊即可獲得整套軟體包的選項。 這意味著,以購買 Iron Software 套件中兩個庫的價格,您目前可以獲得全部五個庫,以及對它們的不中斷支持。