產品比較

IronPDF與PDFreactor的比較

發佈 2022年3月30日
分享:

PDFreactor 和 IronPDF 為工程師提供生成、操作、編輯、格式化和 列印 PDF 文件 從各種輸入中工作。在 .NET 和 .NET Core 中,我們必須選擇最符合我們項目和要求的工具,使用代碼範例和操作說明教程總是有用的。

任何 .NET 開發者都會告訴你,在項目開始之前需要做很多研究。有句古老的諺語說:使用合適的工具來完成合適的工作。PDF 庫也不例外。作為開發者,你必須充分了解有哪些庫和工具。當然,不是所有的工具或庫都是一樣的——有些有不同的優勢,有些有更多的劣勢,但最終這是你和你的公司使用最適合的工具的特權,最重要的是,適合你的項目。

這篇文章將比較兩個最受 .NET 和 .NET Core 開發者歡迎的 PDF 庫。這兩個庫是:

  • IronPDF
  • PDFreactor

在任何比較文章中,最好盡可能比較好的、壞的和糟糕的。不幸的是,在當前的技術環境中,有些庫遠遠不夠,而其他庫則表現卓越並蓬勃發展。技術正在以如此快的速度發展,很難保持最新。這不僅適用於第三方庫的製作者,也適用於開發者。適者生存,需要非常快速地適應。

讓我們看看這兩個產品。

IronPDF 是什麼?

IronPDF 是一款用於 .NET 平台的商業級 PDF 生成庫,由 C# 編寫。其關鍵概念是通過從 HTML、CSS、圖像和 JavaScript 渲染 PDF,來避免耗時的 PDF 生成 API。它同樣適用於表單應用程式、伺服器應用程式和服務、Web 應用程式、安全內聯網、控制台應用程式、WPF 應用程式和 MVC 模式網站。IronPDF 與從版本 4 起的任何 .NET Framework 專案以及從版本 2 起的 .NET Core 專案兼容。

IronPDF C# Library 功能

部分出色的IronPDF功能包括:

  • 從HTML和ASPX等網站平台生成PDF文件
  • 讀取PDF文本
  • 從PDF文件中提取圖像和數據
  • 合併、拆分和操作PDF文件

2020年的改進包括:

  • 改進PDF文本提取的準確性
  • 增加對更多PDF文件類型的支持
  • 改善內存佔用
  • 現在支持加密PDF的數字簽名
  • 數字簽名元數據的增強
  • 解決邊緣案例的安裝路徑和許可問題
  • 支持CentOS 8和Ubuntu 20

許可證起價為 $749。

PDFreactor是什麼?

C#是所有行業中使用最多的編程語言之一。如果您正在尋找一個能夠無縫配合C#和.NET工作的高質量PDF轉換器,那麼使用PDFreactor您就有了一個強大的工具,可以通過C#將HTML頁面渲染為PDF。PDFreactor是一款簡單、快速、現代的轉換引擎,適用於需要高效地從HTML創建PDF的C#用戶。

PDFreactor 特點:

  1. 支援所有 HTML5 元素。

  2. 使用先進的 CSS3,如 calc、媒體查詢、box-shadow(框陰影)、text-shadow(文字陰影)、filter(過濾器)。轉換、旋轉、縮放元素以將 HTML + CSS 轉換為 PDF。

  3. 轉換 JavaScript 驅動的佈局為 PDF。

  4. PDFreactor 支援依照無障礙指南創建標記的 PDF 文件。

  5. PDFreactor 網頁應用提供專業印刷功能,如 PDF/X、PDF/X-4p、基線網格和專色。PDF/A PDFreactor 允許輕鬆創建 PDF/A。 (1a, 1b, 2a, 2b, 2u, 3a, 3b 和 3u) 和 PDF/UA 合規文件,用於電子文件的長期存檔。

新改進包括:

  • CSS 網格佈局
  • 頁面浮動
  • 續行標記
  • 變更標記
  • 可樣式化腳注
  • 配置選項以創建可檢查的 PDF。這使得可以檢查使用 PDFreactor 生成的 PDF 結構和佈局,類似於我們新的瀏覽器開發工具 PDFreactor Inspector 工具許可證起價 $2,950.00。

首先建立一個 ASP.NET 網站

IronPDF

接下來幾個步驟將生成一個ASP.NET網站:

  • 打開Visual Studio 2017或Visual Studio 2019。
  • 點擊File New Project以生成一個新項目。
  • 在專案類型列表框中選擇Visual C#下的Web。
  • 選擇ASP.NET Web Application。以下是截圖:
  • 選擇確定。
  • 在下一個畫面中選擇 Web Forms,如下所示:
  • 點擊確定。

接下來,讓我們安裝 IronPDF。

1. 安裝 IronPDF

有兩種方式可以安裝 IronPDF:

  • NuGet
  • 下載庫文件

讓我們仔細看看。

1.1. 通過NuGet安裝庫

有三種通過NuGet安裝IronPDF的方法,這些方法是:

  • Visual Studio
  • 開發人員命令提示符
  • 直接下載NuGet包

讓我們逐一看看它們。

