如何使用 C# 在 IronPDF 中使用渲染选项

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

IronPDF中的渲染选项通过ChromePdfRenderer类自定义PDF生成,控制设置如边距、页眉、页脚、纸张大小、JavaScript执行和CSS媒体类型,以从HTML、CSS和其他内容源创建精确格式化的PDF文档。

快速入门:在 C# 中应用渲染选项

  1. 通过 NuGet 包管理器安装 IronPDF
  2. 创建一个ChromePdfRenderer实例
  3. 通过RenderingOptions属性配置渲染选项
  4. 将您的内容(HTML、Markdown 等)渲染为 PDF 5.保存生成的 PDF 文档
  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    new IronPdf.ChromePdfRenderer { RenderingOptions = { PrintHtmlBackgrounds = true, MarginTop = 0, MarginBottom = 0, CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print, HtmlHeader = new IronPdf.HtmlHeaderFooter { HtmlFragment = "<div>My Header</div>" }, Language = "en-US", Timeout = 120000 } }
        .RenderHtmlStringAsPdf("<h1>Hello Options</h1>")
        .SaveAs("renderingOptions.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer

PDF 生成中的渲染选项是决定如何创建、显示和打印 PDF 文档的设置。 这些选项包括渲染表单元素、启用 JavaScript、生成目录、添加页眉和页脚、调整页边距、设置纸张大小等。

IronPDF中的ChromePdfRenderer类提供各种渲染选项以自定义PDF生成。 它包含PaperFit,一个控制PDF页面内容布局的管理器,提供响应式CSS3布局或连续供稿等不同样式。 在处理复杂文档时,您可能需要在应用渲染选项后合并或拆分 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")
$vbLabelText   $csharpLabel

高级渲染选项示例

本综合示例演示了如何结合多种渲染选项生成专业文档。 当您需要添加页眉和页脚或使用自定义纸张尺寸时,这种方法会有所帮助:

:path=/static-assets/pdf/content-code-examples/how-to/rendering-options-3.cs
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.WaitFor.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 As 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.WaitFor.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")
$vbLabelText   $csharpLabel

Icon Quote related to 高级渲染选项示例

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 高级渲染选项示例

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 高级渲染选项示例

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 高级渲染选项示例

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 高级渲染选项示例

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 高级渲染选项示例

David Jones

首席软件工程师,Agorus Build

查看案例研究

有哪些可用的渲染选项?

高级选项可定义 PDF 渲染设置,如边距、纸张方向、纸张大小等。 当您需要设置自定义边距或使用不同的视口设置和缩放级别时,了解这些选项会有所帮助。

哪些渲染选项最常用?

最常用的渲染选项包括页边距设置、纸张大小配置、页眉/页脚设置和启用 JavaScript。 这些选项涵盖了大多数 PDF 定制需求。 对于基于网络的内容,JavaScript 渲染选项可确保动态元素的正确渲染。

如何选择正确的渲染选项?

根据您的要求选择渲染选项:打印布局使用页边距设置,动态网页内容启用 JavaScript,专业文档配置页眉/页脚,特定输出格式调整纸张大小。 在处理网页内容时,应考虑 CSS 媒体类型,以获得最佳渲染效果。

何时应使用高级渲染选项?

在使用自定义 CSS 注入、LaTeX 数学渲染、灰度输出等专业功能时,或在处理需要特定 JavaScript 执行时间的复杂网络应用程序时,请使用高级渲染选项。 WaitFor类提供对复杂情景渲染延迟的精确控制。

使用表单元素

当 HTML 包含表单元素时,IronPDF 会自动将其转换为交互式 PDF 表单:

:path=/static-assets/pdf/content-code-examples/how-to/rendering-options-4.cs
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")
$vbLabelText   $csharpLabel

下表说明了可用的不同选项。

类别 ChromePdfRenderer
说明 用于定义 PDF 打印输出选项,如纸张大小、DPI、页眉和页脚
属性/功能 翻译类型 说明
CustomCookies Dictionary<string, string> 用于 HTML 渲染的自定义 Cookie。Cookie 不会在两次渲染之间持续存在,每次都必须设置。
PaperFit VirtualPaperLayoutManager 用于设置虚拟纸张布局的管理器,可控制 PDF "纸张 "页面的内容布局。包括 Chrome 浏览器默认行为、缩放、响应式 CSS3 布局、缩放至页面和连续进纸式 PDF 页面设置选项。
UseMarginsOnHeaderAndFooter 使用边距 在呈现页眉和页脚时,使用主文档中的页边距值。
CreatePdfFormsFromHtml 布尔 将所有 HTML 表单元素转化为可编辑的 PDF 表单。默认值为 true。
CssMediaType PdfCssMediaType 启用 Media="screen" CSS 样式和样式表。默认值为 PdfCssMediaType.Screen。
CustomCssUrl 字符串 允许在渲染前将自定义 CSS 样式表应用于 HTML。可以是本地文件路径或远程 URL。仅适用于将 HTML 呈现为 PDF 时。
EnableJavaScript 布尔 使 JavaScript 和 JSON 能够在页面呈现之前执行。非常适合从 Ajax / Angular 应用程序中打印。默认值为 false。
EnableMathematicalLaTex 布尔 实现数学 LaTeX 元素的渲染。
JavaScript 字符串 在加载所有 HTML 之后、PDF 呈现之前执行自定义 JavaScript 字符串。
JavaScriptMessageListener 字符串代理 浏览器 JavaScript 控制台消息可用时调用的方法回调。
首页编号 int 在 PDF 页眉和页脚中使用的第一个页码。默认值为 1。
目录 TableOfContentsTypes 在 HTML 文档中找到 ID 为 "IronPDF-toc" 的元素的位置生成目录。
GrayScale 布尔 输出黑白 PDF。默认值为假。
文本头 ITextHeaderFooter 将每个 PDF 页面的页脚内容设置为文本,支持 "邮件合并 "并自动将 URL 转变为超链接。
文本脚注
Html 标头 HtmlHeaderFooter 将每个 PDF 页面的页眉内容设置为 HTML。支持 "邮件合并"。
HtmlFooter
输入编码 编码 输入字符编码字符串。默认值为 Encoding.UTF8。
页边距 double PDF 顶部 "纸张 "页边距,单位为毫米。对于无边框和商业印刷应用,设置为零。默认值为 25。
MarginRight double PDF 右 "纸 "边距,单位为毫米。对于无边框和商业印刷应用,设置为零。默认值为 25。
边距下限 double PDF 底部 "纸张 "页边距,单位为毫米。对于无边框和商业印刷应用,设置为零。默认值为 25。
边距左移 double PDF 左 "纸 "边距,单位为毫米。对于无边框和商业印刷应用,设置为零。默认值为 25。
文件方向 PdfPaperOrientation PDF 纸张方向,如纵向或横向。默认值为纵向。
纸张大小 PdfPaperSize 设置纸张大小
SetCustomPaperSizeinCentimeters double 以厘米为单位设置纸张大小。
SetCustomPaperSizeInInches 以英寸为单位设置纸张大小。
SetCustomPaperSizeinMilimeters 以毫米为单位设置纸张大小。
以像素或点为单位设置自定义纸张大小 以屏幕像素或打印机点为单位设置纸张大小。
PrintHtmlBackgrounds 布尔 表示是否从 HTML 打印背景颜色和图像。默认值为 true。
RequestContext 请求上下文 请求为该译文提供上下文,确定某些资源(如 cookie)的隔离。
超时 整数 渲染超时(秒)。默认值为 60。
标题 字符串 PDF 文档名称和标题元数据在 IronPDF MVC 和 Razor 扩展中有助于邮件合并和自动文件命名。
ForcePaperSize 布尔 在从 HTML 生成 PDF 后,通过调整页面大小,强制页面大小与通过 IronPdf.ChromePdfRenderOptions.PaperSize 指定的完全一致。在将 HTML 渲染为 PDF 时,帮助纠正页面大小的微小错误。
WaitFor WaitFor 一个封装对象,用于保存等待机制的配置,以便用户在呈现之前等待特定事件。默认情况下,它不会等待任何事件。

准备好探索更多功能了吗? 请访问我们的教程页面: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 以生成动态内容。在创建报告、发票或任何需要精确格式的文档时,这种控制水平至关重要。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 20,296,129 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。