如何在 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, 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");
  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

高级渲染选项示例

此综合示例演示了如何结合多种渲染选项来生成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")
$vbLabelText   $csharpLabel

有哪些可用的渲染选项?

高级选项用于定义 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")
$vbLabelText   $csharpLabel

下表展示了可用的不同选项。

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 以生成动态内容。在创建报告、发票或任何需要精确格式的文档时,这种控制水平至关重要。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

还在滚动吗?

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