產品比較

從 Byte Array 使用 C# iTextSharp 創建 PDF (對比 IronPDF)

發佈 2023年5月30日
分享:

1.0 簡介

為了便於分享基於文字和圖像的文件,Adobe 開發了便攜式文檔格式 (PDF) (PDF)要查看PDF圖像文件,您必須使用不同的應用程序。許多企業在當今文化中使用PDF文檔來執行各種任務,包括準備發票和其他文件。

開發人員還使用現有的PDF文件格式來生成符合客戶規格的文檔或圖像文件。幸運的是,簡化過程的庫使得生成PDF變得比以往更簡單。在為項目選擇庫時,應考慮生成、閱讀和轉換功能,以選擇最好的可用庫。

在本文中,將比較兩個最廣泛使用的Dot NET PDF庫。它們是:

在您的 Microsoft.NET 應用程序或項目中,您可以使用 IronPDF 或 iText PDF 庫來創建、閱讀和修改 PDF。我們將首先查看這兩個庫的功能,而不是直接轉向整體性能,費用以轉換和處理 PDF,以確定哪個庫更適合您的應用程序。Microsoft.NET 框架支持這兩個庫。此外,每個庫的執行時間將被記錄下來以便參考和後續研究。要了解比較情況,點擊 這裡.

2. 庫功能

2.1 iText PDF 功能

一個可以將文字轉換成 PDF 文件的 Java 庫和系統,稱為 iText PDF。文字遵循 AGPL 軟體授權模式。AGPL 軟體授權是免費且開源的。

  • iText 庫提供了一個用於生成 PDF 文件的 API。
  • 使用 iText 程式的 var reader,可以將 HTML 和 XML 字串解析成 PDF。
  • 使用 iText 庫,我們可以為 PDF 文件添加書籤、頁碼和標記。
  • 我們可以使用 iText 庫將一個 PDF 文件分割成多個 PDF,或將多個 PDF 文件合併為一個單一的 PDF。
  • 我們可以使用 iText 編輯 PDF 中的表單。
  • 使用來自 PNG、JPEG 和其他圖片格式的圖片,iText 也可以製作 PDF。
  • iText 庫提供了一個 Canvas 類,可以用來在已有的文本上繪製不同的幾何形狀。
  • 在 PDF 文件中,iText 提供了一個工具,可以讓您添加和編輯字體和圖片。

2.2 IronPDF 功能

開發人員可以藉助強大的 IronPDF(PDF .NET庫)快速生成、讀取和更改 PDF 文件。IronPDF 以 Chrome 引擎為核心,提供大量實用且強大的功能,包括將 HTML5、JavaScript、CSS 和圖片文件轉換為 PDF、添加檔頭和檔尾,並精確生成與網頁瀏覽器顯示相同的 PDF。IronPDF 支援各種 Web 和 .NET 格式,包括 HTML、ASPX、Razor View 和 MVC。IronPDF 的主要特性如下:

  • 在 .NET C# 程式中輕鬆創建、讀取和編輯 PDF 文件。
  • 從具有用戶代理、代理、Cookies、HTTP Headers 和表單變數設置的網站 URL 連結創建 PDF,以支援使用 HTML 登錄表單進行登錄。
  • 從現有的 PDF 出版物中刪除圖片。
  • 向 PDF 文件中添加文本、圖片、書籤、水印和其他元素。
  • 使合併和分割多個 PDF 文檔頁面變得簡單的功能。
  • 將媒體類型資產(包括 CSS 文件)轉換為文件的功能。

3.0 安裝程式庫

3.1 安裝 iText7

首先使用 NuGet 套件管理器尋找 iText。必須同時安裝 iText7 和 iText.pdfhtml,因為這些套件的功能分散在多個套件中。

從位元組陣列創建 PDF C# iTextSharp(對比 IronPDF)圖 1 - iText7

如果您更喜歡使用 Visual Studio 命令行,請按如下所示安裝以下軟件包:

Install-Package itext7 && Install-Package itext7.pdfhtml

由於 iText7 是最新版本,我們在解決方案中使用它。

3.2 安裝 IronPDF Library

正如下面的截圖所示,我們可以輕鬆地在套件管理器中搜尋「IronPDF」:

從字節數組用C# iTextSharp創建PDF(對比IronPDF)圖2 - IronPDF

相關搜索結果列表顯示在上圖中。如需在您的機器上安裝此套件,請勾選必要的選項框。

如果您想使用命令行安裝套件,請在套件管理器的終端選項卡中添加以下行:

:PackageInstall

此套件現已準備好使用,並將在當前項目中下載並安裝。

4.0 PDF 建立

4.1 使用 iTextSharp

我們可以使用 iText 文檔 doc 生成的公有靜態位元組陣列來創建 PDF 文件。以下是使用 iText PDF 庫幫助我們創建新文檔的範例。

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using System.IO;
using iText.Kernel.Geom;
using iText.Html2pdf;

