DEV Community

IronSoftware
IronSoftware

Posted on

PDF Custom Paper Size in C# (.NET Guide)

PDFs don't have to be A4 or Letter. Create labels, receipts, posters, or any custom dimension. IronPDF supports standard sizes and unlimited custom dimensions.

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new [ChromePdfRenderer](https://ironpdf.com/blog/videos/how-to-render-webgl-sites-to-pdf-in-csharp-ironpdf/)();

// Custom size: 100mm x 150mm (small receipt)
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(100, 150);

var pdf = renderer.RenderHtmlAsPdf("<h1>Receipt</h1><p>Thank you!</p>");
pdf.SaveAs("receipt.pdf");
Enter fullscreen mode Exit fullscreen mode

Specify dimensions in millimeters, inches, or points.

How Do I Use Standard Paper Sizes?

IronPDF includes ~50 preset paper sizes:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// Common presets
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;       // 210 x 297 mm
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;   // 8.5 x 11 in
renderer.RenderingOptions.PaperSize = PdfPaperSize.Legal;    // 8.5 x 14 in
renderer.RenderingOptions.PaperSize = PdfPaperSize.A3;       // 297 x 420 mm
renderer.RenderingOptions.PaperSize = PdfPaperSize.A5;       // 148 x 210 mm

var pdf = renderer.RenderHtmlAsPdf("<h1>Document</h1>");
pdf.SaveAs("standard-size.pdf");
Enter fullscreen mode Exit fullscreen mode

What Are Common Paper Sizes?

Size Dimensions (mm) Dimensions (in) Use Case
A4 210 x 297 8.27 x 11.69 International standard
Letter 216 x 279 8.5 x 11 US standard
Legal 216 x 356 8.5 x 14 Contracts, legal docs
A3 297 x 420 11.69 x 16.54 Posters, large format
A5 148 x 210 5.83 x 8.27 Booklets, flyers
Tabloid 279 x 432 11 x 17 Newspapers

How Do I Set Custom Dimensions?

Three methods based on your preferred units:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// Method 1: Millimeters
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(100, 150);

// Method 2: Inches
renderer.RenderingOptions.SetCustomPaperSizeInInches(4, 6);

// Method 3: Points (72 points = 1 inch)
renderer.RenderingOptions.SetCustomPaperSizeInPixelsOrPoints(288, 432);
Enter fullscreen mode Exit fullscreen mode

All three create the same 4x6 inch document.

How Do I Create Receipt Paper?

Thermal receipt printers use narrow paper:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// Standard 80mm receipt width, variable height
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(80, 200);

// Minimal margins for receipt printers
renderer.RenderingOptions.MarginTop = 5;
renderer.RenderingOptions.MarginBottom = 5;
renderer.RenderingOptions.MarginLeft = 5;
renderer.RenderingOptions.MarginRight = 5;

var html = @"
<style>
    body { font-family: monospace; font-size: 12px; }
    .center { text-align: center; }
    hr { border-top: 1px dashed black; }
</style>
<div class='center'>
    <h3>STORE NAME</h3>
    <p>123 Main Street</p>
</div>
<hr>
<p>Item 1 .............. $9.99</p>
<p>Item 2 .............. $14.99</p>
<hr>
<p><strong>Total: $24.98</strong></p>
<div class='center'>
    <p>Thank you!</p>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("receipt.pdf");
Enter fullscreen mode Exit fullscreen mode

How Do I Create Labels?

Shipping labels, product labels, or stickers:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// 4x6 inch shipping label
renderer.RenderingOptions.SetCustomPaperSizeInInches(4, 6);
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;

var html = @"
<style>
    body { font-family: Arial; }
    .barcode { font-size: 24px; letter-spacing: 5px; }
    .address { font-size: 14px; margin: 20px 0; }
</style>
<h2>SHIP TO:</h2>
<div class='address'>
    <strong>John Doe</strong><br>
    123 Main Street<br>
    Anytown, ST 12345
</div>
<div class='barcode'>1Z999AA10123456784</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("shipping-label.pdf");
Enter fullscreen mode Exit fullscreen mode

How Do I Create Business Cards?

Standard business card size:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// Standard business card: 3.5 x 2 inches (89 x 51 mm)
renderer.RenderingOptions.SetCustomPaperSizeInInches(3.5, 2);
renderer.RenderingOptions.MarginTop = 5;
renderer.RenderingOptions.MarginBottom = 5;
renderer.RenderingOptions.MarginLeft = 5;
renderer.RenderingOptions.MarginRight = 5;

var html = @"
<style>
    body {
        font-family: Arial;
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: 100%;
    }
    h2 { margin: 0; font-size: 14px; }
    p { margin: 2px 0; font-size: 10px; }
</style>
<h2>John Smith</h2>
<p>Senior Developer</p>
<p>john@company.com</p>
<p>+1 (555) 123-4567</p>";

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("business-card.pdf");
Enter fullscreen mode Exit fullscreen mode

How Do I Create Poster Sizes?

Large format documents:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// A2 poster: 420 x 594 mm
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(420, 594);

// Or US poster: 18 x 24 inches
renderer.RenderingOptions.SetCustomPaperSizeInInches(18, 24);

var pdf = renderer.RenderHtmlAsPdf(@"
<style>
    body {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100%;
        font-family: Impact;
    }
    h1 { font-size: 120px; color: red; }
</style>
<h1>SALE!</h1>");

pdf.SaveAs("poster.pdf");
Enter fullscreen mode Exit fullscreen mode

How Do I Combine Size with Orientation?

Set both dimensions and orientation:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// A4 Landscape
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Or specify landscape dimensions directly
// A4 Landscape = 297 x 210 mm (width x height)
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(297, 210);
Enter fullscreen mode Exit fullscreen mode

When setting custom sizes, width > height creates landscape.

How Do I Create Multiple Sizes?

Generate the same content in different sizes:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

string html = "<h1>Document Title</h1><p>Content...</p>";

var sizes = new Dictionary<string, (double width, double height)>
{
    { "a4", (210, 297) },
    { "letter", (216, 279) },
    { "a5", (148, 210) }
};

foreach (var (name, (width, height)) in sizes)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(width, height);

    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"document-{name}.pdf");
}
Enter fullscreen mode Exit fullscreen mode

