如何在 C# 中使用 IronPDF 的渲染选项
IronPDF 中的渲染选项通过 ChromePdfRenderer 类自定义 PDF 生成,可控制页边距、页眉、页脚、纸张尺寸、JavaScript 执行以及 CSS 媒体类型等设置,从而从 HTML、CSS 及其他内容源创建格式精准的 PDF 文档。
快速入门:在 C# 中应用渲染选项
- 通过 NuGet 包管理器安装 IronPDF
- 创建一个
ChromePdfRenderer实例 - 通过
RenderingOptions属性配置渲染选项 - 将您的内容(HTML、Markdown 等)渲染为 PDF
- 保存生成的 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 转换设计的,但它们也适用于其他类型的 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")
高级渲染选项示例
此综合示例演示了如何结合多种渲染选项来生成Professional文档。 当您需要添加页眉和页脚或处理自定义纸张尺寸时,此方法会很有帮助:
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 渲染设置,例如页边距、纸张方向、纸张尺寸等。 了解这些选项有助于您设置自定义页边距,或处理不同的视口设置和Zoom级别。
哪些渲染选项最常用?
最常用的渲染选项包括页边距设置、纸张尺寸配置、页眉/页脚设置以及启用 JavaScript。 这些选项可满足大多数 PDF 定制需求。 对于基于 Web 的内容,JavaScript 渲染选项可确保动态元素正确显示。
如何选择合适的渲染选项?
根据您的需求选择渲染选项:使用页边距设置进行打印排版,启用 JavaScript 以处理动态网页内容,配置页眉/页脚以生成 Professional 文档,并根据特定输出格式调整纸张尺寸。 处理网页内容时,请考虑 CSS 媒体类型以实现最佳呈现效果。
何时应使用高级渲染选项?
对于自定义 CSS 注入、LaTeX 数学公式渲染、灰度输出等特殊功能,或在处理需要特定 JavaScript 执行时机的复杂 Web 应用程序时,请使用高级渲染选项。 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")
下表展示了可用的不同选项。
| 类 | ChromePdfRenderer | |
|---|---|---|
| 描述 | 用于定义 PDF 打印选项,例如纸张尺寸、DPI、页眉和页脚 | |
| 属性 / 函数 | 类型 | 描述 |
CustomCookies |
Dictionary |
用于 HTML 渲染的自定义 Cookie。Cookie 在渲染之间不会保留,必须每次重新设置。 |
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 |
在渲染页眉和页脚时,请使用主文档中的边距值。 |
CreatePdfFormsFromHtml |
bool |
将所有 HTML 表单元素转换为可编辑的 PDF 表单。默认值为 true。 |
CssMedia类型 |
PdfCssMedia类型 |
启用 Media="screen" 的 CSS 样式和样式表。默认值为 PdfCssMedia类型.Screen。 |
CustomCssUrl |
string |
允许在渲染前将自定义 CSS 样式表应用于 HTML。可以是本地文件路径或远程 URL。仅适用于将 HTML 渲染为 PDF 的情况。 |
启用JavaScript |
bool |
允许在页面渲染前执行 JavaScript 和 JSON。非常适合从 Ajax / Angular 应用程序进行 PRINT。默认值为 false。 |
启用数学 LaTeX |
bool |
支持渲染数学 LaTeX 元素。 |
JavaScript |
string |
一段自定义 JavaScript 代码,将在所有 HTML 加载完成但 PDF 渲染开始之前执行。 |
JavaScriptMessageListener |
StringDelegate |
一种方法回调,用于在浏览器 JavaScript 控制台出现新消息时被调用。 |
首页编号 |
int |
PDF 页眉和页脚中使用的起始页码。默认值为 1。 |
目录 |
目录类型 |
在 HTML 文档中找到 id 为 "IronPDF-toc" 的元素的位置生成目录。 |
GrayScale |
bool |
输出黑白PDF文件。默认值为false。 |
文本标题 |
ITextHeaderFooter |
将每页 PDF 的页脚内容设置为文本,支持"邮件合并"功能,并自动将 URL 转换为超链接。 |
TextFooter |
||
HtmlHeader |
HtmlHeaderFooter |
将每页 PDF 的页眉内容设置为 HTML 格式。支持"邮件合并"。 |
HtmlFooter |
||
InputEncoding |
编码 |
作为字符串的输入字符编码。默认值为 Encoding.UTF8。 |
页眉 |
双 |
PDF"纸张"顶部边距(单位:毫米)。若用于无边距或商业印刷,请设为零。默认值为25。 |
右对齐 |
双 |
PDF"纸张"右侧边距(单位:毫米)。若需无边框或商业印刷,请设为零。默认值为25。 |
页脚 |
双 |
PDF 文件底部"纸张"边距(单位:毫米)。若需无边距或用于商业印刷,请设置为零。默认值为 25。 |
左边距 |
双 |
PDF 左侧"纸张"边距(单位:毫米)。若需无边框或商业印刷,请设为零。默认值为 25。 |
PaperOrientation |
PdfPaperOrientation |
PDF 纸张方向,例如纵向或横向。默认值为纵向。 |
PaperSize |
PdfPaperSize |
设置纸张尺寸 |
以厘米为单位设置自定义纸张尺寸 |
双 |
设置以厘米为单位的纸张尺寸。 |
SetCustomPaperSizeInInches |
设置以英寸为单位的纸张尺寸。 | |
设置自定义纸张尺寸(单位:毫米) |
设置纸张尺寸(单位为毫米)。 | |
以像素或点为单位设置自定义纸张尺寸 |
以屏幕像素或打印机点为单位设置纸张尺寸。 | |
PrintHtmlBackgrounds |
布尔 |
指示是否打印 HTML 中的背景颜色和图像。默认值为 true。 |
RequestContext |
请求上下文 |
请求此渲染的上下文,以确定某些资源(如 Cookie)的隔离状态。 |
超时 |
整数 |
渲染超时(单位:秒)。默认值为 60。 |
标题 |
字符串 |
PDF 文档名称和标题元数据,适用于 IronPDF MVC 和 Razor 扩展中的邮件合并及自动文件命名功能。 |
ForcePaperSize |
布尔 |
通过在将 HTML 生成 PDF 后调整页面大小,强制使页面尺寸完全符合通过 IronPdf.ChromePdfRenderOptions.PaperSize 指定的规格。有助于在将 HTML 渲染为 PDF 时修正页面尺寸上的细微误差。 |
WaitFor |
WaitFor |
一个封装对象,用于存储等待机制的配置,以便用户在渲染前等待特定事件。默认情况下,它不会等待任何事件。 |
准备好探索更多功能了吗? 访问我们的教程页面:PDF 转换
常见问题解答
生成 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 以生成动态内容。在创建报告、发票或任何需要精确格式的文档时,这种控制水平至关重要。

