如何使用 C# 在 IronPDF 中使用渲染選項
IronPDF 的渲染選項透過 ChromePdfRenderer 類別自訂 PDF 生成,可控制邊距、頁首、頁尾、紙張尺寸、JavaScript 執行及 CSS 媒體類型等設定,藉此從 HTML、CSS 及其他內容來源生成格式精確的 PDF 文件。
快速入門:在C#中應用渲染選項
- 通過NuGet套件管理器安裝IronPDF
- 建立一個
ChromePdfRenderer實例 - 透過
RenderingOptions屬性設定渲染選項 - 將您的內容(HTML、Markdown等)渲染為PDF 5.儲存結果 PDF 文件
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf
PM > Install-Package IronPdf -
請複製並執行此程式碼片段。
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"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronPDF
PDF 生成中的渲染選項是決定如何創建、顯示和列印 PDF 文件的設置。 這些選項包括渲染表單元素、啟用 JavaScript、產生內容表、新增頁首和頁尾、調整頁邊距、設定紙張大小等。
IronPDF 中的 ChromePdfRenderer 類別提供了多種渲染選項,用於自訂 PDF 生成。 其中包含 PaperFit,這是一個用於控制 PDF 頁面內容佈局的管理工具,提供多種樣式,例如響應式 CSS3 佈局或連續流式佈局。 在處理複雜的文件時,您可能需要在套用渲染選項之後合併或分割 PDF。
最小工作流程(5 個步驟)
- 下載 C# 庫以使用渲染選項
- 為 PDF 轉換準備 HTML 資產或檔案
- 實例化ChromePdfRenderer類
- 訪問RenderingOptions屬性以配置設置
- 以所需的格式渲染 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")
進階繪圖選項範例
此綜合範例展示結合多種渲染選項以產生專業的文件。 當您需要添加頁首和頁尾或使用自訂紙張尺寸時,這種方法會有所幫助:
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")
有哪些可用的渲染選項?
進階選項可定義邊界、紙張方向、紙張大小等 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")
下面的表格說明了不同的選項。
| 班級 | 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 以呈現動態內容。在製作報告、發票或任何需要精確格式設定的文件時,此等控制層級至關重要。

