如何在C#中將HTML轉換為PDF(開發者指南)
在C#中將HTML轉換為PDF看似簡單,但在實際專案中會遇到渲染、部署和縮放限制。 本指南展示了如何可靠地使用IronPDF的Chrome引擎進行轉換,從可以在一分鐘內運行的工作程式碼開始。
TL;DR:HTML轉換為PDF的快速入門指南
您可以輕鬆地使用IronPDF程式庫將HTML轉換為PDF,其提供了ChromePdfRenderer.RenderHtmlAsPdf方法,可從HTML、CSS和JavaScript建立高質量的PDF文件。
購買或註冊30天試用IronPDF後,請查找發送到您電子郵件中的授權金鑰。 在應用程式開始時新增您的授權金鑰。
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf
IronPdf.License.LicenseKey = "KEY"
本指南中的所有程式碼均在IronPDF v2026.6.1 · .NET 10 · 2026年6月上進行了驗證。
為什麼NET開發人員需要C#的HTML到PDF轉換器
IronPDF利用嵌入的Google Chromium渲染引擎確保高保真轉換,準確保留您的網頁內容的佈局和樣式。
✅ 強大的Chrome渲染引擎:使用Chrome的Blink引擎進行精確的HTML到PDF轉換。
✅ 像素精確:生成的PDF文件完全與網頁一致,而不是適合列印的版本。
✅ 全面的現代網頁支持:完全支持CSS3、HTML5和JavaScript的所有HTML元素。
✅ 性能提升5到20倍:比瀏覽器自動化或網頁驅動程式快得多。
✅ PDF/UA合規:生成符合508條款標準的無障礙PDF。
✅ 無外部依賴:不需要在伺服器上安裝可執行文件。
✅ Designed for C#, F#, and VB.NET on .NET 10, 9, 8, 7, 6, Core, Standard, and Framework.
IronPDF簡化了.NET開發人員的過程,提供了一個簡單而高效的解決方案,從您的網頁應用程式的HTML生成專業外觀的PDF文件。 從發票和報告到證書和檔案,開發者可以使用他們熟悉的網頁技術棧,而IronPDF僅需幾行程式碼就能處理複雜的內容。
您將學到的內容
根據用例選擇您的HTML到PDF路徑
不確定從哪裡開始? 直接跳轉到符合您建設的路徑:
| 您正在建設的內容 | 從這裡開始 |
|---|---|
| 轉換單次HTML字串 | HTML String to PDF |
| 存檔即時URL或網頁 | URL to PDF |
| 構建Razor頁面或MVC應用 | Razor / MVC to PDF |
| 批量或高容量伺服器端生成 | 非同步和批量生成 |
1. How to Convert HTML to PDF C
無論您正在處理HTML字串、URL或HTML文件,IronPDF都提供靈活的選項來生成滿足您的特定需求的高質量PDF文件。
在本教程中,我們將帶您了解最常見的場景,包括HTML字串轉PDF、URL轉PDF和HTML文件轉PDF。 此外,IronPDF還提供了多種操作來操作PDF文件:
| 多功能PDF轉換 | 動態網頁轉PDF轉換 |
|---|---|
如何將HTML字串轉換為PDF
最基礎的操作是將HTML字串轉換為PDF。 此方法非常適合動態生成的HTML內容。 RenderHtmlAsPdf方法在直接將HTML轉換為PDF時完全支援HTML5、CSS3、JavaScript和圖像。
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
Imports IronPdf
' Create the Chrome renderer
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
' Save the PDF
pdf.SaveAs("output.pdf")
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
輸出
運行上面的程式碼段,IronPDF返回一頁PDF,正好包含您所傳遞的標題,是最簡單的渲染方式:
性能
IronPDF從字串、URL和HTML轉換為PDF的性能是使用具有16GB RAM的聯想筆記本電腦測量的。 測試文件是一份3頁的企業發票,包含標準的CSS網格、漸變和多部分表格。
結果如下:
| 測量指標 | 數值 |
|---|---|
| 平均渲染時間 | 約486毫秒 |
| 每次渲染的記憶體 | 約3.6 MB |
在16核工作站(Windows 11,.NET 8)上連續進行了5次測量。 第一次呼叫還包括一次性Chromium引擎初始化(約1.3秒時間)
第一次我運行測試時,渲染時間很慢(每次呼叫超過一秒!)。 查看發生了什麼之後,我意識到我有多個打開的Chromium實例在運行,而且是電池供電,這都不允許程式庫展示其真正的速度。 等我關閉競爭進程並插電後,效果顯著提升:溫暖運行的平均時間約為486毫秒,最快則接近473毫秒。
EnableJavaScript = true測試動態內容以獲得最佳效果。當您的HTML字串引用本地資源مثل圖像或樣式表時,Use baseUrlOrPath參數適當轉換帶有所有資源的HTML內容:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-2.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML content with local image and CSS references
Dim html As String = "
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>"
' Set base path for resolving relative URLs in HTML to PDF conversion
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\MyProject\Assets\")
pdf.SaveAs("report.pdf")
baseUrlOrPath參數,將相對路徑指向正確目錄,因為快速檢查輸出通常是批量運行前捕獲問題所必需的。相關操作文章: 如何在C#中將HTML字串轉換為PDF
如何將現有URL匯出為PDF
使用C#將整個網頁呈現為PDF允許團隊分離PDF設計和後端渲染工作。 此方法允許您將任何指定的URL直接轉換為PDF格式。
核心方法是RenderUrlAsPdf,它獲取一個活動頁面並以單次呼叫進行渲染:
using IronPdf;
// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
using IronPdf;
// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
Imports IronPdf
' Create a PDF from any existing web page
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("wikipedia.pdf")
輸出
此處RenderUrlAsPdf將維基百科條目捕捉為靜態、適合列印的PDF,其中文字、圖像、表格及佈局保留在33頁樹立:
列印對比螢幕CSS
您可以配置IronPDF使用任一CSS媒體型別進行渲染。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-4.cs
using IronPdf;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
Imports IronPdf
Imports IronPdf.Rendering
' Initialize HTML to PDF converter
Dim renderer As New ChromePdfRenderer()
' Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Screen media type shows the entire web page as displayed on screen
JavaScript支持
IronPDF完全支持JavaScript、jQuery乃至AJAX,當您將HTML轉換為PDF時。 對於動態HTML内容,您可以配置IronPDF在渲染網頁為PDF之前等待JavaScript完成。 這很適合單頁應用和動態網站。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-5.cs
using IronPdf;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
Imports IronPdf
' Configure JavaScript rendering for dynamic HTML content to PDF
Dim renderer As New ChromePdfRenderer()
' Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = True
' WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay(500) ' milliseconds
當將智能化d3.js弦圖從網頁渲染到PDF格式時,JavaScript執行同樣可顯示:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-6.cs
using IronPdf;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://observablehq.com/@d3/chord-diagram");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
Imports IronPdf
' Create renderer for JavaScript-heavy HTML
Dim renderer As New ChromePdfRenderer()
' Convert d3.js visualization web page to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://observablehq.com/@d3/chord-diagram")
' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
響應式CSS
由於響應式網頁是設計成在瀏覽器中查看的,而IronPDF在伺服器操作系統中不打開真正的瀏覽器窗口,因此響應式HTML元素可能渲染在其最小的大小。建議PdfCssMediaType.Print在渲染整個網頁時解決此問題。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-7.cs
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
相關操作文章: 如何將URL渲染為PDF
如何將HTML文件轉換為PDF
將本地HTML文件轉換為PDF保留了包括CSS、圖像和JavaScript的一切相對資源,如同使用 file:// 協議打開。 此HTML到PDF的方法最適合將模板或預設設計的HTML頁面轉換為PDF文件。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-8.cs
using IronPdf;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
Imports IronPdf
' Initialize ChromePdfRenderer for HTML file conversion
Dim renderer As New ChromePdfRenderer()
' Convert HTML file to PDF documents
' Preserves all relative paths and linked resources in HTML
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
' Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf")
' All CSS, JavaScript, and images load correctly in the generated PDF
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
輸出
将RenderHtmlFileAsPdf指向HTML發票模板,文件的完整設計(標誌、線項目表、總計)無需額外代通過作即可取得像素精確:
性能
保持所有因素不變再次測量性能以渲染來自磁碟的同樣3頁企業發票:
| 測量指標 | 數值 |
|---|---|
| 平均渲染時間 | 約502毫秒 |
| 每次渲染的記憶體 | 約3.1 MB |
*在相同16核工作站上連續進行了5次測量(Windows 11,.NET 8)。 基於記憶體的字串渲染與基於文件的渲染相匹配,在3%左右; 從磁碟讀取HTML不新增可測量的開銷。
相關操作文章: 將HTML文件渲染為PDF
如何將Razor頁面轉換為PDF
如果您的ASP.NET Core專案已使用Razor頁面,您可以不重構您的HTML而直接將它們轉換為PDF。 IronPDF的Razor擴展增加了RenderRazorToPdf方法,該方法將您的.cshtml頁面(包含其模型和佈局)轉換為PDF文件,並以單次呼叫來進行渲染。
Install-套件 IronPdf.Extensions.Razor
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Public Class ReportModel
Inherits PageModel
Public Function OnGet() As IActionResult
Dim renderer As New ChromePdfRenderer()
' Render a Razor Page directly to PDF
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
相關操作文章: 如何在Razor頁面中將CSHTML轉換為PDF
如何將MVC視圖轉換為PDF
使用MVC模式的團隊可以直接從其現有的視圖和控制器生成PDF。 安裝MVC Core擴展包,然後使用您的視圖路徑和模型調用RenderRazorViewToPdf; IronPDF處理Razor渲染管線並輸出完成的PDF。
這對於報告、發票以及任何在瀏覽器中已經設計和測試的頁面特別有用。 生成的PDF保存了完整的視圖輸出,包括佈局頁面和局部視圖。
Install-套件 IronPdf.Extensions.Mvc.Core
首先,在您的Program.cs中註冊IRazorViewRenderer服務,以便您的控制器可以注入它:
using IronPdf.Extensions.Mvc.Core;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
using IronPdf.Extensions.Mvc.Core;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
Imports IronPdf.Extensions.Mvc.Core
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
' Register the Razor view renderer for IronPDF
builder.Services.AddSingleton(Of IHttpContextAccessor, HttpContextAccessor)()
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
然後在您的控制器動作中,大宗運送員並範按旅行
using IronPdf;
using IronPdf.Extensions.Mvc.Core;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using IronPdf.Extensions.Mvc.Core;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports IronPdf.Extensions.Mvc.Core
Imports Microsoft.AspNetCore.Mvc
Public Class ReportController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
' Inject the view renderer via constructor
Public Sub New(viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
End Sub
Public Function Download() As IActionResult
Dim reportModel = New With {.Title = "Quarterly Report", .Total = 1250.0}
Dim renderer = New ChromePdfRenderer()
' Render an MVC View with model data to PDF
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Report.cshtml", reportModel)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
相關操作文章: 如何在ASP.NET Core MVC中將視圖轉換為PDF
2. 如何配置HTML到PDF設定
就操作PDF文件而言,IronPDF通過實裁可能ChromePdfRenderer.RenderingOptions對於渲染的PDF提供廣泛的自定義功能。
| 設定 | 描述 | 範例 |
|---|---|---|
紙張大小
|
設置現有 PDF 的頁面尺寸(A4、信函、法律格式等等) |
PdfPaperSize.A4
|
頁面方向
|
設置現有PDF的縱向或橫向 |
PdfPaperOrientation.Landscape
|
上/下/左/右
|
以毫米設定頁面邊距(預設:25毫米) | 25 |
Css媒體型別
|
用于HTML轉換為PDF的螢幕或列印CSS |
PdfCssMediaType.Print
|
列印HTML背景
|
包括背景色/圖片(預設:true) | true |
EnableJavaScript
|
在渲染HTML內容之前執行JavaScript | true |
WaitFor.RenderDelay
|
動態HTML內容的等待時間(毫秒) | 500 |
請參考以下程式碼段以獲取操作PDF文件的完整配置範例:
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
' Generate PDFs with all settings applied to HTML content
Dim htmlContent As String = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>"
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
相關操作文章:
| 自定義PDF轉換 | 優化PDF佈局 |
|---|---|
如何設置自定義HTTP標頭、Cookies和登錄憑證
當渲染需要身份驗證或特定請求元資料的URL時,IronPDF允許您將登錄憑証、會話cookie和HTTP頭部包含在請求中。這樣便能將公司內部儀表板、受限制報告或通過API生成的頁面直接渲染爲PDF,無需單獨獲取HTML。
對於基本或NTLM驗證,請在渲染器上設置LoginCredentials物件。 對於基於令牌或基於會話的存取,透過RenderUrlAsPdf。
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword"
}
' Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123"
' Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
相關操作文章: 在登錄認證後渲染PDF |自定義HTTP請求標頭
如何以代理進行PDF渲染配置
當渲染HTML載入在公司代理後面的外部資源時,以RenderHtmlAsPdf()參數將代理地址傳遞。 這是一個方法參數,而非ChromePdfRenderOptions上的一個屬性,因此這是在每次渲染呼叫時設置,而非對於渲染器實例的設置。
對於認證代理,將憑证直接嵌入URL中使用http://user:pass@host:port格式。 在內,中對密碼中的特殊字元進行URL編碼,使用Uri.EscapeDataString()。
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter, not a render option
var pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter, not a render option
var pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Proxy is the third parameter, not a render option
Dim pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath:=Nothing,
proxy:="http://proxy.co/rp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
注意RenderUrlAsPdf()不接受代理參數。 要在代理後渲染活動URL,調用配置RenderHtmlAsPdf()設置代理參數以供資源載入。
相關操作文章: 如何為PDF渲染配置代理伺服器
3. 如何使用高級PDF生成和安全功能
透過高級模板化、非同步操作及安全功能來解鎖企業級的HTML到PDF轉換能力。 這些PDF操作方法讓您的PDF文件能夠批量建立、保護機密PDF文件以及確保文件真實性,將HTML轉換為專業PDF格式時。
如何生成批量PDF建立的HTML模板
基本的批量PDF建立
批量生成PDF文件對於有效生成多個個性化PDF文件至關重要。 對於基本情況, C#中的String.Format方法最佳用於簡單的PDF操作。
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
' Simple HTML templating with String.Format
Dim htmlTemplate As String = String.Format("<h1>Hello {0}!</h1>", "World")
' Results in HTML content: <h1>Hello World!</h1>
對於需要生成PDF文件的較长模板,請在HTML內容中使用占位符替換:
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-16.cs
using IronPdf;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
Imports IronPdf
' Define reusable HTML template for PDF files
Dim htmlTemplate As String = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>"
' Customer names for batch PDF conversion processing
Dim names As String() = {"John", "James", "Jenny"}
' Create personalized PDF documents for each customer
Dim renderer As New ChromePdfRenderer()
For Each name In names
' Replace placeholder with actual data in HTML string
Dim htmlInstance As String = htmlTemplate.Replace("[[NAME]]", name)
' Generate personalized PDF document from HTML content
Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
' Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf")
Next
使用Handlebars.NET進行HTML到PDF模板化
對於在將HTML轉換為PDF時具有迴圈和條件邏輯的復雜模板,利用Handlebars.NET進行高級模板化來生成包含動態HTML內容的PDF文件。
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-套件 Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-套件 Handlebars.NET
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-21.cs
using HandlebarsDotNet;
using IronPdf;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Compile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
Imports HandlebarsDotNet
Imports IronPdf
' Define Handlebars template with placeholders for HTML content
Dim source As String =
"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>"
' Compile template for reuse in PDF conversion
Dim template = Handlebars.Compile(source)
' Create data object (can be database records) for HTML to PDF directly
Dim data = New With {
.title = "Monthly Report",
.body = "Sales increased by 15% this month."
}
' Merge template with data to create HTML content
Dim htmlResult = template(data)
' Convert templated HTML to PDF using the PDF converter
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlResult)
pdf.SaveAs("monthly-report.pdf")
相關操作文章: 在GitHub上了解有關Handlebars.NET的更多資訊
控樂排行榜
生成的篇章-管理PDF確保專業閱讀的佈局當你貝HTML片段。運用CSS來控制打破PDF檔全新的頁面分割。<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
如何使用非同步方法生成PDF
IronPDF提供企業級性能,對於生成PDF文件的需求提供全面的非同步執行和多執行緒支援。
using IronPdf;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> html模板)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = html模板.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
using IronPdf;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> html模板)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = html模板.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Public Class PdfGenerationService
' Async method for non-blocking PDF generation from HTML content
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer As New ChromePdfRenderer()
' Async HTML to PDF conversion preserves thread pool
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
' Return PDF files as byte array for web responses
Return pdf.BinaryData
End Function
' Concurrent batch PDF generation for multiple HTML strings
Public Async Function GenerateMultiplePdfsAsync(html模板 As List(Of String)) As Task
Dim renderer As New ChromePdfRenderer()
' Create parallel conversion tasks to generate PDF documents
Dim tasks = html模板.Select(Function(html) renderer.RenderHtmlAsPdfAsync(html))
' Await all PDF conversions simultaneously
Dim pdfs = Await Task.WhenAll(tasks)
' Save generated PDF files from HTML content
For i As Integer = 0 To pdfs.Length - 1
pdfs(i).SaveAs($"document-{i}.pdf")
Next
End Function
End Class
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
- 使用64位系統,PDF生成性能最佳。
- 確保足夠的伺服器資源可用於生成PDF文件(避免使用能力不足的免費等級)
- 複雜JavaScript於HTML內容中給與適足RenderDelay。
- 盡可能重用
ChromePdfRenderer實例。 - 針對批量/非同步操作利用最近的内存修補以減少資源使用。 ;測試重複的頁眉/頁腳中的小文件大小減少。
相關操作文章: 如何使用非同步與多執行緒生成PDF
如何新增進階安全功能
如何為.NET中的PDF文件新增密碼保護
在將HTML內容轉換為受保護的PDF格式時,使用密碼和權限來保護敏感生成的PDF和詞案發送的文件
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-24.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowQuality;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML to PDF with security
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>")
' Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123" ' Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456" ' Password to modify PDF files
' Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowQuality
' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
如何為PDF文件新增數位簽章
新增密碼符號以確保證書文件真實性,當您從的HTML內容生成PDF文件。 簽署後,您可以進行驗證署數位簽章,並閱讀簽署者的證書進行審計與合(G合並查覈)。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-25.cs
using IronPdf;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval"
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPdf
Imports IronPdf.Signing
Dim renderer As New ChromePdfRenderer()
' Generate PDF from HTML page
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")
' Create digital signature with certificate for PDF files
Dim signature As New PdfSignature("certificate.pfx", "password") With {
.SigningContact = "legal@company.com",
.SigningLocation = "New York, NY",
.SigningReason = "Contract Approval"
}
' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
相關操作文章: 如何數字簽署PDF文件
如何將HTML表單轉換為可填寫的PDF
要將標準HTML表單元素轉換為互動性、可填寫的PDF表單字段,啟用CreatePdfFormsFromHtml渲染選項。 這可以作為生成的PDF文件中的可編輯欄位保存文字輸入、核取框、單選按鈕以及下拉選單。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-26.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim htmlForm As String = "
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlForm)
pdf.SaveAs("onboarding-form.pdf")
name屬性。] 重複的名稱會導致在生成的PDF中共享相同的值,當使用者填寫表單時會出現意外行為。)]
相關操作說明文章: 如何在C#中建立可填寫的PDF表單
如何將特定HTML元素轉換為PDF
要渲染頁面中的特定部分而不是整個文件,需在渲染之前隔離目標元素。 最直接的方法是使用WaitFor.HtmlQuerySelector()確保元素在提取前存在。 以下程式碼片段保留document.head,以便樣式表和字體可以繼續使用; 如果不執行該步驟,依賴於父選擇器的CSS規則將在提取的PDF中丟失。
對於可存取原始HTML的伺服器端場景,使用如AngleSharp的解析器提取目標片段並將其傳遞給RenderHtmlAsPdf(),無需執行JavaScript。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-27.cs
using IronPdf;
// Full page HTML containing the target element
string fullPageHtml = @"
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.Javascript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
Imports IronPdf
' Full page HTML containing the target element
Dim fullPageHtml As String = "
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
' Replace the body with only the target element
renderer.RenderingOptions.Javascript = "
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
"
' Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000)
Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
相關操作說明文章: 如何將HTML元素和部分頁面轉換為PDF
如何將已驗證的頁面渲染為PDF
有三種方法可以渲染需要身份驗證的頁面:網路登錄憑證,自定義Cookie和HTTP請求頭。 這些涵蓋了將受保護的網頁內容轉換為PDF時的最常見身份驗證場景。
登錄憑證
在將受保護的URL轉換為PDF時,對於基本、摘要或NTLM身份驗證,使用ChromeHttpLoginCredentials。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-28.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports");
pdf.SaveAs("authenticated-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure network authentication
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword",
.AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
}
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports")
pdf.SaveAs("authenticated-report.pdf")
Cookies和HTTP請求頭
對於基於令牌或會話的身份驗證,請將自定義的Cookie和HTTP請求頭直接附加到渲染請求中。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-29.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.HttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Add session cookies
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123token"
renderer.RenderingOptions.CustomCookies("authToken") = "bearer-xyz"
' Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.HttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
CustomCookies字典以渲染受保護的頁面。
相關操作說明文章: 如何將作為身分驗證後的HTML轉換為PDF
4. 如何在雲平台上部署HTML到PDF
在雲環境中部署HTML到PDF轉換需要對無頭渲染,臨時文件路徑及資源分配進行特定配置。 這部分涵蓋了最常見的雲平台和IronPDF的容器化部署。
| 平台 | 最低資源 | 套件 | AutoConfig | 臨時路徑 | 關鍵注意事項 |
|---|---|---|---|---|---|
| Azure App Service | B1階層(基本) |
IronPdf.Linux
|
true
|
/tmp | 免費/共享層失敗(無GPU,記憶體低) |
| Azure Functions (Windows) | B1階層 |
IronPdf
|
true
|
/tmp | 取消勾選"從包文件運行" |
| AWS Lambda | 512 MB / 60s 超時 |
IronPdf.Linux
|
true
|
/tmp(必需) | 預設文件系統為只讀 |
| Docker (Ubuntu/Debian) | 視影像而定 |
IronPdf.Linux
|
false
|
影像預設 |
設置false(Dockerfile處理依賴)
|
如何在Azure上部署
在部署到Azure Functions或App Service時,禁用GPU加速並確保您的托管層提供足夠的記憶體來進行基於Chrome的渲染。 在任何渲染調用之前,在應用程式啟動時新增這些設置。
Azure沙盒以無頭運行,無GPU存取,且免費/共享層(F1,D1)缺乏Chrome所需的資源。 至少目標在B1(基本)階層或更高。
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-30.cs
using IronPdf;
// Azure sandboxes block GPU access, always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
Imports IronPdf
' Azure sandboxes block GPU access, always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
相關入門指南: 如何在Azure上部署IronPDF
如何在AWS Lambda上部署
AWS Lambda需要基於Docker的部署以進行基於Chrome的PDF渲染。 預設的Lambda文件系統是只讀的,因此所有臨時和部署路徑必須指向/tmp。
在任何渲染調用之前,在您的功能處理器的頂部配置這些設置。
using Amazon.Lambda.Core;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
using Amazon.Lambda.Core;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
Imports Amazon.Lambda.Core
Imports IronPdf
Public Class PdfFunction
Public Function FunctionHandler(input As String, context As ILambdaContext) As String
' Lambda's only writable directory
Dim tmpPath As String = "/tmp/"
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
context.Logger.LogLine("Rendering PDF...")
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(input)
' Save to /tmp before uploading to S3 or returning
Dim outputPath As String = $"{tmpPath}output.pdf"
pdf.SaveAs(outputPath)
Return outputPath
End Function
End Class
相關入門指南: 如何在AWS Lambda上部署IronPDF
如何使用Docker部署
對於Docker部署,使用IronPdf.Linux NuGet套件來減少影像大小並避免運行時資產下載。 此套件包括優化的Linux原生二進制文件,適合容器化環境。
當Dockerfile已經通過LinuxAndDockerDependenciesAutoConfig = false。 在這種情況下,運行時自動安裝是多餘的,可能導致權限錯誤或更長的冷啟動。
| 平台 | 套件 | 關鍵配置 |
|---|---|---|
| Ubuntu 22.04 / Debian |
IronPdf.Linux
|
預設,開箱即用 |
| Alpine Linux |
IronPdf.Linux
|
在Dockerfile中通過apk安裝chromium |
| Amazon Linux 2 |
IronPdf.Linux
|
Use LinuxAndDockerDependenciesAutoConfig = true
|
| Windows容器 |
IronPdf
|
不需要額外配置 |
一個Ubuntu/Debian基礎影像的最小化多階段Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out
FROM mcr.microsoft.com/dotnet/aspnet:10.0
# Install Chrome dependencies for PDF rendering
RUN apt-get update && apt-get install -y \
libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
libcairo2 libasound2 libxshmfence1 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out .
ENTRYPOINT ["dotnet", "MyApp.dll"]
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-33.cs
using IronPdf;
// Dependencies handled by Dockerfile apt-get, disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
' Dependencies handled by Dockerfile apt-get, disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
' No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>")
pdf.SaveAs("output.pdf")
已在IronPDF v2026.6.1 · .NET 10 · 2026年6月上對此進行驗證。
相關入門指南: 如何使用IronPDF與Docker
5. 比較IronPDF與其他.NET PDF程式庫
IronPDF是許多團隊進行C# PDF生成時的首選解決方案,因為其強大的Chromium驅動渲染引擎,直觀的API和頻繁的產品改進。 讓我們比較IronPDF與其他PDF轉換器,以找到滿足您PDF生成需求的最佳選擇。
免費和開放源程式碼替代方案
一些可能會考慮的工具:
- PuppeteerSharp: MIT許可的Puppeteer的.NET端口,驅動無頭Chrome。
- Playwright for .NET: 微軟的Apache-2.0自動化程式庫,亦基於Chromium。
- wkhtmltopdf: 一個長期存在的獨立HTML到PDF二進制。
- 原生瀏覽器路徑: 直接從無頭瀏覽器或OS列印驅動程式列印到PDF。
首先值得區分的是:PuppeteerSharp和Playwright是瀏覽器自動化框架而非PDF程式庫。 它們在真實的Chromium頂層提供列印到PDF的調用,因此渲染保真度非常高,但PDF特有的如頁眉和頁腳,加密,簽名和PDF/A,以及瀏覽器的生命週期,則留給開發者:發布和更新Chromium二進制文件,處理並發性和崩潰恢復,手動構建文件結構。 Playwright增加了一個早期值得了解的限制:其PdfAsync僅在無頭Chromium中運行(而不是Firefox或WebKit),因此部署必須保證無頭Chrome,這在容器和無伺服器中很重要。
wkhtmltopdf又不一樣。 該項目於2024年被歸檔,最終版(0.12.6,2020年)運行的是~2012 Qt WebKit引擎,不再接收到安全修補,包括一個未修補的嚴重SSRF建議(CVE-2022-35583); 對於受信任的輸入中的簡單靜態文件仍可用,但對於公開輸出的文件則不合適。 原生瀏覽器路徑根本不需要程式庫,但代價是任何.NET原生的PDF API或伺服器端自動化的真正控制。
對於原型,內部工具和零預算工作,這些都是合法的選擇。 下面的比較涵蓋了商業程式庫的功能特徵。
快速決策矩陣:IronPDF對比其他.NET PDF轉換器
| 解決方案 | 何時使用 | 最適合 |
|---|---|---|
| IronPDF | 將現代網站/HTML轉換為PDF,精確的視覺保真度。 | 需要可靠HTML渲染引擎,動態內容和專業支援的企業應用。 |
| wkhtmltopdf | 非關鍵應用中簡單的HTML轉換,可接受過時的渲染。 | 使用傳統HTML/CSS的基礎文件生成。 |
| Syncfusion | 當已經投資於Syncfusion生態系統或有資格獲得免費社區許可。 | 使用多個Syncfusion組件的組織。 |
| Aspose.PDF | 當HTML渲染質量不太重要時的複雜PDF操控。 | 超出HTML轉換的廣泛PDF編輯功能。 |
相關比較:
詳細比較:IronPDF對比其他.NET PDF轉換器
Show the full feature-by-feature table (10 .NET PDF libraries)
| 功能 | ★ Recommended IronPDF | wkhtmltopdf | iText | Aspose.PDF | Syncfusion | Apryse | SelectPdf | Spire.PDF | PDFSharp | QuestPDF |
|---|---|---|---|---|---|---|---|---|---|---|
| 渲染和轉換 | ||||||||||
| 渲染準確性 | 像素級精準 最佳 | 列印樣式 | 僅限程式化 | 良好 | 良好 | 良好 | 良好 | 低層次 | 不渲染 | Code-First布局 |
| HTML5支持 | Full | 過時 | 附加功能 | Partial | Full | Module | Full | 有限 | No | 沒有(Code-First) |
| CSS3支持 | Full | 有限 | 附加功能 | Partial | Full | Module | Full | 有限 | No | 沒有(Code-First) |
| JavaScript執行 | Full Best | No | No | 有爭議 | 有限 | 有限 | 有限 | 非常有限 | No | No |
| HTML→PDF(現代布局) | 嵌入式Chromium 最佳 | Qt WebKit(過時) | 付費附加 | 部分;JS有爭議 | Blink 引擎 | 需要模塊 | 完整的HTML→PDF | 基於圖像 | No | 不是HTML渲染器 |
| PDF→圖像渲染 | 是 | No | 是 | 是 | 是 | 是 | No | 有限 | No | 僅限自己文件 |
| 文件操作 | ||||||||||
| 程式化生成PDF | 是 | No | 是 | 是 | 是 | 是 | HTML Only | 是 | Basic | 是(流暢API) |
| 合併,拆分和重新排列 | 是 | No | 是 | 是 | 是 | 是 | 是 | 是 | 有限 | 是 |
| 頁眉 / 頁腳 / 頁碼 | HTML/文字/圖像 最佳 | 有限 | 是 | 通過事件 | 通過事件 | 是 | 模板 | 手動 | 僅手動 | 一流插槽 |
| 水印和蓋章 | 文字和圖像 | No | 是 | 是 | 是 | 是 | 是 | 有限 | No | 是(覆蓋) |
| 從PDF中提取文字 | 是 | No | 是 | 是 | 是 | 是 | 是 | 是 | Basic | No |
| 掃描PDF的OCR | 通過IronOCR 整合 | No | 附加功能 | 獨立產品 | 附加功能 | 附加功能 | No | 變通方法 | No | No |
| 安全性和合規性 | ||||||||||
| 數位簽名 | 是 | No | 是 | 是 | 是 | 樣例程式碼 | 是 | No | No | 未記錄 |
| PDF/A合規性 | 是 (PDF/A-3B) | No | Full PDF/A | 驗證和建立 | 需要原生SDK | PDF A合規 | No | 是 | 有限 | PDF/A-2x & 3x |
| 平台和開發者體驗 | ||||||||||
| 跨平台 | Windows · Linux · macOS All 3 | 依賴於二進制 | .NET標準2.0 | Linux額外設置 | Blink + .NET伺服器 | 原生SDK | 僅限Windows * | 有限的Linux文件 | 專注於Windows | Win/Linux/macOS |
| 雲和Docker部署 | Azure · AWS · Docker Best | 複雜;舊技術 | 多個包 | 部分;容器 | Blink 需要額外 | 原生依賴 | 僅限Windows | 有限的資訊 | 簡單;輕量 | Docker/K8s; Local |
| 支援和文件 | ||||||||||
| 文件 | 豐富 + 複製/粘貼最佳 | 部分CLI文件 | 豐富;知識庫 | 廣泛;GitHub | 幫助中心 | 跨語言目錄 | 入門指南 | 程式指南 | 社區指南 | 結構化 + 陪伴應用 |
| 開發者支援 | 24/7工程師 最佳 | 僅限社區 | 包含訂閱 | 論壇 + 付費 | 24/5直接追蹤 | 商業 | 電子郵件 | 論壇 + 電子郵件 | 僅限社區 | Community + GitHub |
| 授權和定價 | ||||||||||
| 授權模式 | 永久 | 開源 | AGPL / 訂閱 | 永久 | 年訂閱 | 自定義 / 消費 | 永久 | 永久 | 免費(MIT) | MIT 免費 / 付費層 |
| 起始價格 | $liteLicense Perpetual · 1 Developer | style="color:#16a34a">Free | ~K/年 自定義報價 | ,175+ Per Developer | 自定義報價 免費 <M(社區) | ~K+/年 自定義報價 | 9+ Perpetual | 9 永久 · 1年更新 | style="color:#16a34a">Free | style="color:#16a34a">Free Community MIT <M |
| 免費試用 | 30天 · 完整功能 無限制 | 不適用(免費) | 30天 | 是(水印) | Community <$1M Rev | 是 | 社區(5頁) | 免費(10頁) | 不適用(免費) | N/A (MIT Free <$1M) |
| 定價透明度 | 已發布且清晰 最佳 | 開源 | Complex AGPL | 多層 | 聯繫以獲取報價 | 無公開定價 | 已發布 | 已發布 | MIT; 無限制 | MIT; 信任基礎 |
實際HTML轉PDF轉換比較:渲染Reddit的首頁
為了評估輸出PDF質量,我們使用Reddit的首頁對這些程式庫進行了測試,該頁面包含動態網頁內容,現代CSS和JavaScript HTML元素。 此頁面作為輸出PDF生成的理想測試案例。

