在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
開發人員在用C#讀取、寫入、創建或轉換PDF時,總是面臨挑戰。然而,隨著眾多庫的出現,這些問題得到了有效解決,且這些庫的簡單集成使其在C#應用程式中越來越受歡迎和易用。
本文旨在比較兩個最受.NET Framework和.NET Core開發人員歡迎的PDF庫:
這兩個庫都是.NET C#庫,它們提供了生成、轉換和編輯PDF的方法,適用於.NET和.NET Core。我們主要的問題是要決定哪個C# PDF庫最適合我們的項目。在本文中,我們將以最全面的方式比較這兩個庫,突顯它們的突出特點,讓您在為項目選擇合適的庫時能夠做出明智的決定。
首先,讓我們看看這兩個庫各自提供了什麼功能,然後再進行具體的比較。
IronPDF 是一個全方位的 .NET PDF 程式庫解決方案,對於 C# 開發人員特別有幫助。使用這個程式庫,你可以輕鬆實現所有需要的功能,以建立一個優秀的 PDF 閱讀器或 PDF 檢視器。
IronPDF 具有一個 .NET Chromium 引擎,可以將 HTML 內容渲染為 PDF 文件,這使得設計或定位 PDF 變得更加簡單,而不需要複雜的 API。其 HTML to PDF 轉換器允許使用 HTML5、CSS、JavaScript 及圖片來建立 .NET PDF 程式庫。此外,它還允許你編輯 PDF、添加頁眉和頁腳,以及輕鬆從 PDF 中提取圖片。此外,它讓閱讀 PDF 文字成為一個簡單直接的過程。
從網站 URL 生成 PDF 文件
合併和拆分文件內容
將HTML轉換為PDF檔案
列印 CSS 媒體類型
專家PDF 它也是一個 .NET 函式庫,提供開發人員即時將 HTML 轉換為 PDF。如果您需要生成 PDF 報告或製作 PDF 閱讀器,您再也不必使用複雜的報告生成軟體。
專家PDF 簡單易用,但它是一個功能強大的 PDF 編輯器。它包含一個高級的 HTML 到 PDF 轉換器,能在幾分鐘內實現於任何 .NET 應用程式中。它與 .NET Framework、.NET Core、.NET 5 和 .NET 6 兼容。
它是一個強大 .NET 函式庫,幫助您在任何 .NET Framework 或 .NET Core 應用程式中,從任意網頁 URL 或原始 HTML 標記、字串或檔案創建 PDF 閱覽器和文件。
以下是主要功能:
支援像 open type 和 true type 這樣的網頁字體
檔案類型轉換:
PDF 轉文字轉換器
HTML 轉 PDF 轉換器
HTML 轉圖像轉換器
PDF 轉圖像轉換器
本文的其餘部分將涵蓋以下主題:
創建一個控制台專案
安裝 IronPDF
安裝 ExpertPDF
從 URL 創建 PDF
從 HTML 輸入字符串創建 PDF
合併多個 PDF 成為一個 PDF
將圖像轉換為 PDF
許可和定價
按照以下步驟使用 Visual Studio 2022 在 C# 中創建一個控制台應用程式:
現在我們的控制台專案已經建立,並且我們已經準備好測試我們的函式庫。然而,我們還需要將它們集成到我們的專案中。讓我們先安裝 IronPDF。
有多種方法可以下載並安裝 IronPDF 函式庫。如下:
使用 Visual Studio
直接下載 NuGet 套件
Visual Studio 本身提供了 NuGet 套件管理器來安裝 C# 專案中的所有 NuGet 套件。您可以通過以下方式訪問它:
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-6.webp" alt="A Comparison between IronPDF and ExpertPDF for .NET: Figure 6: 專案選單 > 管理 NuGet 套件" class="img-responsive add-shadow">
</div>
<p class="content__image-caption">專案選單 > 管理 NuGet 套件</p>
</div>
選擇後,瀏覽 IronPDF NuGet 套件並安裝,如下圖所示:
另一種方法是從 NuGet 網站下載 IronPDF。直接訪問 NuGet 並下載套件。請按照以下步驟操作:
套件將安裝
您還可以從 IronPDF 網站直接下載 IronPDF .DLL 文件。點擊IronPDF DLL下載 安裝。
接下來,按照以下步驟在您的項目中引用IronPDF:
全都完成了! IronPDF 已經安裝完成,並準備使用。然而,在此之前,我們將安裝 ExpertPDF 進行比較。
有兩種方法可以下載和安裝 ExpertPDF 庫:
我們將使用新的 .NET Framework,因此我們將使用 NuGet 套件管理員安裝 ExpertPDF。
正如 IronPDF 一樣,您可以透過以下方式使用 NuGet 套件管理員:
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-9.webp" alt="A Comparison between IronPDF and ExpertPDF for .NET: Figure 9: 專案選單 > 管理 NuGet 套件" class="img-responsive add-shadow">
</div>
<p class="content__image-caption">專案選單 > 管理 NuGet 套件</p>
</div>
選擇後,瀏覽並安裝ExpertPDF NuGet套件,如下所示:
注意: ExpertPDF 僅支援 Windows 作業系統。
這兩個庫都具有將 HTML 標記轉換為 PDF 的能力。現在,讓我們依次看看每個庫的 C# 代碼。
IronPDF 將現有的 URL 渲染為 PDF 時非常簡單。它對 CSS、JavaScript、圖像和表單有非常高的支援。
以下的程式碼範例直接從網站 URL 創建 PDF。
using IronPdf;
ChromePdfRenderer Renderer = new ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
using IronPdf;
ChromePdfRenderer Renderer = new ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Imports IronPdf
Private Renderer As New ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
'
Pdf.SaveAs("url.pdf")
ExpertPDF 使用 savePdfFromUrlToFile
方法將 URL 轉換為 PDF,該方法快速、安全且高效。頁面的格式保存與實際的網頁瀏覽器上一樣。
using ExpertPdf.HtmlToPdf;
PdfConverter pd = new PdfConverter();
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
using ExpertPdf.HtmlToPdf;
PdfConverter pd = new PdfConverter();
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
Imports ExpertPdf.HtmlToPdf
Private pd As New PdfConverter()
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf")
IronPDF和Expert PDF都提供了從包含 HTML 的標記字串創建PDF的功能。
以下程式碼片段展示了如何使用 HTML 輸入字串來渲染 PDF 文件圖像。
using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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 PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
PDF.SaveAs("html-with-assets.pdf")
ExpertPDF HTML 到 PDF 轉換器支援從 HTML 字串轉換為 PDF。其程式碼與 URL 到 PDF 的轉換一樣簡單且易於理解:
using ExpertPdf.HtmlToPdf;
PdfConverter pd = new PdfConverter();
pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
using ExpertPdf.HtmlToPdf;
PdfConverter pd = new PdfConverter();
pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
Imports ExpertPdf.HtmlToPdf
Private pd As New PdfConverter()
pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf")
第一個參數是真正的 HTML 字串,第二個參數是將保存掃描文件的檔案名。
IronPDF 和 ExpertPDF 都提供了將多個 PDF 文件合併為單個 PDF 文件的功能。此功能對於整合分散的數據並通過互聯網更高效地傳輸非常有用。
以下程式碼將從不同 HTML 字串創建的兩個 PDF 進行渲染,然後使用 Merge
方法將它們合併。這是一行非常容易使用的程式碼。在渲染時還可以向 PDF 設定中添加更多選項。
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var renderer = new ChromePdfRenderer();
var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.pdf");
using IronPdf;
var html_a = @"<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>";
var html_b = @"<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>";
var renderer = new ChromePdfRenderer();
var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);
merged.SaveAs("Merged.pdf");
Imports IronPdf
Private html_a = "<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_A] 2nd Page</p>"
Private html_b = "<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style = 'page-break-after: always;' ></div>
<p> [PDF_B] 2nd Page</p>"
Private renderer = New ChromePdfRenderer()
Private pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
Private pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
Private merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)
merged.SaveAs("Merged.pdf")
Merge
方法也有一個重載接受多個文件的 Enumerable 物件形式。你可以在這個示例中看到其使用方法 程式碼範例請注意,如果合併的 PDF 檔案包含可編輯的表單,合併後的 PDF 表單欄位名稱將會附加索引號碼。
ExpertPDF 使用一個 Merge PDF 組件來完成此任務。必須從 NuGet 套件管理器安裝才能使用它。有一個 AppendPDFFile
方法可以將 PDF 文件附加到 PDFMerge 類對象中。以下是合併由 ExpertPDF 先前創建的兩個 PDF 的代碼:
using ExpertPdf.MergePdf;
PDFMerge pDF = new PDFMerge();
pDF.AppendPDFFile("output.pdf");
pDF.AppendPDFFile("html-to-pdf.pdf");
pDF.SaveMergedPDFToFile("merged.pdf");
using ExpertPdf.MergePdf;
PDFMerge pDF = new PDFMerge();
pDF.AppendPDFFile("output.pdf");
pDF.AppendPDFFile("html-to-pdf.pdf");
pDF.SaveMergedPDFToFile("merged.pdf");
Imports ExpertPdf.MergePdf
Private pDF As New PDFMerge()
pDF.AppendPDFFile("output.pdf")
pDF.AppendPDFFile("html-to-pdf.pdf")
pDF.SaveMergedPDFToFile("merged.pdf")
IronPDF有能力將各種圖片轉換為PDF文件,而ExpertPDF則不提供此功能。然而,ExpertPDF可以從PDF文件中提取圖片,並且還可以將PDF文件轉換為圖片,而這一功能IronPDF也提供。
在 IronPDF 中,可以使用 ImageToPdfConverter
類從一個或多個圖像輕鬆創建 PDF 文件。您可以從應用程式中的任何文件夾加載圖像。
// One or more images as IEnumerable. This example selects all JPEG images in a specific folder.
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\composite.pdf");
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
// One or more images as IEnumerable. This example selects all JPEG images in a specific folder.
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets").Where(f => f.EndsWith(".jpg")
f.EndsWith(".jpeg"));
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\composite.pdf");
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
IRON VB CONVERTER ERROR developers@ironsoftware.com
除了可以將各種影像轉換為 PDF 檔案外,IronPDF 還可以將掃描文件、紙質文件和商業文件轉換為單獨的影像。它還可以從這些類型的檔案中提取影像。
IronPDF 是一款完全開放的商業產品 C# PDF程式庫. 它對於私人開發是免費的,並且可以隨時為商業用途授權。 各種 授權可用適用於單個專案、單一或多個開發人員、代理商和全球企業。它也支持SaaS和OEM重新分發。
所有授權均提供 30 天退款保證以及一年的支援和產品更新。這些授權是永久性的,這意味著只需一次購買,無需額外費用。適用於單一開發人員和單一專案的 Lite 套餐起價為$749。
ExpertPDF 提供按每位開發人員或每家公司購買授權。您可 免費試用 ExpertPDF. 您可以在下圖中查看授權功能列表。
ExpertComponents Toolkit Total 開發者授權起價為 $850,ExpertPDF Toolkit 起價為 $750。您也可以購買單一組件。 完整價格表 可在網站上獲得。
IronPDF 在本地渲染 HTML 為 PDF,因此不需要互聯網連接。實際上,它隱式地啟動了一個符合標準的網頁瀏覽器對象。HTML 渲染完全準確且為矢量格式,適合最高標準的商業印刷。輸出乾淨,生成的 PDF 質量高。它可以獲得商業許可使用,並且所有的定價都列在其網站上,沒有隱藏費用。
ExpertPDF 的 HTML-to-PDF 轉換庫是一個多功能工具,可以將網頁和 HTML 代碼轉換為 PDF 文件,從 ASP.NET 網頁生成 PDF 報告,甚至使用電子簽名簽署合同。它免費使用,但也可以獲得附加功能的授權。
雖然這兩個庫都能處理 PDF 文件並從流行格式進行轉換,但 IronPDF 在某些方面優於 ExpertPDF。IronPDF 支持從更廣泛的格式進行轉換,包括 XML、圖片和 AngularJS,並且具有更強大的功能來生成、格式化和編輯 PDF。IronPDF 是一個節省時間的解決方案,推薦給尋求效率的務實開發者。
ExpertPDF 需要單獨安裝不同的組件,而 IronPDF 是一個包含所有功能的完整軟件。ExpertPDF 可能是僅需要單個組件(例如 HTML-to-PDF 轉換)的項目的好選擇。IronPDF 的包提供終生許可,沒有持續費用,而 ExpertPDF 需要續費。