如何使用 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. using 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 自訂需求。 對於網頁型內容,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")
$vbLabelText   $csharpLabel

下面的表格說明了不同的選項。

班級 ChromePdfRenderer
描述 用於定義 PDF 列印輸出選項,例如紙張尺寸、DPI、頁首和頁尾。
屬性/功能 類型 描述
CustomCookies Dictionary 用於 HTML 渲染的自訂 Cookie。 Cookie 不會在渲染之間保留,每次渲染都必須重新設定。
`PaperFit VirtualPaperLayoutManager 用於設定虛擬紙張版面的管理器,可控制內容在 PDF"紙張"頁面上的版面方式。包含預設 Chrome 行為、縮放、響應式 CSS3 佈局、縮放至頁面和連續載入樣式 PDF 頁面設定的選項。
`UseMarginsOnHeaderAndFooter 使用邊界 渲染頁首和頁尾時,使用文件主文檔的邊距值。
CreatePdfFormsFromHtml bool 將所有 HTML 表單元素轉換為可編輯的 PDF 表單。預設值為 true。
`CssMedia類型 `PdfCssMedia類型 啟用 Media="screen" CSS 樣式和樣式表。預設值為 PdfCssMedia類型.Screen。
`CustomCssUrl `字串 允許在渲染 HTML 之前將自訂 CSS 樣式表套用至 HTML。可以是本機檔案路徑或遠端 URL。僅適用於將 HTML 渲染為 PDF 的情況。
`EnableJavaScript bool 允許在頁面渲染之前執行 JavaScript 和 JSON 程式碼。非常適合從 Ajax/Angular 應用程式進行列印。預設值為 false。
EnableMathematicalLaTex bool 啟用數學 LaTeX 元素的渲染。
JavaScript `字串 在所有 HTML 載入完畢後、PDF 渲染之前執行的自訂 JavaScript 字串。
JavaScriptMessageListener `StringDelegate 當瀏覽器 JavaScript 控制台訊息可用時,將呼叫該方法回呼。
`第一頁編號 int PDF頁首和頁尾中使用的起始頁碼。預設值為1。
內容表 `TableOfContents類型s 在HTML文件中,於找到元素具有id "IronPDF-toc" 的位置生成目錄。
`GrayScale bool 輸出黑白PDF檔。預設值為false。
文字標題 `ITextHeaderFooter 將每個 PDF 頁面的頁腳內容設定為文字,支援"郵件合併",並自動將 URL 轉換為超連結。
文字腳本
HtmlHeader `HtmlHeaderFooter 將每個 PDF 頁面的頁首內容設定為 HTML 格式。支援郵件合併。
`HtmlFooter
輸入編碼 編碼 輸入字元編碼(字串形式)。預設值為 Encoding.UTF8。
MarginTop double PDF檔案頂部"紙張"邊距,單位為毫米。設定為零適用於無邊距PDF和商業印刷應用。預設值為25毫米。
右對齊 double PDF右側"紙張"邊距,單位為毫米。設定為零適用於無邊距和商業印刷應用。預設值為25。
邊界底線 double PDF檔案底部"紙張"邊距,單位為毫米。設定為零適用於無邊距PDF和商業印刷應用。預設值為25毫米。
邊界左側 double PDF左側"紙張"邊距,單位為毫米。設定為零適用於無邊距和商業印刷應用。預設值為25。
紙張方向 PdfPaperOrientation PDF 紙張方向,例如縱向或橫向。預設值為縱向。
紙張大小 `PdfPaperSize 設定紙張尺寸
SetCustomPaperSizeinCentimeters double 設定紙張尺寸(單位:公分)。
`SetCustomPaperSizeInInches 設定紙張尺寸(英吋)。
SetCustomPaperSizeinMilimeters 設定紙張尺寸(單位:毫米)。
SetCustomPaperSizeinPixelsOrPoints 設定紙張尺寸,單位為螢幕像素或印表機點。
`PrintHtmlBackgrounds `布林 指示是否從 HTML 列印背景顏色和圖像。預設值為 true。
RequestContext RequestContexts 請求此渲染的上下文,確定某些資源(例如 cookie)的隔離情況。
Timeout Integer 渲染超時時間(秒)。預設值為 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 完全符合 Professional 文件所需的規格。這包括自訂紙張尺寸、特定邊距、頁首與頁尾,或啟用 JavaScript 以呈現動態內容。在製作報告、發票或任何需要精確格式設定的文件時,此等控制層級至關重要。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 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。