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 项目无缝集成,为现代网络和应用程序开发提供可靠的高性能解决方案。
1Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf
Install-Package IronPdf
2复制并运行这段代码。
using IronPdf;// Create a new ChromePdfRenderer instancevar renderer = new ChromePdfRenderer();// Render HTML string to PDFvar pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");// Save the PDF to diskpdf.SaveAs("HelloWorld.pdf");
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");
# Using Package Manager ConsoleInstall-Package IronPdf# Using .NET CLIdotnet 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="*" />
我们没有破坏您已经在使用的 IronPDF C# 和 VB.NET API。 它将保留! 然而,旧的风格被更好的风格取代,以便为您提供更多的控制。 新的 API 通过增强的配置选项为 PDF 生成提供了更直观、更灵活的方法。
using IronPdf;// Create a renderer with custom optionsvar renderer = new ChromePdfRenderer();// Configure rendering optionsrenderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screen;renderer.RenderingOptions.PrintHtmlBackgrounds = true;renderer.RenderingOptions.CreatePdfFormsFromHtml = true;// Set paper size and marginsrenderer.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 resourcesrenderer.RenderingOptions.HttpLoginCredentials = new IronPdf.HttpLoginCredentials(){Username = "yourUsername",Password = "yourPassword"};// Render HTML to PDFvar 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");
ImportsIronPdf' Create a renderer with custom optionsDim renderer As New ChromePdfRenderer()' Configure rendering optionsrenderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Screenrenderer.RenderingOptions.PrintHtmlBackgrounds = Truerenderer.RenderingOptions.CreatePdfFormsFromHtml = True' Set paper size and marginsrenderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4renderer.RenderingOptions.MarginTop = 25renderer.RenderingOptions.MarginBottom = 25renderer.RenderingOptions.MarginLeft = 20renderer.RenderingOptions.MarginRight = 20' Set HTTP credentials if needed for protected resourcesrenderer.RenderingOptions.HttpLoginCredentials = New IronPdf.HttpLoginCredentials() With { .Username = "yourUsername", .Password = "yourPassword"}' Render HTML to PDFDim 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")
本示例将为您提供像素完美的 PDF 文件,可用于最新的 Chrome 桌面浏览器的 "打印为 PDF "功能。 Chrome 浏览器的渲染引擎可确保您的 HTML 内容(包括复杂的 CSS 布局和 JavaScript 渲染元素)与在 Chrome 浏览器窗口中显示的内容完全一致。
using IronPdf;using System.IO;// Create a Chrome PDF renderervar renderer = new ChromePdfRenderer();// Configure for pixel-perfect renderingrenderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Print;renderer.RenderingOptions.EnableJavaScript = true;renderer.RenderingOptions.RenderDelay = 500; // Wait for JavaScript to execute// Load HTML from filestring htmlContent = File.ReadAllText("template.html");// Include base URL for relative assetsrenderer.RenderingOptions.BaseUrl = new Uri("file:///C:/your-project/assets/").AbsoluteUri;// Render the HTML to PDFvar pdf = renderer.RenderHtmlAsPdf(htmlContent);// Add metadatapdf.MetaData.Author = "Your Company";pdf.MetaData.Title = "Pixel-Perfect Document";pdf.MetaData.CreationDate = DateTime.Now;// Save the PDFpdf.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");
ImportsIronPdfImportsSystem.IO' Create a Chrome PDF rendererDim renderer As New ChromePdfRenderer()' Configure for pixel-perfect renderingrenderer.RenderingOptions.CssMediaType = IronPdf.Rendering.CssMediaType.Printrenderer.RenderingOptions.EnableJavaScript = Truerenderer.RenderingOptions.RenderDelay = 500 ' Wait for JavaScript to execute' Load HTML from fileDim htmlContent AsString = File.ReadAllText("template.html")' Include base URL for relative assetsrenderer.RenderingOptions.BaseUrl = New Uri("file:///C:/your-project/assets/").AbsoluteUri' Render the HTML to PDFDim pdf = renderer.RenderHtmlAsPdf(htmlContent)' Add metadatapdf.MetaData.Author = "Your Company"pdf.MetaData.Title = "Pixel-Perfect Document"pdf.MetaData.CreationDate = DateTime.Now' Save the PDFpdf.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")
using IronPdf;using System.Threading.Tasks;using System.Collections.Generic;using System.Linq;// Example of using async rendering for a single documentpublic 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 executionpublic async TaskGenerateMultiplePdfsAsync(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"); }); awaitTask.WhenAll(tasks);}// Example using Parallel.ForEach for CPU-intensive batch processingpublic voidGeneratePdfsBatch(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");
});
}
ImportsIronPdfImportsSystem.Threading.TasksImportsSystem.Collections.GenericImportsSystem.Linq' Example of using async rendering for a single documentPublicAsync Function GeneratePdfAsync(html AsString) AsTask(OfByte()) Dim renderer = New ChromePdfRenderer() Dim pdfDocument = Await renderer.RenderHtmlAsPdfAsync(html) Return pdfDocument.BinaryDataEnd Function' Example of batch processing with parallel executionPublicAsync Function GenerateMultiplePdfsAsync(htmlDocuments AsList(OfString)) AsTask Dim renderer = 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)AwaitTask.WhenAll(tasks)End Function' Example using Parallel.ForEach for CPU-intensive batch processingPublic Sub GeneratePdfsBatch(urls AsList(OfString))Parallel.ForEach(urls, New ParallelOptionsWith {.MaxDegreeOfParallelism = 4}, Sub(url) Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderUrlAsPdf(url) pdf.SaveAs($"{Path.GetFileNameWithoutExtension(url)}.pdf") End Sub)End Sub
Imports IronPdf
Imports System.Threading.Tasks
Imports System.Collections.Generic
Imports System.Linq
' Example of using async rendering for a single document
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer = 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 = 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 = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs($"{Path.GetFileNameWithoutExtension(url)}.pdf")
End Sub)
End Sub
IronPDF can be installed via the NuGet Package Manager, via command line using .NET CLI, or by adding a PackageReference in your project's .csproj file. It's simple and integrates into your .NET environment.
Can IronPDF generate accessible PDFs?
Yes, IronPDF supports producing accessible PDFs by adhering to the PDF/UA standard, ensuring documents are properly read by assistive technologies.
How does IronPDF ensure the quality of its Chrome rendering engine?
IronPDF's Chrome rendering engine is rigorously tested, passing over 1156 unit and integration tests, ensuring stability and reliability in various production scenarios.
What are the upcoming features for IronPDF?
IronPDF plans to introduce ultra-slim deployments for cloud environments, mobile rendering support for apps, IE and Firefox rendering options, scalable enterprise solutions, and enhanced PDF document models.
How can users provide feedback to IronPDF?
Users can send feedback, suggestions, or inquiries to IronPDF by contacting their support team via email, helping prioritize new features and improvements.