How to Use the Rendering Options

Rendering options in PDF generation refer to the settings and configurations that determine how a PDF document is created, displayed, and printed. These options can include a wide range of settings, such as rendering form field elements, enabling JavaScript, generating a table of contents, adding headers and footers, adjusting margins, setting PDF paper size, and more.

The ChromePdfRenderer class in IronPDF provides various rendering options that allow users to customize how PDFs are generated. It includes PaperFit, a manager that controls how content is laid out on PDF pages, offering different layout styles such as responsive CSS3 layouts or continuous feed.

Get started with IronPDF

Start using IronPDF in your project today with a free trial.

First Step:
green arrow pointer



Rendering Options Example

Despite many rendering option properties being specifically designed for HTML-to-PDF conversion, they can also be used in other types of PDF conversions. Let's render Markdown syntax to PDF and use the rendering options to configure the PDF output.

: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
renderer.RenderingOptions.PrintHtmlBackgrounds = true; // Enable printing of HTML backgrounds to ensure all styles are visible.

// 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.SetCustomPaperSizeInMillimeters(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

All Rendering Options

We have some advanced options that define PDF-rendering options like adjusting margins, paper orientation, paper size, and more.

Below is a table to illustrate the many different options.

ClassChromePdfRenderer
DescriptionUsed to define PDF printout options, like paper size, DPI, headers, and footers
Properties / functionsTypeDescription
CustomCookiesDictionaryCustom cookies for the HTML render. Cookies do not persist between renders and must be set each time.
PaperFitVirtualPaperLayoutManagerA 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.
UseMarginsOnHeaderAndFooterUseMarginsUse margin values from the main document when rendering headers and footers.
CreatePdfFormsFromHtmlboolTurns all HTML form elements into editable PDF forms. Default value is true.
CssMediaTypePdfCssMediaTypeEnables Media="screen" CSS Styles and StyleSheets. Default value is PdfCssMediaType.Screen.
CustomCssUrlstringAllows 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.
EnableJavaScriptboolEnables JavaScript and JSON to be executed before the page is rendered. Ideal for printing from Ajax / Angular Applications. Default value is false.
EnableMathematicalLaTexboolEnables rendering of Mathematical LaTeX Elements.
JavascriptstringA custom JavaScript string to be executed after all HTML has loaded but before PDF rendering.
JavascriptMessageListenerStringDelegateA method callback to be invoked whenever a browser JavaScript console message becomes available.
FirstPageNumberintFirst page number to be used in PDF Headers and Footers. Default value is 1.
TableOfContentsTableOfContentsTypesGenerates a table of contents at the location in the HTML document where an element is found with id "ironpdf-toc".
GrayScaleboolOutputs a black-and-white PDF. Default value is false.
TextHeaderITextHeaderFooterSets the footer content for every PDF page as text, supporting 'mail-merge' and automatically turning URLs into hyperlinks.
TextFooter
HtmlHeaderHtmlHeaderFooterSets the header content for every PDF page as HTML. Supports 'mail-merge'.
HtmlFooter
InputEncodingEncodingThe input character encoding as a string. Default value is Encoding.UTF8.
MarginTopdoubleTop PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25.
MarginRightdoubleRight PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25.
MarginBottomdoubleBottom PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25.
MarginLeftdoubleLeft PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25.
PaperOrientationPdfPaperOrientationThe PDF paper orientation, such as Portrait or Landscape. Default value is Portrait.
PaperSizePdfPaperSizeSets the paper size
SetCustomPaperSizeinCentimetersdoubleSets the paper size in centimeters.
SetCustomPaperSizeInInchesSets the paper size in inches.
SetCustomPaperSizeinMilimetersSets the paper size in millimeters.
SetCustomPaperSizeinPixelsOrPointsSets the paper size in screen pixels or printer points.
PrintHtmlBackgroundsBooleanIndicates whether to print background colors and images from HTML. Default value is true.
RequestContextRequestContextsRequest context for this render, determining isolation of certain resources such as cookies.
TimeoutIntegerRender timeout in seconds. Default value is 60.
TitleStringPDF Document Name and Title metadata, useful for mail-merge and automatic file naming in the IronPdf MVC and Razor extensions.
ForcePaperSizeBooleanForce 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.
WaitForWaitForA 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.

Frequently Asked Questions

What are rendering options in PDF generation?

Rendering options in PDF generation refer to settings and configurations that determine how a PDF document is created, displayed, and printed. These options include rendering form fields, enabling JavaScript, generating a table of contents, adding headers and footers, adjusting margins, setting paper size, and more.

What is the ChromePdfRenderer class in IronPDF?

The ChromePdfRenderer class in IronPDF provides various rendering options that allow users to customize how PDFs are generated. It includes features like PaperFit, which controls content layout on PDF pages, offering different layout styles such as responsive CSS3 layouts or continuous feed.

How can I start using rendering options with IronPDF?

To start using rendering options with IronPDF, download the C# library, prepare the HTML assets or file to convert into PDF, instantiate the ChromePdfRenderer class, access the RenderingOptions property to configure settings, and render the PDF in the desired format.

Can rendering options be used for non-HTML to PDF conversions?

Yes, while many rendering option properties are specifically designed for HTML-to-PDF conversion, they can also be applied to other types of PDF conversions, such as rendering Markdown syntax to PDF.

How do I enable JavaScript when rendering PDFs with IronPDF?

To enable JavaScript when rendering PDFs with IronPDF, set the EnableJavaScript property to true in the RenderingOptions of the ChromePdfRenderer class.

What is the purpose of the PaperFit manager in IronPDF?

The PaperFit manager in IronPDF controls how content is laid out on PDF 'paper' pages. It offers various layout options such as Default Chrome Behavior, Zoomed, Responsive CSS3 Layouts, Scale-To-Page, and Continuous Feed style setups.

How can I set custom paper sizes in IronPDF?

In IronPDF, you can set custom paper sizes using methods such as SetCustomPaperSizeinCentimeters, SetCustomPaperSizeInInches, SetCustomPaperSizeinMilimeters, or SetCustomPaperSizeinPixelsOrPoints.

What is the default paper orientation in IronPDF?

The default paper orientation in IronPDF is Portrait.

How do I apply custom CSS styles when rendering HTML to PDF?

To apply custom CSS styles when rendering HTML to PDF in IronPDF, use the CustomCssUrl property to specify a local file path or a remote URL for the CSS style-sheet.

Can I create editable PDF forms from HTML form elements using IronPDF?

Yes, you can create editable PDF forms from HTML form elements using IronPDF by setting the CreatePdfFormsFromHtml property to true in the RenderingOptions.

Chaknith related to All Rendering Options
Software Engineer
Chaknith is the Sherlock Holmes of developers. It first occurred to him he might have a future in software engineering, when he was doing code challenges for fun. His focus is on IronXL and IronBarcode, but he takes pride in helping customers with every product. Chaknith leverages his knowledge from talking directly with customers, to help further improve the products themselves. His anecdotal feedback goes beyond Jira tickets and supports product development, documentation and marketing, to improve customer’s overall experience.When he isn’t in the office, he can be found learning about machine learning, coding and hiking.