C#でIronPDFのレンダリングオプションを使ってPDF変換・PDF編集をカスタマイズする方法
IronPDFのレンダリング オプションは、ChromePdfRenderer クラスを通じて PDF 生成をカスタマイズし、余白、ヘッダー、フッター、用紙サイズ、 JavaScript実行、CSS メディア タイプなどの設定を制御して、HTML、CSS、およびその他のコンテンツ ソースから正確にフォーマットされた PDF ドキュメントを作成します。
クイックスタート: C# でレンダリングオプションを適用してPDF変換をカスタマイズする
1.NuGetパッケージマネージャ経由でIronPdfをインストールする
ChromePdfRendererインスタンスを作成するRenderingOptionsプロパティを通じてレンダリング オプションを設定します。
4.コンテンツ(HTML、Markdownなど)をPDFにレンダリングします。 5.完成したPDFドキュメントを保存する
-
IronPDF をNuGetパッケージマネージャでインストール
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生成をカスタマイズするための様々なレンダリングオプションを提供します。 これには、PDF ページ上のコンテンツ レイアウトを制御し、レスポンシブ CSS3 レイアウトや連続フィードなどのさまざまなスタイルを提供するマネージャーである PaperFit が含まれています。 複雑な文書を扱う場合、レンダリングオプションを適用した後、PDFを結合または分割する必要があるかもしれません。
最小限のワークフロー(5ステップ)
- レンダリング オプションを使用する C# ライブラリをダウンロードする。
- HTMLアセットまたはPDF変換用ファイルの準備
- **`ChromePdfRenderer`**クラスをインスタンス化します。
- 設定を構成するには、**`RenderingOptions`**プロパティにアクセスしてください。
- 望む形式で PDF をレンダリング
IronPDFでレンダリングオプションを使うには?
多くのレンダリングオプションプロパティはHTMLからPDFへの変換用に設計されていますが、他のPDF変換タイプでも機能します。 MarkdownをPDFにレンダリングし、レンダリング・オプションを使って出力を設定しましょう。 特にHTMLの変換については、HTMLファイルをPDFに変換する、またはHTML文字列をPDFに変換するについて学んでください。
なぜレンダリング オプションを設定する必要があるのですか?
レンダリングオプションを設定することで、カスタム用紙サイズ、特定の余白、ヘッダーとフッター、動的コンテンツ用の有効なJavaScriptなど、正確な仕様でPDFが生成されるようにします。 このコントロールは、Professionalな文書やレポート用に新しい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")
高度なレンダリング オプションの例
この包括的な例では、複数のレンダリングオプションを組み合わせて、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")
利用可能なレンダリング オプションには何がありますか?
高度なオプションは、余白、用紙の向き、用紙サイズなどのPDFレンダリング設定を定義します。 これらのオプションを理解することは、カスタムマージンを設定したり、異なるビューポート設定やズームレベルで作業する必要がある場合に役立ちます。
どのレンダリング オプションが最も一般的に使用されていますか?
最もよく使用されるレンダリングオプションには、マージン設定、用紙サイズ設定、ヘッダー/フッター設定、JavaScriptの有効化などがあります。 これらのオプションは、ほとんどのPDFカスタマイズのニーズに対応しています。 ウェブベースのコンテンツでは、JavaScriptのレンダリングオプションにより、動的要素が正しくレンダリングされるようにします。
正しいレンダリング オプションを選択するにはどうすればよいですか?
印刷レイアウトには余白設定を使用し、動的なWebコンテンツにはJavaScriptを有効にし、プロフェッショナル文書にはヘッダー/フッターを設定し、特定の出力形式には用紙サイズを調整するなど、要件に応じてレンダリングオプションを選択します。 ウェブコンテンツを扱う際には、最適なレンダリングのためにCSSのメディアタイプを考慮してください。
高度なレンダリング オプションはいつ使用すべきですか?
カスタムCSSインジェクション、LaTeX数学レンダリング、グレースケール出力などの特殊な機能や、特定 for 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")
以下は、利用可能なさまざまなオプションを示す表です。
| 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メディアタイプ、ヘッダー、タイムアウト値など、複数のオプションを1行で設定できます。
HTML以外のコンテンツでレンダリングオプションを使用できますか?
多くのレンダリングオプションプロパティはHTMLからPDFへの変換用に設計されていますが、IronPDFの他のPDF変換タイプでも機能します。レンダリングオプションはMarkdownをPDFやその他のサポートされているフォーマットに変換する際に適用することができ、ソースのコンテンツタイプに関係なく、最終的なPDF出力を同じレベルでコントロールすることができます。
PaperFitとは何ですか?
PaperFitはIronPDFのChromePdfRendererクラスのマネージャーで、PDFページのコンテンツレイアウトを制御します。レスポンシブCSS3レイアウトや連続フィードオプションなど、さまざまなレンダリングスタイルを提供し、特定の要件に応じてPDFページ上にコンテンツが適切に収まるようにします。
なぜPDFのレンダリングオプションを設定する必要があるのですか?
IronPDFでレンダリングオプションを設定することで、プロフェッショナルなドキュメントに必要な正確な仕様でPDFを生成することができます。これにはカスタム用紙サイズ、特定の余白、ヘッダーとフッター、ダイナミックコンテンツのための有効なJavaScriptなどが含まれます。このレベルのコントロールはレポート、請求書、または正確なフォーマットを必要とするドキュメントを作成する際に非常に重要です。