var html = "<h1>Hello world</h1>";
//byte array
byte [] result;
//create new MemoryStream using var ms
using (var ms = new MemoryStream())
{
    //new document
    var doc = new PdfDocument(new PdfWriter(ms));
    doc.SetDefaultPageSize(PageSize.A4);
    doc.SetTagged();
    HtmlConverter.ConvertToPdf(html, doc, new ConverterProperties());
    result = ms.ToArray();
}
File.WriteAllBytes(@"test.pdf", result);
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using System.IO;
using iText.Kernel.Geom;
using iText.Html2pdf;

var html = "<h1>Hello world</h1>";
//byte array
byte [] result;
//create new MemoryStream using var ms
using (var ms = new MemoryStream())
{
    //new document
    var doc = new PdfDocument(new PdfWriter(ms));
    doc.SetDefaultPageSize(PageSize.A4);
    doc.SetTagged();
    HtmlConverter.ConvertToPdf(html, doc, new ConverterProperties());
    result = ms.ToArray();
}
File.WriteAllBytes(@"test.pdf", result);
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports System.IO
Imports iText.Kernel.Geom
Imports iText.Html2pdf

Private html = "<h1>Hello world</h1>"
'byte array
Private result() As Byte
'create new MemoryStream var ms
Using ms = New MemoryStream()
	'new document
	Dim doc = New PdfDocument(New PdfWriter(ms))
	doc.SetDefaultPageSize(PageSize.A4)
	doc.SetTagged()
	HtmlConverter.ConvertToPdf(html, doc, New ConverterProperties())
	result = ms.ToArray()
End Using
File.WriteAllBytes("test.pdf", result)
VB   C#

上面的例子顯示了我們如何從給定的HTML字符串創建一個PDF文檔。首先,我們創建一個MemoryStream來保存數據。然後我們創建一個PdfWriter並將MemoryStream作為參數來保存數據。接著我們借助於HtmlConverter來創建PDF文件。之後,所有輸出都已保存到MemoryStream中。然後我們將數據轉換為字節,使用File類將MemoryStream ms保存到一個新文件中,如下所示。

從位元組陣列建立 PDF C# iTextSharp(與 IronPDF 相比)圖 3 - 輸出

4.2 使用 IronPDF

IronPDF 使得 PDF 文件的創建非常簡單,只需幾行代碼。以下是使用 IronPDF 創建 PDF 文件的示例代碼。

var html = "<h1>Hello world</h1>";
var pdf = new IronPdf.ChromePdfRenderer();
var bytedata=pdf.RenderHtmlAsPdf(html).BinaryData;
File.WriteAllBytes(@"test.pdf", bytedata);
var html = "<h1>Hello world</h1>";
var pdf = new IronPdf.ChromePdfRenderer();
var bytedata=pdf.RenderHtmlAsPdf(html).BinaryData;
File.WriteAllBytes(@"test.pdf", bytedata);
Dim html = "<h1>Hello world</h1>"
Dim pdf = New IronPdf.ChromePdfRenderer()
Dim bytedata=pdf.RenderHtmlAsPdf(html).BinaryData
File.WriteAllBytes("test.pdf", bytedata)
VB   C#

在第一步中,我們創建了一個 ChromePdfRenderer 對象,這有助於創建 PDF 文件。然後,我們使用 RenderHtmlAsPdf 方法將 HTML 數據添加到 PDF 文檔中。接著,我們將數據轉換為字節數組。最後一步是使用 File 將字節數組轉換為 PDF 文件。輸出將如下所示。

從位元組陣列建立 PDF C# iTextSharp(與 IronPDF 的比較) 圖 4 - IronPDF 的輸出

欲查看更多程式教學,請點擊 這裡.

5.0 結論

iText7 是常用的 PDF 庫之一。iText 的代碼非常複雜,不適合初學者。我們需要對這個庫有基本的了解才能在用戶應用程序中使用它。iText 生成的 PDF 文件空間很大,因此當生成多頁文件時可能會影響用戶的內存。iText7 將庫分成了多個包,這與其他包不同。iText7 依賴於多個包,我們需要下載所有包才能使其正常工作,這可能會增加應用程序的大小。iText 的開發許可證和商業許可證都是免費的。點擊 這裡 閱讀有關iText許可證的更多信息。

另一方面,IronPDF使用簡單方便。我們僅需幾行代碼就能創建PDF文件。它適合初學者使用,不需要任何基本知識。IronPDF不依賴於任何其他套件。它是一個獨立運行的套件。開發人員可以選擇購買各種不同的許可證以符合他們的需求,此外還提供免費許可證。$749 Lite 版包括所有庫功能,如永久許可證、30天退款保證、一年的軟件支持、升級以及SaaS和OEM再分發的可能性。另外,它還不包含經常性費用。這些許可證是一次性購買,可以應用於開發、測試和生產環境。此外,IronPDF還提供時間有限的、不可分發的免費許可證。請點擊 這裡 了解 IronPDF 價格和授權資訊的詳細說明。

< 上一頁
IronPDF 與 Foxit PDF SDK 的比較
下一個 >
iTextSharp與IronPDF編輯PDF的比較

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

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