How Do I Handle Fit to Page?

Content might need scaling for different sizes:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(100, 100);

// Enable fit-to-page scaling
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom;

// Or use CSS for responsive layout
var html = @"
<style>
    @page { size: 100mm 100mm; margin: 5mm; }
    body { font-size: 10px; }
    img { max-width: 100%; height: auto; }
</style>
<h1>Scaled Content</h1>";

var pdf = renderer.RenderHtmlAsPdf(html);
Enter fullscreen mode Exit fullscreen mode

What About Viewport Width?

Control how HTML renders before conversion:

using IronPdf;
// Install via NuGet: Install-Package IronPdf

var renderer = new ChromePdfRenderer();

// Small paper with narrow viewport
renderer.RenderingOptions.SetCustomPaperSizeInMillimeters(100, 150);
renderer.RenderingOptions.ViewPortWidth = 300; // Pixels

var pdf = renderer.RenderHtmlAsPdf(html);
Enter fullscreen mode Exit fullscreen mode

Viewport affects responsive CSS breakpoints.

Quick Reference

Paper Size Millimeters Inches
A4 210 x 297 8.27 x 11.69
Letter 216 x 279 8.5 x 11
Legal 216 x 356 8.5 x 14
A3 297 x 420 11.69 x 16.54
A5 148 x 210 5.83 x 8.27
Business Card 89 x 51 3.5 x 2
4x6 Photo 102 x 152 4 x 6
Method Unit
SetCustomPaperSizeInMillimeters(w, h) Millimeters
SetCustomPaperSizeInInches(w, h) Inches
SetCustomPaperSizeInPixelsOrPoints(w, h) Points (72/inch)
PaperSize = PdfPaperSize.X Preset

Custom paper sizes let you create PDFs for any printing need—from tiny labels to large posters.

For more paper size options, see the IronPDF custom paper size documentation.


Written by Jacob Mellor, CTO at Iron Software. Jacob created IronPDF and leads a team of 50+ engineers building .NET document processing libraries.

Top comments (0)