產品比較

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

發佈 2023年5月30日
分享:

1.0 介紹

Adobe 開發了可攜式文件格式(Portable Document Format),以便於共享基於文本和圖像的文件。(PDF). 要查看 PDF 圖像文件,您必須使用不同的應用程式。 許多企業在當今文化中使用 PDF 文件進行各種任務,包括準備發票和其他文書工作。

開發人員還使用現有的 PDF 文件格式來製作符合客戶規範的文件或圖像文件。 幸運的是,簡化過程的函式庫使生成PDF比以往任何時候都簡單。 在為專案選擇程式庫時,請考慮構建、讀取和轉換能力,以便選擇最適合且可用的程式庫。

在這篇文章中,將比較兩個最廣泛使用的 .NET PDF 庫。 它們是:

*iText PDF

*IronPDF

在您的 Microsoft.NET 應用程式或專案中,您可以使用 IronPDF 或 iText PDF 庫來建立、閱讀和修改 PDF。 我們將首先看看這兩個庫的功能,而不是直接轉到整體性能、轉換和處理PDF的費用,以確定哪個庫更適合您的應用程序。 Microsoft .NET Framework 支援這兩個函式庫。 此外,每個庫的持續時間將被記錄以供參考和後續研究。 了解比較,請點擊這裡.

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完全相同的PDF。 IronPDF 支援多種網頁和 .NET 格式,包括 HTML、ASPX、Razor View 和 MVC。 IronPDF 的關鍵屬性如下:

  • 在 Dot NET C# 程式中輕鬆創建、閱讀和編輯 PDF 文件。
  • 從網站 URL 連結建立 PDF,該連結包含用戶代理、代理伺服器、Cookie、HTTP 標頭和表單變數的設定,以支援使用 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 函式庫

如下面的截圖所示,我們可以在套件管理器中輕鬆搜尋「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.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,810,873 查看許可證 >