如何使用 C# 在 IronPDF 中使用渲染选项
IronPDF中的渲染选项通过 ChromePdfRenderer 类自定义 PDF 生成,控制边距、页眉、页脚、纸张大小、JavaScript执行和CSS媒体类型等设置,支持HTML转PDF及PDF编辑等场景,从HTML、CSS和其他内容源创建格式精确的PDF文档。
快速入门:在 C# 中应用渲染选项
1.通过 NuGet 软件包管理器安装 IronPdf
- 创建一个
ChromePdfRenderer实例 - 通过
RenderingOptions属性配置渲染选项
4.将您的内容(HTML、Markdown 等)渲染为 PDF 5.保存生成的 PDF 文档
-
使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf
PM > Install-Package IronPdf -
复制并运行这段代码。
new IronPdf.ChromePdfRenderer { RenderingOptions = { PrintHtmlBackgrounds = true, MarginTop = 0, MarginBottom = 0, CssMedia翻译类型 = IronPdf.Rendering.PdfCssMedia翻译类型.Print, HtmlHeader = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<div>My Header</div>" }, Language = "en-US", Timeout = 120000 } } .RenderHtmlStringAsPdf("<h1>Hello Options</h1>") .SaveAs("renderingOptions.pdf"); -
部署到您的生产环境中进行测试
通过免费试用立即在您的项目中开始使用IronPDF
PDF 生成中的渲染选项是决定如何创建、显示和打印 PDF 文档的设置。 这些选项包括渲染表单元素、启用 JavaScript、生成目录、添加页眉和页脚、调整页边距、设置纸张大小等。
IronPDF 中的 ChromePdfRenderer 类为自定义 PDF 生成提供了各种渲染选项。 它包含 PaperFit,这是一个控制 PDF 页面上内容布局的管理器,提供响应式 CSS3 布局或连续馈送等不同样式。 在处理复杂文档时,您可能需要在应用渲染选项后合并或拆分 PDF。
最小工作流程(5 个步骤)
- 下载 C# 库以使用渲染选项。
- 准备转换为 PDF 的 HTML 资产或文件
- 实例化 **`ChromePdfRenderer`** 类
- 访问 **`RenderingOptions`** 属性以配置设置
- 以所需格式渲染 PDF
如何在 IronPDF 中使用渲染选项?
虽然许多渲染选项属性是为 HTML转PDF(HTML到PDF的转换)而设计的,但它们也适用于其他 PDF 转换类型。 让我们将 Markdown 渲染成 PDF,并使用渲染选项配置输出。 具体到 HTML 转换,请了解将 HTML 文件转换为 PDF 或将 HTML 字符串转换为 PDF。
为什么要配置渲染选项?
配置渲染选项可确保生成的 PDF 符合准确的规格:自定义纸张尺寸、特定页边、页眉和页脚,或启用 JavaScript 以生成动态内容。 在为专业文档或报告创建新的 PDF 时,这种控制至关重要。
当我应用多个渲染选项时会发生什么?
多种渲染选项协同工作,以创建最终的 PDF 输出。 每个选项都会修改特定的渲染方面,IronPDF 在转换过程中会依次应用这些选项。 例如,当同时设置边距和页眉时,页眉内容会遵循边距设置,除非使用 UseMarginsOnHeaderAndFooter 属性进行覆盖。
:path=/static-assets/pdf/content-code-examples/how-to/rendering-options-render.cs
using IronPdf;
// Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser
// to render HTML/CSS as a PDF document.
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Configure rendering options
// Enable printing of HTML backgrounds to ensure all styles are visible.
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set HTML header content using HtmlHeaderFooter.
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
// HTML fragment to add a header at the top of every page in the PDF.
HtmlFragment = "<h1>Header Content</h1>"
};
// Set a custom paper size for the PDF in millimeters (width and height).
renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150);
// Set the top margin to zero to start the content from the very top of the page.
renderer.RenderingOptions.MarginTop = 0;
// Define a Markdown string that will be rendered as a PDF.
// Markdown text allows basic formatting like bold and italic styles.
string md = "This is some **bold** and *italic* text.";
// Render the Markdown string to a PDF document.
// The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF.
PdfDocument pdf = renderer.RenderMarkdownStringAsPdf(md);
// Save the generated PDF to a file named "renderingOptions.pdf."
pdf.SaveAs("renderingOptions.pdf");
Imports IronPdf
' Instantiate a ChromePdfRenderer object, which uses a headless version of the Chrome browser
' to render HTML/CSS as a PDF document.
Private renderer As New ChromePdfRenderer()
' Configure rendering options
' Enable printing of HTML backgrounds to ensure all styles are visible.
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set HTML header content using HtmlHeaderFooter.
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {.HtmlFragment = "<h1>Header Content</h1>"}
' Set a custom paper size for the PDF in millimeters (width and height).
renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(150, 150)
' Set the top margin to zero to start the content from the very top of the page.
renderer.RenderingOptions.MarginTop = 0
' Define a Markdown string that will be rendered as a PDF.
' Markdown text allows basic formatting like bold and italic styles.
Dim md As String = "This is some **bold** and *italic* text."
' Render the Markdown string to a PDF document.
' The library will convert Markdown syntax into equivalent HTML before rendering it as a PDF.
Dim pdf As PdfDocument = renderer.RenderMarkdownStringAsPdf(md)
' Save the generated PDF to a file named "renderingOptions.pdf."
pdf.SaveAs("renderingOptions.pdf")
高级渲染选项示例
本综合示例演示了如何结合多种渲染选项生成专业文档。 当您需要添加页眉和页脚或使用自定义纸张尺寸时,这种方法会有所帮助:
using IronPdf;
using IronPdf.Rendering;
// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Configure paper and layout settings
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set margins for professional layout
renderer.RenderingOptions.MarginTop = 40; // mm
renderer.RenderingOptions.MarginBottom = 40; // mm
renderer.RenderingOptions.MarginLeft = 20; // mm
renderer.RenderingOptions.MarginRight = 20; // mm
// Enable JavaScript for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 2000; // Wait 2 seconds for JS to execute
// Add professional header with page numbers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
Height = 25,
HtmlFragment = @"<div style='text-align: center; padding: 10px;'>
<span>Document Title</span> - Page {page} of {total-pages}
</div>",
DrawDividerLine = true
};
// Add footer with timestamp
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
Height = 20,
HtmlFragment = @"<div style='text-align: center; font-size: 10px;'>
Generated on {date} at {time}
</div>"
};
// Render HTML content
string htmlContent = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.content { padding: 20px; }
</style>
</head>
<body>
<div class='content'>
<h1>Professional Document</h1>
<p>This document demonstrates advanced rendering options.</p>
</div>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("professional-document.pdf");
using IronPdf;
using IronPdf.Rendering;
// Create renderer with advanced options
var renderer = new ChromePdfRenderer();
// Configure paper and layout settings
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set margins for professional layout
renderer.RenderingOptions.MarginTop = 40; // mm
renderer.RenderingOptions.MarginBottom = 40; // mm
renderer.RenderingOptions.MarginLeft = 20; // mm
renderer.RenderingOptions.MarginRight = 20; // mm
// Enable JavaScript for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 2000; // Wait 2 seconds for JS to execute
// Add professional header with page numbers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
Height = 25,
HtmlFragment = @"<div style='text-align: center; padding: 10px;'>
<span>Document Title</span> - Page {page} of {total-pages}
</div>",
DrawDividerLine = true
};
// Add footer with timestamp
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
Height = 20,
HtmlFragment = @"<div style='text-align: center; font-size: 10px;'>
Generated on {date} at {time}
</div>"
};
// Render HTML content
string htmlContent = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.content { padding: 20px; }
</style>
</head>
<body>
<div class='content'>
<h1>Professional Document</h1>
<p>This document demonstrates advanced rendering options.</p>
</div>
</body>
</html>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("professional-document.pdf");
Imports IronPdf
Imports IronPdf.Rendering
' Create renderer with advanced options
Dim renderer = New ChromePdfRenderer()
' Configure paper and layout settings
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set margins for professional layout
renderer.RenderingOptions.MarginTop = 40 ' mm
renderer.RenderingOptions.MarginBottom = 40 ' mm
renderer.RenderingOptions.MarginLeft = 20 ' mm
renderer.RenderingOptions.MarginRight = 20 ' mm
' Enable JavaScript for dynamic content
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 2000 ' Wait 2 seconds for JS to execute
' Add professional header with page numbers
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.Height = 25,
.HtmlFragment = "<div style='text-align: center; padding: 10px;'>
<span>Document Title</span> - Page {page} of {total-pages}
</div>",
.DrawDividerLine = True
}
' Add footer with timestamp
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.Height = 20,
.HtmlFragment = "<div style='text-align: center; font-size: 10px;'>
Generated on {date} at {time}
</div>"
}
' Render HTML content
Dim htmlContent As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.content { padding: 20px; }
</style>
</head>
<body>
<div class='content'>
<h1>Professional Document</h1>
<p>This document demonstrates advanced rendering options.</p>
</div>
</body>
</html>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("professional-document.pdf")
有哪些可用的渲染选项?
高级选项可定义 PDF 渲染设置,如边距、纸张方向、纸张大小等。 当您需要设置自定义边距或使用不同的视口设置和缩放级别时,了解这些选项会有所帮助。
哪些渲染选项最常用?
最常用的渲染选项包括页边距设置、纸张大小配置、页眉/页脚设置和启用 JavaScript。 这些选项涵盖了大多数 PDF 定制需求。 对于基于网络的内容,JavaScript 渲染选项可确保动态元素的正确渲染。
如何选择正确的渲染选项?
根据您的要求选择渲染选项:打印布局使用页边距设置,动态网页内容启用 JavaScript,专业文档配置页眉/页脚,特定输出格式调整纸张大小。 在处理网页内容时,应考虑 CSS 媒体类型,以获得最佳渲染效果。
何时应使用高级渲染选项?
在使用自定义 CSS 注入、LaTeX 数学渲染、灰度输出等专业功能时,或在处理需要特定 JavaScript 执行时间的复杂网络应用程序时,请使用高级渲染选项。 WaitFor 类可精确控制复杂场景下的渲染延迟。
使用表单元素
当 HTML 包含表单元素时,IronPDF 会自动将其转换为交互式 PDF 表单:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable PDF form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// HTML with form elements
string formHtml = @"
<html>
<body>
<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>";
PdfDocument pdfWithForms = renderer.RenderHtmlAsPdf(formHtml);
pdfWithForms.SaveAs("interactive-form.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable PDF form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// HTML with form elements
string formHtml = @"
<html>
<body>
<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>";
PdfDocument pdfWithForms = renderer.RenderHtmlAsPdf(formHtml);
pdfWithForms.SaveAs("interactive-form.pdf");
Imports IronPdf
Dim renderer = New ChromePdfRenderer()
' Enable PDF form creation from HTML forms
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
' HTML with form elements
Dim formHtml As String = "
<html>
<body>
<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 pdfWithForms As PdfDocument = renderer.RenderHtmlAsPdf(formHtml)
pdfWithForms.SaveAs("interactive-form.pdf")
下表说明了可用的不同选项。
| Class | ChromePdfRenderer | |
|---|---|---|
| Description | Used to define PDF printout options, like paper size, DPI, headers, and footers | |
| Properties / functions | Type | Description |
CustomCookies |
Dictionar |
Custom cookies for the HTML render. Cookies do not persist between renders and must be set each time. |
PaperFit |
VirtualPaperLayoutManager |
A manager for setting up virtual paper layouts, controlling how content will be laid out on PDF "paper" pages. Includes options for Default Chrome Behavior, Zoomed, Responsive CSS3 Layouts, Scale-To-Page & Continuous Feed style PDF page setups. |
UseMarginsOnHeaderAndFooter |
UseMargins |
Use margin values from the main document when rendering headers and footers. |
CreatePdfFormsFromHtml |
bool |
Turns all HTML form elements into editable PDF forms. Default value is true. |
CssMediaType |
PdfCssMediaType |
Enables Media="screen" CSS Styles and StyleSheets. Default value is PdfCssMediaType.Screen. |
CustomCssUrl |
string |
Allows a custom CSS style-sheet to be applied to HTML before rendering. May be a local file path or a remote URL. Only applicable when rendering HTML to PDF. |
EnableJavaScript |
bool |
Enables JavaScript and JSON to be executed before the page is rendered. Ideal for printing from Ajax / Angular Applications. Default value is false. |
EnableMathematicalLaTex |
bool |
Enables rendering of Mathematical LaTeX Elements. |
Javascript |
string |
A custom JavaScript string to be executed after all HTML has loaded but before PDF rendering. |
JavascriptMessageListener |
StringDelegate |
A method callback to be invoked whenever a browser JavaScript console message becomes available. |
FirstPageNumber |
int |
First page number to be used in PDF Headers and Footers. Default value is 1. |
TableOfContents |
TableOfContentsTypes |
Generates a table of contents at the location in the HTML document where an element is found with id "ironpdf-toc". |
GrayScale |
bool |
Outputs a black-and-white PDF. Default value is false. |
TextHeader |
ITextHeaderFooter |
Sets the footer content for every PDF page as text, supporting 'mail-merge' and automatically turning URLs into hyperlinks. |
TextFooter |
||
HtmlHeader |
HtmlHeaderFooter |
Sets the header content for every PDF page as HTML. Supports 'mail-merge'. |
HtmlFooter |
||
InputEncoding |
Encoding |
The input character encoding as a string. Default value is Encoding.UTF8. |
MarginTop |
double |
Top PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginRight |
double |
Right PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginBottom |
double |
Bottom PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginLeft |
double |
Left PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
PaperOrientation |
PdfPaperOrientation |
The PDF paper orientation, such as Portrait or Landscape. Default value is Portrait. |
PaperSize |
PdfPaperSize |
Sets the paper size |
SetCustomPaperSizeinCentimeters |
double |
Sets the paper size in centimeters. |
SetCustomPaperSizeInInches |
Sets the paper size in inches. | |
SetCustomPaperSizeinMilimeters |
Sets the paper size in millimeters. | |
SetCustomPaperSizeinPixelsOrPoints |
Sets the paper size in screen pixels or printer points. | |
PrintHtmlBackgrounds |
Boolean |
Indicates whether to print background colors and images from HTML. Default value is true. |
RequestContext |
RequestContexts |
Request context for this render, determining isolation of certain resources such as cookies. |
Timeout |
Integer |
Render timeout in seconds. Default value is 60. |
Title |
String |
PDF Document Name and Title metadata, useful for mail-merge and automatic file naming in the IronPdf MVC and Razor extensions. |
ForcePaperSize |
Boolean |
Force page sizes to be exactly what is specified via IronPdf.ChromePdfRenderOptions.PaperSize by resizing the page after generating a PDF from HTML. Helps correct small errors in page size when rendering HTML to PDF. |
WaitFor |
WaitFor |
A wrapper object that holds configuration for wait-for mechanism for users to wait for certain events before rendering. By default, it will wait for nothing. |
准备好探索更多功能了吗? 请访问我们的教程页面:Convert PDFs
常见问题解答
生成 PDF 时有哪些渲染选项?
IronPDF 中的渲染选项是控制如何通过 ChromePdfRenderer 类创建、显示和打印 PDF 文档的设置。它们包括页边、页眉、页脚、纸张大小、JavaScript 执行、CSS 媒体类型、表单元素和目录的配置,允许精确定制来自 HTML、CSS 和其他内容源的 PDF 输出。
如何对 PDF 应用渲染选项?
要在 IronPDF 中应用渲染选项:1)通过 NuGet 安装 IronPDF;2)创建一个 ChromePdfRenderer 实例;3)通过 RenderingOptions 属性配置设置;4)将内容(HTML、Markdown 等)渲染为 PDF;5)保存生成的 PDF。您可以在一行中设置多个选项,如边距、CSS 媒体类型、页眉和超时值。
能否对非 HTML 内容使用渲染选项?
是的,虽然许多渲染选项属性是为 HTML 到 PDF 的转换而设计的,但它们也适用于 IronPDF 中的其他 PDF 转换类型。在将 Markdown 转换为 PDF 或其他支持的格式时,您可以应用渲染选项,这样无论源内容类型如何,您都可以对最终的 PDF 输出进行同等程度的控制。
什么是 PaperFit,它是如何工作的?
PaperFit 是 IronPDF 的 ChromePdfRenderer 类中的一个管理器,用于控制 PDF 页面的内容布局。它提供了不同的渲染样式,包括响应式 CSS3 布局或连续进纸选项,有助于确保您的内容根据具体要求在 PDF 页面上正确显示。
为什么要为 PDF 配置渲染选项?
在 IronPDF 中配置渲染选项可确保您生成的 PDF 完全符合专业文档所需的规格。这包括自定义纸张尺寸、特定页边、页眉和页脚,或启用 JavaScript 以生成动态内容。在创建报告、发票或任何需要精确格式的文档时,这种控制水平至关重要。

