C# 中的 Chrome PDF 渲染引擎:HTML轉PDF
IronPDF 的 Chrome 渲染引擎使 C# 開發人員能夠使用 Chromium 強大的渲染技術將 HTML 轉換為高品質的 PDF。 使用利用 Google Chrome 渲染引擎的程式碼建立發票、報告或文檔,確保 PDF 保持與 HTML 完全相同的外觀,並完全支援現代 Web 標準。
Chromium是Google開發的開源網頁瀏覽器專案。 它是 Chrome、Microsoft Edge、Opera 和其他瀏覽器的基礎。 IronPDF利用 Chromium 的 Blink 渲染引擎,確保在.NET應用程式中將HTML 轉換為 PDF時達到像素級的精確度。
快速入門:使用IronPDF在幾秒鐘內將 HTML 渲染為 PDF
使用 IronPDF 的 Chrome 渲染引擎,快速將 HTML 轉換為 PDF。 只需幾行程式碼,即可利用 Chromium 的技術產生像素級完美的 PDF 文件。 本指南示範了使用IronPDF渲染 HTML 內容的簡易性,重點在於易用性和快速實現。 IronPDF可與現有的.NET專案無縫集成,為現代 Web 和應用程式開發提供可靠的高效能解決方案。
-
使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf
PM > Install-Package IronPdf -
複製並運行這段程式碼。
using IronPdf; // Create a new ChromePdfRenderer instance var renderer = new ChromePdfRenderer(); // Render HTML string to PDF var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>"); // Save the PDF to disk pdf.SaveAs("HelloWorld.pdf"); -
部署到您的生產環境進行測試
今天就在您的專案中開始使用免費試用IronPDF
最簡工作流程(5個步驟)
- 下載 C# 庫以使用 Chrome PDF 渲染引擎
- 利用直覺的 API 和建構結構
- 產生像素級完美的 PDF 文件
- 使用非同步操作以提高效能
- 了解功能清單中的下一個功能是什麼
IronPDF Chrome渲染引擎的主要優勢是什麼?
高品質渲染為何如此重要?
最新的"Blink!"HTML渲染提供與Chrome相同的渲染或增強渲染(提供比Chrome更準確、更易於編碼的結果)。 在產生用於專業用途的 PDF 檔案時,渲染品質直接影響文件的可讀性、品牌形象和使用者體驗。 IronPDF 的 Chrome 渲染引擎可確保複雜的佈局、現代 CSS 功能和動態JavaScript內容能夠準確渲染,與瀏覽器顯示相符。
性能提升了多少?
提供輕鬆的多執行緒和非同步功能,可根據需要使用盡可能多的 CPU 核心。 對於 SaaS 和高負載應用,與直接使用瀏覽器和 Web 驅動程式相比,效能預計可提高 5-20 倍。 在批次處理場景或回應時間至關重要的高流量 Web 應用程式中產生 PDF 報告時,效能提升尤為明顯。
哪些技術得到全面支援?
完全支援JavaScript 、響應式佈局和CSS3 。
Azure享有一等公民地位。 它就是管用。
持續維護並改善對.NET 8、7、6、5、Core 和 Framework 4.6.2+ 的全面支援。
該引擎支援以下高級功能:
- 現代 CSS Grid 和 Flexbox 佈局
- 網頁字體和圖示字體
- SVG 圖形和 Canvas 元素
- 複雜的JavaScript框架(React、Angular、Vue.js)
- 媒體查詢與響應式設計 CSS動畫與過渡
對於使用Bootstrap、Flex 和 CSS 的開發人員來說, IronPDF提供全面的支持,確保樣式化的內容在 PDF 格式中完美呈現。
測試過程的可靠性如何?
該版本通過了1156 項綠色單元測試和整合測試(沒有紅色測試)。 此EAP版本與我們的正式版本一樣穩定,並且每天都在積極改進。 我們嚴格的測試流程涵蓋各種場景,包括複雜的 HTML 結構、不同的字元編碼、各種紙張尺寸以及生產環境中遇到的極端情況。
它是否支援無障礙標準?
使用 PDF(UA) 標記 PDF 標準產生可存取的 PDF。 這樣可以確保文件符合無障礙要求,並能被螢幕閱讀器正確讀取。 了解更多關於建立符合 PDF/UA 標準的文件以提高可訪問性的資訊。
我如何提供回饋?
我們歡迎您的回饋意見。 Contact support@ironsoftware.com with ideas or if you need help. Your feedback helps us prioritize features and improvements that matter most to our developer community.
在您的專案中實施
如何安裝IronPDF?
首先,使用NuGet套件管理器將IronPDF安裝到您的專案中 IronPdf。 安裝過程很簡單,可以根據您的開發環境使用不同的方法完成。
# Using Package Manager Console
Install-Package IronPdf
# Using .NET CLI
dotnet add package IronPdf
# Using PackageReference in your .csproj file
<PackageReference Include="IronPdf" Version="*" />
# Using Package Manager Console
Install-Package IronPdf
# Using .NET CLI
dotnet add package IronPdf
# Using PackageReference in your .csproj file
<PackageReference Include="IronPdf" Version="*" />
安裝完成後,在 C# 檔案的頂部加入對應的 using 語句:
using IronPdf;
using IronPdf;
Imports IronPdf
對於進階安裝方案,包括部署到 Azure或在 Docker 容器中執行,請參閱我們全面的安裝指南。
如何使用新的API?
我們並沒有破壞您目前使用的IronPDF C# 和 VB .NET API。 它將保留下來! 然而,舊式設計正在被更好的設計所取代,讓你擁有更大的控制權。 新的 API 提供了一種更直觀、更靈活的 PDF 生成方法,並增強了配置選項。
using IronPdf;
// Create a renderer with custom options
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Set paper size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Set HTTP credentials if needed for protected resources
renderer.RenderingOptions.HttpLoginCredentials = new IronPdf.HttpLoginCredentials()
{
Username = "yourUsername",
Password = "yourPassword"
};
// Render HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Professional Document</h1><p>Generated with IronPDF</p>");
pdf.SaveAs("ProfessionalDocument.pdf");
using IronPdf;
// Create a renderer with custom options
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Set paper size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Set HTTP credentials if needed for protected resources
renderer.RenderingOptions.HttpLoginCredentials = new IronPdf.HttpLoginCredentials()
{
Username = "yourUsername",
Password = "yourPassword"
};
// Render HTML to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Professional Document</h1><p>Generated with IronPDF</p>");
pdf.SaveAs("ProfessionalDocument.pdf");
Imports IronPdf
' Create a renderer with custom options
Dim renderer As New ChromePdfRenderer()
' Configure rendering options
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
' Set paper size and margins
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' Set HTTP credentials if needed for protected resources
renderer.RenderingOptions.HttpLoginCredentials = New IronPdf.HttpLoginCredentials() With {
.Username = "yourUsername",
.Password = "yourPassword"
}
' Render HTML to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Professional Document</h1><p>Generated with IronPDF</p>")
pdf.SaveAs("ProfessionalDocument.pdf")
有關渲染選項的更多信息,請參閱我們的詳細文件。
如何實現像素級完美 Chrome 渲染?
此範例將產生與最新版 Chrome 桌面瀏覽器的"列印到 PDF"功能像素級相符的 PDF 檔案。 Chrome 渲染引擎可確保您的 HTML 內容(包括複雜的 CSS 佈局和 JavaScript 渲染的元素)與在 Chrome 瀏覽器視窗中顯示的效果完全一致。
using IronPdf;
using System.IO;
// Create a Chrome PDF renderer
var renderer = new ChromePdfRenderer();
// Configure for pixel-perfect rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JavaScript to execute
// Load HTML from file
string htmlContent = File.ReadAllText("template.html");
// Include base URL for relative assets
renderer.RenderingOptions.BaseUrl = new Uri("file:///C:/your-project/assets/").AbsoluteUri;
// Render the HTML to PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Title = "Pixel-Perfect Document";
pdf.MetaData.CreationDate = DateTime.Now;
// Save the PDF
pdf.SaveAs("PixelPerfect.pdf");
using IronPdf;
using System.IO;
// Create a Chrome PDF renderer
var renderer = new ChromePdfRenderer();
// Configure for pixel-perfect rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Wait for JavaScript to execute
// Load HTML from file
string htmlContent = File.ReadAllText("template.html");
// Include base URL for relative assets
renderer.RenderingOptions.BaseUrl = new Uri("file:///C:/your-project/assets/").AbsoluteUri;
// Render the HTML to PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Title = "Pixel-Perfect Document";
pdf.MetaData.CreationDate = DateTime.Now;
// Save the PDF
pdf.SaveAs("PixelPerfect.pdf");
Imports IronPdf
Imports System.IO
' Create a Chrome PDF renderer
Dim renderer As New ChromePdfRenderer()
' Configure for pixel-perfect rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Print
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Wait for JavaScript to execute
' Load HTML from file
Dim htmlContent As String = File.ReadAllText("template.html")
' Include base URL for relative assets
renderer.RenderingOptions.BaseUrl = New Uri("file:///C:/your-project/assets/").AbsoluteUri
' Render the HTML to PDF
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Add metadata
pdf.MetaData.Author = "Your Company"
pdf.MetaData.Title = "Pixel-Perfect Document"
pdf.MetaData.CreationDate = DateTime.Now
' Save the PDF
pdf.SaveAs("PixelPerfect.pdf")
為確保完美渲染,請參考我們的Chrome HTML 調試指南以獲得最佳效果。
我應該考慮哪些改進措施?
我們建議使用 Iron 特有的改進功能來增強您的 PDF 生成工作流程:
- 使用螢幕樣式表列印 PDF 。 它們開發起來更簡單,也更貼近現有的網路資源。
- 支援響應式佈局,適應不同的頁面尺寸和方向。
- 根據 HTML 表單元素自動建立 PDF 表單。
- 為專業文件實作自訂頁首和頁尾。
- 添加浮水印,用於品牌推廣或安全目的。
using IronPdf;
// Example showing recommended improvements such as responsive layout
var renderer = new ChromePdfRenderer();
// Enable responsive CSS
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen;
renderer.RenderingOptions.ViewPortWidth = 1024;
// Enable form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Add custom header
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
Height = 25,
HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Company Name - Confidential</div>",
DrawDividerLine = true
};
// Add custom footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
Height = 25,
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true
};
// Render HTML with form elements
string formHtml = @"
<html>
<body>
<h1>Application Form</h1>
<form>
<label>Name: <input type='text' name='name' /></label><br/>
<label>Email: <input type='email' name='email' /></label><br/>
<label>Subscribe: <input type='checkbox' name='subscribe' /></label><br/>
<button type='submit'>Submit</button>
</form>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("FormDocument.pdf");
using IronPdf;
// Example showing recommended improvements such as responsive layout
var renderer = new ChromePdfRenderer();
// Enable responsive CSS
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen;
renderer.RenderingOptions.ViewPortWidth = 1024;
// Enable form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Add custom header
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
Height = 25,
HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Company Name - Confidential</div>",
DrawDividerLine = true
};
// Add custom footer with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
Height = 25,
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true
};
// Render HTML with form elements
string formHtml = @"
<html>
<body>
<h1>Application Form</h1>
<form>
<label>Name: <input type='text' name='name' /></label><br/>
<label>Email: <input type='email' name='email' /></label><br/>
<label>Subscribe: <input type='checkbox' name='subscribe' /></label><br/>
<button type='submit'>Submit</button>
</form>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(formHtml);
pdf.SaveAs("FormDocument.pdf");
Imports IronPdf
' Example showing recommended improvements such as responsive layout
Dim renderer As New ChromePdfRenderer()
' Enable responsive CSS
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen
renderer.RenderingOptions.ViewPortWidth = 1024
' Enable form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
' Add custom header
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.Height = 25,
.HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Company Name - Confidential</div>",
.DrawDividerLine = True
}
' Add custom footer with page numbers
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.Height = 25,
.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
.DrawDividerLine = True
}
' Render HTML with form elements
Dim formHtml As String = "
<html>
<body>
<h1>Application Form</h1>
<form>
<label>Name: <input type='text' name='name' /></label><br/>
<label>Email: <input type='email' name='email' /></label><br/>
<label>Subscribe: <input type='checkbox' name='subscribe' /></label><br/>
<button type='submit'>Submit</button>
</form>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
pdf.SaveAs("FormDocument.pdf")
如何實現多執行緒和非同步支援?
我們的 Chrome 渲染引擎支援多執行緒和非同步功能,與先前的版本相比,效能更優。 這款全新引擎從設計之初就旨在高效處理並發操作,使其成為高吞吐量應用程式和 Web 服務的理想之選。
- 對於企業級多線程,請在現有線程中使用
ChromePdfRenderer,即可正常運作。 對於Web應用程式而言,這無需任何設定。 - 若要批次處理 HTML 到 PDF,請使用內建的.NET
Parallel.ForEach模式。 - 我們提供所有渲染方法的非同步變體,例如
ChromePdfRenderer.RenderHtmlAsPdfAsync。
了解更多關於非同步和多執行緒技術的知識,以獲得最佳效能。
using IronPdf;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Linq;
// Example of using async rendering for a single document
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
var pdfDocument = await renderer.RenderHtmlAsPdfAsync(html);
return pdfDocument.BinaryData;
}
// Example of batch processing with parallel execution
public async Task GenerateMultiplePdfsAsync(List<string> htmlDocuments)
{
var renderer = new ChromePdfRenderer();
// Process multiple documents in parallel
var tasks = htmlDocuments.Select(async (html, index) =>
{
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
await pdf.SaveAsAsync($"Document_{index}.pdf");
});
await Task.WhenAll(tasks);
}
// Example using Parallel.ForEach for CPU-intensive batch processing
public void GeneratePdfsBatch(List<string> urls)
{
Parallel.ForEach(urls, new ParallelOptions { MaxDegreeOfParallelism = 4 }, url =>
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs($"{Path.GetFileNameWithoutExtension(url)}.pdf");
});
}
using IronPdf;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Linq;
// Example of using async rendering for a single document
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
var pdfDocument = await renderer.RenderHtmlAsPdfAsync(html);
return pdfDocument.BinaryData;
}
// Example of batch processing with parallel execution
public async Task GenerateMultiplePdfsAsync(List<string> htmlDocuments)
{
var renderer = new ChromePdfRenderer();
// Process multiple documents in parallel
var tasks = htmlDocuments.Select(async (html, index) =>
{
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
await pdf.SaveAsAsync($"Document_{index}.pdf");
});
await Task.WhenAll(tasks);
}
// Example using Parallel.ForEach for CPU-intensive batch processing
public void GeneratePdfsBatch(List<string> urls)
{
Parallel.ForEach(urls, new ParallelOptions { MaxDegreeOfParallelism = 4 }, url =>
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs($"{Path.GetFileNameWithoutExtension(url)}.pdf");
});
}
Imports IronPdf
Imports System.Threading.Tasks
Imports System.Collections.Generic
Imports System.Linq
Imports System.IO
Imports System.Threading
' Example of using async rendering for a single document
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument = Await renderer.RenderHtmlAsPdfAsync(html)
Return pdfDocument.BinaryData
End Function
' Example of batch processing with parallel execution
Public Async Function GenerateMultiplePdfsAsync(htmlDocuments As List(Of String)) As Task
Dim renderer As New ChromePdfRenderer()
' Process multiple documents in parallel
Dim tasks = htmlDocuments.Select(Async Function(html, index)
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
Await pdf.SaveAsAsync($"Document_{index}.pdf")
End Function)
Await Task.WhenAll(tasks)
End Function
' Example using Parallel.ForEach for CPU-intensive batch processing
Public Sub GeneratePdfsBatch(urls As List(Of String))
Parallel.ForEach(urls, New ParallelOptions With {.MaxDegreeOfParallelism = 4}, Sub(url)
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs($"{Path.GetFileNameWithoutExtension(url)}.pdf")
End Sub)
End Sub
接下來是什麼?
即將推出哪些功能?
IronPDF團隊會根據客戶回饋和行業趨勢,不斷開發新功能並進行改進。 以下是我們的路線圖:
適用於 Azure 函數和AWS Lambda 的*超精簡部署**。 我們的目標是提供磁碟佔用空間最小的部署方案。 請查看我們最新的AWS 部署指南,以了解現有解決方案。
- 為 iOS 和 Android 應用開發者提供行動渲染支持,擴展了我們的跨平台能力。
- 為相容舊系統,提供IE 和 Firefox 渲染選項。
- 為需要可擴展 PDF 產生的大型企業用戶提供多伺服器分散式渲染架構。 *重新設計的內部 PDF 文件物件模型,以支援最廣泛的 PDF 標準。 我們的目標是優雅地處理讀取和自動修復損壞和編碼錯誤的 PDF 文件。 了解我們目前的PDF壓縮功能。
- "{您的想法}"來自客戶的功能請求和錯誤報告將優先處理。
請關注我們的產品更新和里程碑,以了解我們的最新進展。
Please Contact Us for Further Queries with any suggestions or questions. 您的意見有助於塑造IronPDF的未來!
常見問題解答
C# 使用何種渲染引擎進行 HTML 至 PDF 的轉換?
IronPDF 使用 Chrome 的 Blink 渲染引擎,該技術與 Google Chrome、Microsoft Edge 和其他現代瀏覽器相同。在您的 .NET 應用程式中將 HTML 轉換為 PDF 時,可確保像素般的精確度。
如何在 C# 中快速將 HTML 轉換為 PDF?
有了 IronPDF,您只需幾行代碼就能將 HTML 轉換成 PDF。只需創建一個 ChromePdfRenderer 實例,使用 RenderHtmlAsPdf 方法處理您的 HTML 內容,並使用 SaveAs 方法保存生成的 PDF。
使用基於 Chrome 的 PDF 渲染器有哪些效能優勢?
與直接使用瀏覽器和網頁驅動程式相比,IronPDF 的效能可提升 5-20 倍,尤其適用於 SAAS 和高負載應用程式。它提供了毫不費力的多執行緒和同步操作,可根據需要利用多個 CPU 核心以獲得最佳效能。
Chrome 繪圖引擎是否支援現代網路標準?
是的,IronPDF 的 Chrome 渲染引擎完全支持現代 CSS 功能、動态 JavaScript 內容和复杂布局。它提供 Chrome 相同渲染或增強渲染選項,可準確且專業地生成 PDF。
渲染品質對 PDF 文件有何影響?
IronPDF 高品質的渲染效果會直接影響文件的可讀性、品牌表現以及使用者體驗。Chrome 渲染引擎可確保複雜佈局和現代網路功能的準確渲染,與用戶在瀏覽器中看到的內容相匹配。

