Chrome 渲染引擎 EAP - PDF 生成的變革者

C# 中的 Chrome PDF 渲染引擎

This article was translated from English: Does it need improvement?
Translated
View the article in English

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 和應用程式開發提供可靠的高效能解決方案。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 複製並運行這段程式碼。

    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");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronPDF

    arrow pointer


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="*" />
SHELL

安裝完成後,在 C# 檔案的頂部加入對應的 using 語句:

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

對於進階安裝方案,包括部署到 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");
$vbLabelText   $csharpLabel

有關渲染選項的更多信息,請參閱我們的詳細文件。

如何實現像素級完美 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");
$vbLabelText   $csharpLabel

為確保完美渲染,請參考我們的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");
$vbLabelText   $csharpLabel

如何實現多執行緒和非同步支援?

我們的 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");
    });
}
$vbLabelText   $csharpLabel

接下來是什麼?

即將推出哪些功能?

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 渲染引擎可確保複雜佈局和現代網路功能的準確渲染,與用戶在瀏覽器中看到的內容相匹配。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 17,803,474 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想快速取得證據? PM > Install-Package IronPdf
運行範例看著你的HTML程式碼變成PDF檔。