在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
PDFreactor 和 IronPDF 為工程師提供生成、操作、編輯、格式化和 列印 PDF 文件 從各種輸入中工作。在 .NET 和 .NET Core 中,我們必須選擇最符合我們項目和要求的工具,使用代碼範例和操作說明教程總是有用的。
任何 .NET 開發者都會告訴你,在項目開始之前需要做很多研究。有句古老的諺語說:使用合適的工具來完成合適的工作。PDF 庫也不例外。作為開發者,你必須充分了解有哪些庫和工具。當然,不是所有的工具或庫都是一樣的——有些有不同的優勢,有些有更多的劣勢,但最終這是你和你的公司使用最適合的工具的特權,最重要的是,適合你的項目。
這篇文章將比較兩個最受 .NET 和 .NET Core 開發者歡迎的 PDF 庫。這兩個庫是:
在任何比較文章中,最好盡可能比較好的、壞的和糟糕的。不幸的是,在當前的技術環境中,有些庫遠遠不夠,而其他庫則表現卓越並蓬勃發展。技術正在以如此快的速度發展,很難保持最新。這不僅適用於第三方庫的製作者,也適用於開發者。適者生存,需要非常快速地適應。
讓我們看看這兩個產品。
IronPDF 是一款用於 .NET 平台的商業級 PDF 生成庫,由 C# 編寫。其關鍵概念是通過從 HTML、CSS、圖像和 JavaScript 渲染 PDF,來避免耗時的 PDF 生成 API。它同樣適用於表單應用程式、伺服器應用程式和服務、Web 應用程式、安全內聯網、控制台應用程式、WPF 應用程式和 MVC 模式網站。IronPDF 與從版本 4 起的任何 .NET Framework 專案以及從版本 2 起的 .NET Core 專案兼容。
部分出色的IronPDF功能包括:
2020年的改進包括:
許可證起價為 $749。
C#是所有行業中使用最多的編程語言之一。如果您正在尋找一個能夠無縫配合C#和.NET工作的高質量PDF轉換器,那麼使用PDFreactor您就有了一個強大的工具,可以通過C#將HTML頁面渲染為PDF。PDFreactor是一款簡單、快速、現代的轉換引擎,適用於需要高效地從HTML創建PDF的C#用戶。
PDFreactor 特點:
支援所有 HTML5 元素。
使用先進的 CSS3,如 calc、媒體查詢、box-shadow(框陰影)、text-shadow(文字陰影)、filter(過濾器)。轉換、旋轉、縮放元素以將 HTML + CSS 轉換為 PDF。
轉換 JavaScript 驅動的佈局為 PDF。
PDFreactor 支援依照無障礙指南創建標記的 PDF 文件。
新改進包括:
接下來幾個步驟將生成一個ASP.NET網站:
接下來,讓我們安裝 IronPDF。
有兩種方式可以安裝 IronPDF:
讓我們仔細看看。
有三種通過NuGet安裝IronPDF的方法,這些方法是:
讓我們逐一看看它們。
你可以透過專案選單或在解決方案總管中右鍵點選你的專案來訪問 NuGet 套件管理員。
選擇後,瀏覽 IronPDF 套件並按照以下所示安裝。
透過開發者命令提示字元使用以下幾個步驟來安裝IronPDF NuGet 包:
:ProductInstall
使用以下步驟通過 NuGet 下載套件:
第二種安裝 IronPDF 的方式是直接從 IronPDF DLL下載.
在您的專案中引用庫,請使用以下步驟:
按照上述相同的步骤安装PDFreactor。這通常用於伺服器端的HTML轉PDF,從動態數據驅動的文檔开始。 (報告、發票、表單、數據表) 用於電子分發的復雜高品質PDF (目錄、行銷資料、技術文件、期刊) 用於印刷和電子出版。
以下代碼創建 PDF 文件並在其中打印 HTML 字符串。
以下程式碼使用 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
以下程式碼使用 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>
以下代碼從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
看起來 PDFreactor 不支援從 ASPX 網頁創建 PDF。
使用自定義來加載URL:
網絡登錄憑證
用戶代理
代理
Cookies
HTTP標頭
層疊樣式表 (CSS) 描述 HTML 文件的外觀和格式。它利用選擇器和屬性,將整個網頁或網站的格式設置在一個集中位置。CSS3 是最新的標準。CSS3 包括:
模組包括:
使用 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
響應式網頁設計使網頁和網站在所有設備上看起來都很好。響應式網站會根據不同的螢幕尺寸和視窗自動調整。在使用響應式設計和框架(如Bootstrap)時,IronPDF可以設置ViewPortWidth和ViewPortHeight屬性以編程方式控制視窗,並控制要作為PDF呈現的響應式網站版本。
以下程式碼允許您使用 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")
另一個很棒的功能是能夠從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
如文所述 PDFreactor 軟件許可協議, PDFreactor 授權只能用在一台實體或虛擬機器或獨立的軟體容器上。因此,每台生產機器都需要一個授權。如果您打算非商業用途使用 PDFreactor,您可以申請免費的個人授權 這裡IronPDF是一個開放商業 C# PDF程式庫可以免費用於開發,且透過發送電子郵件至developers@ironpdf.com聯絡工程團隊可獲得30天部署試用。通過探索可找到實惠的許可選項 IronPDF 授權.
IronPDF 是一個獲得支援且以提升生產力為首要目標的 .NET 庫,它可以:
PDFreactor 是免費的 HTML 轉 PDF 轉換器 適用於私人、非商業和非專業用途。
IronPDF 解決了在您的應用程式中添加 PDF 生成的困難問題,並自動將格式化的文件轉換為 PDF。所有產品在 IDE 內的開發和測試中均為免費,且無時間限制,並且可以通過 NuGet 安裝。它使用 .NET 將網頁表單、本地 HTML 頁面和其他網頁轉換為 PDF,允許用戶下載文件、通過電子郵件發送,或存儲在雲端。
PDFreactor 是一個強大的格式處理器,可通過使用 CSS 定義頁面佈局和樣式,從 HTML 5 文檔進行伺服器端的 PDF 轉換。您可以動態生成如報告、發票、結算單等 PDF 文檔。通過實現 W3C 的分頁媒體和打印規範,PDFreactor 提供了通過 CSS 對分頁輸出的極大控制。在生產環境中使用 PDFreactor 需要適當的授權執照。