C# Chrome PDF 渲染引擎:高质量 HTML转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
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 和高负载应用程序,与直接使用浏览器和网络驱动程序相比,性能有望提高 5-20 倍。 在批量处理场景或对响应时间要求极高的大流量网络应用程序中生成 PDF 报告时,性能提升尤为明显。
完全支持哪些技术?
完全支持JavaScript、响应式布局和CSS3。
Azure 最重要的角色。 就这样运行。
持续维护并为 .NET 8、7、6、5、Core 和 Framework 4.6.2+ 提供全面的支持和改进。
该引擎支持以下高级功能
- 现代 CSS 网格和 Flexbox 布局
- 网页字体和图标字体
- SVG 图形和 Canvas 元素
- 复杂的 JavaScript 框架(React、Angular、Vue.js)
- 媒体查询和响应式设计
- CSS动画和过渡
对于使用 Bootstrap、Flex 和 CSS 的开发人员,IronPDF 可提供全面的支持,确保风格化的内容在 PDF 格式中完美呈现。
测试过程的可靠性如何?
该版本通过了 1156 项绿色单元和集成测试(无红色测试)。 该 EAP 与我们的主版本一样稳定,每天都在不断改进。 我们严格的测试过程涵盖各种情况,包括复杂的 HTML 结构、不同的字符编码、各种纸张大小以及生产环境中遇到的边缘情况。
是否支持无障碍标准?
使用 PDF(UA) 标记的 PDF 标准生成可访问的 PDF。 这样才能确保文件符合可访问性要求,并能被屏幕阅读器正确阅读。 了解有关创建符合 IronPDF/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 渲染?
本示例将为您提供像素完美的 PDF 文件,可用于最新的 Chrome 桌面浏览器的 "打印为 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 渲染引擎支持多线程和异步,性能更加卓越。 新引擎从底层设计开始就能高效处理并发操作,是高吞吐量应用程序和网络服务的理想选择。
- 对于企业级多线程,请在现有线程中使用
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 团队会根据客户反馈和行业趋势不断开发新功能并进行改进。 以下是我们的路线图:
Ultra-Slim 部署用于Azure 功能和AWS Lambda*。 我们的目标是提供尽可能减少磁盘占用的部署选项。 请查看我们当前的 AWS 部署指南,了解现有解决方案。
- 为 iOS 和 Android 应用程序开发人员提供移动呈现支持,扩展我们的跨平台能力。
- IE 和 Firefox 渲染选项,以兼容旧系统。
- 多服务器分布式渲染架构,适用于需要可扩展 PDF 生成的大型企业用户。
- 重新设计的内部 PDF 文档对象模型可支持最广泛的 PDF 标准。 我们的目标是以优雅的方式处理阅读和自动修复损坏和编码不良的 PDF 文档。 探索我们当前的 PDF 压缩功能。
- "{YourIdeaHere}"来自客户的功能请求和错误报告将被转至堆栈顶部。
请查看我们的产品更新和里程碑,了解我们的最新动态。
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 渲染引擎可确保复杂布局和现代网络功能的准确渲染,与用户在浏览器中看到的内容相匹配。