1.2. 使用 Visual Studio

你可以透過專案選單或在解決方案總管中右鍵點選你的專案來訪問 NuGet 套件管理員。

選擇後,瀏覽 IronPDF 套件並按照以下所示安裝。

1.3. 使用開發者命令提示字元

透過開發者命令提示字元使用以下幾個步驟來安裝IronPDF NuGet 包

  • 打開開發者命令提示字元 — 在 Visual Studio 文件夾中找到。
  • 鍵入:
    :ProductInstall
  • 按下 Enter 鍵。
  • 重新載入您的 Visual Studio 專案。

1.4. 直接下載 NuGet 套件

使用以下步驟通過 NuGet 下載套件:

1.5. 透過下載庫安裝 IronPDF

第二種安裝 IronPDF 的方式是直接從 IronPDF DLL下載.

在您的專案中引用庫,請使用以下步驟:

  • 在方案總管中右鍵點擊方案
  • 選擇參考
  • 瀏覽以查找 IronPDF.dll 庫
  • 點擊確定

PDFReactor

按照上述相同的步骤安装PDFreactor。這通常用於伺服器端的HTML轉PDF,從動態數據驅動的文檔开始。 (報告、發票、表單、數據表) 用於電子分發的復雜高品質PDF (目錄、行銷資料、技術文件、期刊) 用於印刷和電子出版。

2. 由 HTML 文本輸入創建 PDF

以下代碼創建 PDF 文件並在其中打印 HTML 字符串。

2.1. 使用 IronPDF 將 HTML 字串轉換為 PDF

以下程式碼使用 IronPDF 直接從 HTML 字串生成 PDF 文件。

private void HTMLString()
{
    // Render any HTML fragment or document to HTML
    var Renderer = new IronPdf.ChromePdfRenderer();
    var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
    var OutputPath = "ChromePdfRenderer.pdf";
    PDF.SaveAs(OutputPath);
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
private void HTMLString()
{
    // Render any HTML fragment or document to HTML
    var Renderer = new IronPdf.ChromePdfRenderer();
    var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
    Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
    var OutputPath = "ChromePdfRenderer.pdf";
    PDF.SaveAs(OutputPath);
    Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
Private Sub HTMLString()
	' Render any HTML fragment or document to HTML
	Dim Renderer = New IronPdf.ChromePdfRenderer()
	Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
	Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
	Dim OutputPath = "ChromePdfRenderer.pdf"
	PDF.SaveAs(OutputPath)
	Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
End Sub
VB   C#

2.1. 使用 PDFreactor 將 HTML 字串轉換為 PDF

以下程式碼使用 PDFreactor 直接從 HTML 字串建立 PDF 檔案。

<script>
            window.onload = async function() {
                // Create new PDFreactor instance
                var pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest");
                // Create a new PDFreactor configuration object
                var config = {
                    // Specify the input document
                    document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html",
                }       
                // Render document and save result
                try {
                    var result = await pdfReactor.convert(config);
                    document.getElementById("result").src = "data:application/pdf;base64," + result.document;
                } catch (error) {
                    if (error instanceof PDFreactor.PDFreactorWebserviceError) {
                        document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + error.message + "</h2>";
                    }
                }
            }
        </script>
<script>
            window.onload = async function() {
                // Create new PDFreactor instance
                var pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest");
                // Create a new PDFreactor configuration object
                var config = {
                    // Specify the input document
                    document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html",
                }       
                // Render document and save result
                try {
                    var result = await pdfReactor.convert(config);
                    document.getElementById("result").src = "data:application/pdf;base64," + result.document;
                } catch (error) {
                    if (error instanceof PDFreactor.PDFreactorWebserviceError) {
                        document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + error.message + "</h2>";
                    }
                }
            }
        </script>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'(Of script) window.onload = async @function()
'{
'				' Create new PDFreactor instance
'				var pdfReactor = New PDFreactor("https://cloud.pdfreactor.com/service/rest");
'				' Create a new PDFreactor configuration object
'				var config = { document: "http://www.pdfreactor.com/product/samples/textbook/textbook.html"} try
'				{
'					var result = await pdfReactor.convert(config);
'					document.getElementById("result").src = "data:application/pdf;base64," + result.document;
'				}
'				catch (@error)
'				{
'					if (@error instanceof PDFreactor.PDFreactorWebserviceError)
'					{
'						document.body.innerHTML = "<h1>An Error Has Occurred</h1><h2>" + @error.message + "</h2>";
'					}
'				}
'			}
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'		</script>
VB   C#

3. 將ASPX頁面轉換為PDF

以下代碼從ASPX頁面創建PDF文件。

3.1. 使用 IronPDF 將 ASPX 頁面轉換為 PDF

以下程式碼使用 IronPDF 從 ASPX 檔案建立 PDF。

protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
protected void Page_Load(object sender, EventArgs e)
{
    IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
	IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
VB   C#

3.2. 使用 PDFreactor 將 ASPX 頁面轉換為 PDF

看起來 PDFreactor 不支援從 ASPX 網頁創建 PDF。

4. 使用 CSS3 與 PDF 檔案

  • HTML 轉 PDF 支援:
  • 完整且高保真度的 HTML 4 和 HTML 5 呈現
  • CSS 3
  • JavaScript
  • 圖像資源
  • SVG 資源
  • 響應式佈局
  • 外部樣式表和資源 (HTTP、HTTPS或檔案系統)
  • 靜態和多執行緒渲染
  • 使用自定義來加載URL:

    • 網絡登錄憑證

    • 用戶代理

    • 代理

    • Cookies

    • HTTP標頭

    • 表單變量允許在HTML登錄表單後面進行登錄

4.1. 層疊樣式表 CSS3

層疊樣式表 (CSS) 描述 HTML 文件的外觀和格式。它利用選擇器和屬性,將整個網頁或網站的格式設置在一個集中位置。CSS3 是最新的標準。CSS3 包括:

  • 媒體查詢
  • 命名空間
  • 選擇器 Level 3
  • 模組包括:

    • 選擇器
    • 框模型
    • 文字效果
    • 2D 變換
    • 3D 變換
    • 背景
    • 使用者介面

使用 IronPDF,你可以選擇要將 CSS 樣式渲染到何處:螢幕或打印。當處理螢幕時,你必須了解響應性。要區分螢幕和打印機,你可以使用以下簡單的代碼行:

Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
//or
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
//or
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
VB   C#

4.2. 響應式網頁設計

響應式網頁設計使網頁和網站在所有設備上看起來都很好。響應式網站會根據不同的螢幕尺寸和視窗自動調整。在使用響應式設計和框架(如Bootstrap)時,IronPDF可以設置ViewPortWidth和ViewPortHeight屬性以編程方式控制視窗,並控制要作為PDF呈現的響應式網站版本。

4.3. 建立回應視窗

以下程式碼允許您使用 IronPDF 以編程方式設置回應視窗的大小。

using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
 //Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
//Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280; 
// Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html");
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
 //Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
//Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280; 
// Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html");
Imports IronPdf
Private Renderer As New IronPdf.ChromePdfRenderer()
 'Choose screen or print CSS media
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
'Set the width of the responsive virtual browser window in pixels
Renderer.ViewPortWidth = 1280
' Render an HTML document or snippet as a string
Renderer.RenderHTMLFileAsPdf("Assets/Responsive.html")
VB   C#

4.4. HTML模板

另一個很棒的功能是能夠從HTML模板建立並使用來生成相似的PDF文件。以下是一個小例子:

var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
    var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);
    var Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance);
    Pdf.SaveAs(name + ".pdf");
}
var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
    var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);
    var Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance);
    Pdf.SaveAs(name + ".pdf");
}
Dim HtmlTemplate = "<p>[[NAME]]</p>"
Dim Names = { "John", "James", "Jenny" }
For Each name In Names
	Dim HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name)
	Dim Pdf = Renderer.RenderHtmlAsPdf(HtmlInstance)
	Pdf.SaveAs(name & ".pdf")