IronPDF

IronPDF提供像素完美的結果,準確保留了所有動態網頁內容,現代網頁字體樣式和交互元素,與Chrome中顯示的完全相同,僅需幾行程式碼。
Syncfusion

Syncfusion轉換的PDF大多部分和樣式缺失,特別是動態內容。 最初被Reddit的安全措施阻擋。 獲得更好結果需要廣泛的命令行調整,但輸出仍不完整。
Aspose.PDF

Aspose.PDF先需要手動下載HTML(不支持直接URL)。 轉換後,輸出缺乏適當的格式,幾乎缺少所有內容區域,對於動態內容的現代網頁不太合適。
wkhtmltopdf

wkhtmltopdf完成迅速,但生成了一個平淡,靜態的頁面,缺少關鍵內容如即時更新,動態元素和互動部分。 這證明了wkhtmltopdf不相容現代的,由JavaScript驅動的網站。
對性能和輸出PDF質量的結論
對於需要可靠的HTML到PDF轉換器的.NET開發人員來說,IronPDF以最小程式碼,簡易的API和頻繁的產品增強脫穎而出。
在網頁內容的現實測試中,它提供了最快,最準確的結果,而Syncfusion落後,Aspose需要額外步驟,wkhtmltopdf忽略了現代樣式。 IronPDF提供了速度,準確性和簡易度的最佳平衡,適合當今的HTML到PDF轉換工作流程。
總結
本指南涵蓋了將HTML轉換為.NET中的PDF所需的一切:從基本字串轉換到異步處理,數位簽名和批量生成等高級功能。 我們演示了三種轉換方法,基本配置,高級功能和安全設置,並通過對動態文件生成的現實測試比較了IronPDF與其他程式庫。
儘管競爭對手在處理現代網站時遇到了困難或需要複雜的變通方法,IronPDF以最小的程式碼和強大的渲染引擎提供了完美的結果。
準備簡化您的PDF工作流程,並僅使用幾行程式碼來體驗多功能的PDF生成嗎? 通過NuGet庫管理器安裝IronPDF(或在Visual Studio中選擇管理NuGet庫)並立即將您的第一個HTML轉換為PDF。
開始您的免費30天試用,進行無水印的生產測試。 靈活的授權從$999開始,提供透明的團隊定價,可根據您的需求擴展。
6. 疑難排解與技術支援
在HTML到PDF轉換中遇到以下錯誤? IronPDF通過https://ironpdf.com/上的聊天小工具提供7X24小時工程師支援。
快速修復常見錯誤
- 首次渲染缓慢? 正常。 Chrome初始化需要2–3秒,然後加快速度。
- 雲問題? 至少使用Azure B1或相等的資源。
- 資產丟失? 設置基本路徑或嵌入為base64。
- 元素缺失? 新增
RenderDelay用於JavaScript的執行。 - 渲染時的記憶體? 更新到最新版本(v2026.6.1),修復HTML到PDF,印章和頁眉/頁腳。
- 表單域問題(例如長文字域,複選框)? 在v2025.7.17中修復; 確保複選框名稱唯一。
- 自定義頁眉/頁腳剪切或特殊字元損壞? 在v2025.8.8中解決; 測試單詞換行和元資料。
24/7從構建IronPDF的工程師那裡獲得幫助
下一步
常見問題
如何在C#中將HTML轉換為PDF?
您可以使用基於Chrome渲染的程式庫將HTML、CSS3和JavaScript轉換為像素完美的PDF。像IronPDF這樣的工具允許您從URLs、HTML字串或檔案進行渲染,同時支援標頭、認證和列印設置。
什麼是.NET的最佳HTML到PDF程式庫?
最佳程式庫應支援準確的Chrome渲染、跨平台部署和企業功能。IronPDF涵蓋了這些所有功能,可在Windows、Linux、macOS和Docker上運行,並支援安全性、簽名、合規性和可擴展的.NET應用程式。
什麼是.NET的免費HTML到PDF選項?
開源路徑如wkhtmltopdf、PuppeteerSharp和Playwright以無成本將HTML轉換為PDF,但以便利交換維護——較舊的渲染引擎、捆綁的瀏覽器二進位檔或手動伺服器配置。IronPDF是商業化的,擁有30天免費試用,具備完整功能且在開發過程中無浮水印;生產授權從$999起。查看定價 →
如何使用C#將HTML字串轉換為PDF?
要將HTML字串轉換為PDF,使用ChromePdfRenderer類及其RenderHtmlAsPdf方法。將您的HTML字串傳遞給此方法,然後使用SaveAs保存PDF。
如何將網頁URL轉換為C#中的PDF文件?
您可以使用RenderUrlAsPdf方法直接將網頁URL轉換為PDF,以保持樣式、圖片和互動元素如表單和連結。
如何在C#中將HTML文件轉換為PDF?
使用ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html")將本地HTML文件轉換為PDF。IronPDF自動解析所有資產相對路徑(圖片、CSS、JS)。
如何將ASP.NET Razor Pages或MVC Views轉換為PDF?
IronPDF提供專用的擴展包—IronPdf.Extensions.Razor用於Razor Pages和IronPdf.Extensions.Mvc.Core用於MVC Views。使用RenderRazorToPdf或RenderRazorViewToPdf與依賴注入一起直接從控制器轉換視圖為PDF。查看Razor指南 →
如何確保JavaScript內容在PDF中正確渲染?
通過設置RenderingOptions.EnableJavaScript = true啟用JavaScript渲染,並使用RenderingOptions.WaitFor.RenderDelay新增渲染延遲以確保動態內容在轉換前完全載入。查看WaitFor指南 →
為什麼我的HTML到PDF輸出是空白或缺少內容?
空白或部分PDF幾乎總是表示頁面在捕獲時未完成渲染,或其資產未載入。對於動態或JavaScript驅動的內容,設置RenderingOptions.EnableJavaScript = true並新增WaitFor.RenderDelay(或WaitFor.HtmlQuerySelector)以便Chrome先完成繪製。如果本地圖片、CSS或字型缺失,則傳遞BaseUrlPath以正確解析相對路徑。查看WaitFor指南 →
在C#中新增PDF文件的標頭和頁尾的最佳方法是什麼?
使用TextHeaderFooter類進行簡單文字標頭和頁尾,或者使用HtmlHeaderFooter類進行更複雜的HTML內容。您可以包括動態佔位符如{page}、{total-pages}和{date}以自動生成內容。查看標頭和頁尾指南 →
如何在C# .NET的PDF輸出中管理分頁?
通過在列印媒體型別的CSS塊中使用CSS屬性如page-break-after: always和page-break-inside: avoid控制PDF中的分頁。查看分頁指南 →
有哪些選項可用於設置PDF中的紙張大小和方向?
使用RenderingOptions.PaperSize設置紙張大小(選項包括A4、Letter、Legal等)和RenderingOptions.PaperOrientation設定方向為縱向或橫向。還支援以毫米或英寸為單位的自訂大小。查看紙張大小指南 →
我可以將已認證的網頁轉換為PDF嗎?
可以。IronPDF支援Cookie、自訂HTTP標頭和基於表單的認證。通過ChromePdfRenderer.RenderingOptions.CustomCookies設置Cookie,或傳遞身份驗證標頭進行基於令牌的認證。還支援Windows NTLM和Kerberos認證。查看Cookie指南 →
我可以從單個HTML範本建立多個PDF嗎?
可以,建立包含佔位符的HTML範本,然後使用字串替換或模板庫如Handlebars.NET。將佔位符替換為實際值,並使用RenderHtmlAsPdf生成PDF。
生成的PDF文件可以設置密碼來保護嗎?
可以,您可以使用SecuritySettings屬性設置使用者和擁有者密碼,配置如列印和複製等許可權,並通過SecuritySettings.EncryptionAlgorithm應用AES256加密。查看加密指南 →
我可以從HTML生成符合PDF/A標準的文件嗎?
可以。IronPDF支援PDF/A-1b、PDF/A-2b、PDF/A-3b和PDF/UA標準,符合檔案保存和無障礙合規性,大多數HTML到PDF轉換器不提供。查看PDF/A指南 →
如何優化生成大量PDF的效能?
通過使用非阻塞操作的異步方法如RenderHtmlAsPdfAsync來優化效能。重複使用ChromePdfRenderer實例,使用Task.WhenAll同時處理多個PDF,並確保您的伺服器資源充足且運行在64位系統上。查看異步指南 →
如何合併多個PDF或在文件中包含封面頁?
使用靜態PdfDocument.Merge方法合併多個PDF。單獨生成您的封面頁並將其與主文件合併以建立完整的PDF。查看合併指南 →
我可以在Azure、AWS或Docker上部署IronPDF嗎?
可以。IronPDF可運行於Azure App Service、Azure Functions、AWS Lambda和基於Linux的Docker容器上。每個平台都有專用的設置指南和Docker映像。查看Azure指南 → · 查看AWS指南 → · 查看Docker指南 →
.NET 10相容性: IronPDF是否立即支援.NET 10?
是的 — IronPDF完全支援.NET 10。根據IronPDF的發佈說明,該程式庫已準備好用於.NET 10專案,無需額外配置。無論您是使用網頁、控制台、桌面或微服務應用程式,IronPDF都可以「開箱即用」與.NET 10一起工作。
IronPDF是免費使用的嗎?
IronPDF提供30天免費試用,具備完整功能且在開發中無浮水印。商業用途需要從$999起的商業授權。Lite、Plus、Professional和Enterprise級別授權可用。查看定價 →
該程式庫的渲染質量與其他選項如wkhtmltopdf相比如何?
此程式庫使用現代Chrome渲染引擎生成像素完美的PDF,而wkhtmltopdf使用過時的WebKit引擎。不需要伺服器執行檔,支援完整的JavaScript/CSS3,定期更新並提供專業支持。
為什麼應該選擇此庫而不是PDFSharp進行HTML到PDF轉換?
PDFSharp缺乏內建的HTML到PDF轉換,需要復雜的變通辦法。此程式庫提供直接的HTML/URL/文件轉換,具有高級API,支援現代網頁技術,並定期更新提供專業支持。查看PDFSharp比較 →
這種程式庫比iTextSharp更適合作為HTML轉換選擇的原因是什麼?
iTextSharp的免費版本不支援本機HTML到PDF轉換,且API較為複雜。此程式庫提供無縫的HTML轉換,具備直觀的API、全面的CSS3/JavaScript支援,並且沒有AGPL授權限制。查看iTextSharp比較 →
該程式庫的渲染質量與Aspose.PDF相比如何?
此程式庫生成像素完美的Chrome質量PDF,而Aspose.PDF常常漏掉樣式和動態內容。Aspose需要手動下載HTML進行URL轉換,但此程式庫直接轉換URLs具有更高的準確性。查看Aspose比較 →
為什麼可能會選擇此程式庫而不是Syncfusion PDF?
雖然Syncfusion功能強大,但此程式庫的優化Chrome引擎運行更快,並更有效處理動態內容。它提供了一個更簡單的API和額外的功能,如OCR和條碼生成。查看Syncfusion比較 →

