如何使用 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 文件

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 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");
$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");
$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");
$vbLabelText   $csharpLabel

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

班級 ChromePdfRenderer
描述 用於定義 PDF 列印輸出選項,例如紙張尺寸、DPI、頁首和頁尾。
屬性/功能 類型 描述
CustomCookies Dictionar 用於 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` `使用邊界 渲染頁首和頁尾時,使用文件主文檔的邊距值。
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毫米。
MarginRight 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 完全符合專業文件所需的規格。這包括自訂紙張尺寸、特定邊距、頁首和頁尾,或啟用 JavaScript 以取得動態內容。在建立報告、發票或任何需要精確格式的文件時,此控制層級是非常重要的。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 17,570,948 | 版本: 2026.2 剛剛發布