如何使用 C# 在 IronPDF 中使用渲染選項進行 PDF編輯

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

進階渲染選項範例

這個全面的範例展示如何結合多種渲染選項來產生專業文件。 當您需要添加頁首和頁尾或使用自訂紙張尺寸時,這種方法會很有幫助:

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 渲染設置,例如頁邊距、紙張方向、紙張大小等。 了解這些選項有助於您在需要設定自訂邊距或使用不同的視窗設定和縮放等級時進行操作。

最常用的渲染選項有哪些?

最常用的渲染選項包括邊距設定、紙張尺寸配置、頁首/頁尾設定和啟用JavaScript 。 這些選項可以滿足大多數PDF自訂需求。 對於基於 Web 的內容, JavaScript渲染選項可確保動態元素正確渲染。

如何選擇合適的渲染選項?

根據您的需求選擇渲染選項:使用邊距設定進行列印佈局,啟用JavaScript以顯示動態 Web 內容,配置頁首/頁尾以顯示專業文檔,並調整紙張大小以適應特定的輸出格式。 處理網頁內容時,請考慮使用 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

下表列出了各種可行的方案。

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.

準備好探索更多功能了嗎? 造訪我們的教學頁面: 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 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 18,135,201 | 版本: 2026.4 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 變成 PDF。