Next name
VB   C#

6. 免費個人授權

如文所述 PDFreactor 軟件許可協議, PDFreactor 授權只能用在一台實體或虛擬機器或獨立的軟體容器上。因此,每台生產機器都需要一個授權。如果您打算非商業用途使用 PDFreactor,您可以申請免費的個人授權 這裡IronPDF是一個開放商業 C# PDF程式庫可以免費用於開發,且透過發送電子郵件至developers@ironpdf.com聯絡工程團隊可獲得30天部署試用。通過探索可找到實惠的許可選項 IronPDF 授權.

7. 總結與結論

摘要

IronPDF 是一個獲得支援且以提升生產力為首要目標的 .NET 庫,它可以:

  • 使用完全嵌入的網頁瀏覽器從 HTML 渲染 PDF
  • 編輯和處理高品質的 PDF
  • 數位簽署 PDF 轉換

PDFreactor 是免費的 HTML 轉 PDF 轉換器 適用於私人、非商業和非專業用途。

  • 輕鬆將 HTML 轉換為 PDF。支援 HTML5、CSS3、JavaScript。為 JavaScript、Java、PHP、.NET、Python、Ruby、Perl、Node.js、SOAP、REST 提供 API。

結論

IronPDF 解決了在您的應用程式中添加 PDF 生成的困難問題,並自動將格式化的文件轉換為 PDF。所有產品在 IDE 內的開發和測試中均為免費,且無時間限制,並且可以通過 NuGet 安裝。它使用 .NET 將網頁表單、本地 HTML 頁面和其他網頁轉換為 PDF,允許用戶下載文件、通過電子郵件發送,或存儲在雲端。

PDFreactor 是一個強大的格式處理器,可通過使用 CSS 定義頁面佈局和樣式,從 HTML 5 文檔進行伺服器端的 PDF 轉換。您可以動態生成如報告、發票、結算單等 PDF 文檔。通過實現 W3C 的分頁媒體和打印規範,PDFreactor 提供了通過 CSS 對分頁輸出的極大控制。在生產環境中使用 PDFreactor 需要適當的授權執照。

< 上一頁
IronPDF與EO.Pdf:比較
下一個 >
IronPDF與ITextPDF的比較

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

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