C#中的Chrome PDF轉換引擎
IronPDF的Chrome渲染引擎讓C#開發者能夠使用Chromium的強大渲染技術將HTML轉換為高品質的PDF。 利用Google Chrome的渲染引擎編寫程式碼製作發票、報告或文件,確保PDF完整支持現代網頁標準,保持精確的HTML外觀。
Chromium是由Google開發的開源網頁瀏覽器項目。 它作為Chrome、Microsoft Edge、Opera及其他瀏覽器的基礎。 通過使用Chromium的Blink渲染引擎,IronPDF確保在您的.NET應用中轉換HTML為PDF時的像素精確度。
快速入門:用IronPDF秒級渲染HTML到PDF
開始使用IronPDF的Chrome渲染引擎來快速轉換HTML到PDF。 只需幾行程式碼,利用Chromium的技術生成像素完美的PDF文件。 本指南演示了如何使用IronPDF渲染HTML內容,專注於易用性和快速實施。 IronPDF與現有.NET項目無縫整合,提供現代網頁和應用開發的高性能解決方案。
-
使用NuGet套件管理器安裝https://www.nuget.org/packages/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內容準確渲染,匹配瀏覽器顯示。
性能有多快?
提供輕鬆的多執行緒和Async,使用所需的所有CPU核心。 對於SAAS和高負載應用,預期性能提高5至20倍,相比直接瀏覽器使用和網頁驅動。 性能改進在批量處理場景或高流量網路應用中生成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的文件以提高無障礙性。
我該如何提供反饋?
我們歡迎您的反饋意見。 如有想法或需要幫助,請通過support@ironsoftware.com聯繫我們。您的反饋幫助我們優先考慮最重要的功能和改進,服務我們的開發者社區。
將其實施在您的專案中
如何安裝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語句:
:path=/static-assets/pdf/content-code-examples/how-to/ironpdf-2021-chrome-rendering-engine-eap-3.cs
using IronPdf;
Imports IronPdf
對於高級安裝場景,包括部署到Azure或運行在Docker容器中,請參考我們的綜合安裝指南。
我該如何使用新API?
我們沒有破壞您正在使用的以前的IronPDF C#和VB.NET API。 它將繼續存在! 然而,更好的新風格正在取代舊風格,以便給您更多控制權。 新API提供了一種更加直觀和靈活的方法來生成PDF,具有增強的配置選項。
:path=/static-assets/pdf/content-code-examples/how-to/ironpdf-2021-chrome-rendering-engine-eap-4.cs
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瀏覽器窗口中的效果完全一致。
:path=/static-assets/pdf/content-code-examples/how-to/ironpdf-2021-chrome-rendering-engine-eap-5.cs
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表單。
- 為專業文件實施自定義標題和頁腳。
- 新增水印,用於品牌或安全目的。
:path=/static-assets/pdf/content-code-examples/how-to/ironpdf-2021-chrome-rendering-engine-eap-6.cs
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")
我如何實施多執行緒和異步支持?
多執行緒和Async支持我們的Chrome渲染引擎相比以前的構建提供了更好的性能。 新引擎從頭開始設計以高效處理並行操作,非常適合高吞吐量應用和網路服務。
- 對於企業級多執行緒,請在您現有的執行緒中使用
ChromePdfRenderer,即可正常運行。 對於網頁應用,這不需要設置。 - 對於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壓縮功能。
- "
{YourIdeaHere}" 客戶的功能請求和錯誤報告被優先處理。
通過查看我們的產品更新和里程碑保持最新發展。
如有任何建議或疑問,請聯繫我們。 您的反饋意見有助於塑造IronPDF的未來!
常見問題
C# 用什麼渲染引擎進行 HTML 到 PDF 的轉換?
IronPDF 使用 Chromium 的 Blink 渲染引擎,這是驅動 Google Chrome、Microsoft Edge 和其他現代瀏覽器的相同技術。這可確保在您的 .NET 應用程式中將 HTML 轉換為 PDF 時的像素完美準確性。
如何快速將 HTML 轉換為 C# 中的 PDF?
using IronPDF,您只需幾行程式碼即可將 HTML 轉換為 PDF。只需建立一個 ChromePdfRenderer 實例,使用 RenderHtmlAsPdf 方法將您的 HTML 內容轉換,然後使用 SaveAs 方法保存生成的 PDF。
使用基於 Chrome 的 PDF 渲染器有哪些效能優勢?
與直接使用瀏覽器和網頁驅動程式相比,IronPDF 提供 5-20 倍的效能提升,特別適合 SAAS 和高負載應用程式。它提供輕鬆的多執行緒和非同步操作,利用所需的 CPU 核心數來達到最佳效能。
Chrome 渲染引擎是否支援現代網頁標準?
是的,IronPDF 的 Chrome 渲染引擎完全支援現代 CSS 功能、動態 JavaScript 內容和複雜佈局。它提供 Chrome 同等渲染或增強渲染選項,用於準確和專業的 PDF 生成。
渲染質量如何影響 PDF 文件?
using IronPDF 的高品質渲染直接影響文件可讀性、品牌表現和使用者體驗。Chrome 渲染引擎確保複雜佈局和現代網頁功能準確渲染,匹配使用者在瀏覽器中看到的內容。

