Interface IMargins
Document margin values, in millimeters
Namespace: IronPdf
Assembly: IronPdf.dll
Syntax
public interface IMargins
The four page margins on IronPDF render configuration are read and set through IMargins. It declares four double properties expressed in millimeters: MarginTop, MarginBottom, MarginLeft, and MarginRight. Each defaults to 25, and a value of zero is intended for borderless and commercial-print output. The concrete implementor in current IronPDF builds is ChromePdfRenderOptions, the configuration object attached to every ChromePdfRenderer instance.
The contract exists so that any code path that needs to read or adjust the four margin values can do so through a stable, narrow surface. Margin assignment is the most common single configuration step in HTML-to-PDF rendering, with use cases including MLA or APA reports (1 inch on all sides), borderless print artwork (zero on all sides), and asymmetric letter layouts (wide top/bottom for letterhead, narrower sides). Treating the four properties as a contract means utility methods can validate or copy margin sets without binding to the entire rendering options surface.
Group the four members by axis when applying values: MarginTop and MarginBottom set vertical insets, and MarginLeft and MarginRight set horizontal insets. Margin units are millimeters and stack with any @page or margin rules declared in the source HTML, so combined output may exceed either source on its own. The header and footer fragments use a separate scope: assign ChromePdfRenderOptions.UseMarginsOnHeaderAndFooter to a value of the UseMargins enum-like type (None, Top, Bottom, Left, Right, TopAndBottom, LeftAndRight, or All) to control which edges share the body margin values. The custom margins how-to has a worked C# example of assigning all four edges.
using IronPdf;
var renderer = new ChromePdfRenderer();
// ChromePdfRenderOptions implements IMargins, so the four members are
// assigned directly on the rendering options instance.
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// The interface itself can stand in as a parameter type for shared logic.
ApplyApaMargins(renderer.RenderingOptions);
renderer.RenderHtmlAsPdf("<h1>Report</h1>")
.SaveAs("report.pdf");
static void ApplyApaMargins(IMargins target)
{
target.MarginTop = target.MarginBottom = 25.4;
target.MarginLeft = target.MarginRight = 25.4;
}Because the surface is small, the contract is well suited to helper methods that copy, scale, or validate margin sets across multiple renderers. For the full configuration object that exposes these properties alongside paper size, headers, footers, and CSS media handling, see the rendering options how-to and the custom margins example.
Properties
MarginBottom
Bottom Pdf "paper" margin in millimeters. Set to zero for border-less and commercial printing applications.
Default value is 25.
Declaration
double MarginBottom { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
MarginLeft
Left Pdf "paper" margin in millimeters. Set to zero for border-less and commercial printing applications.
Default value is 25.
Declaration
double MarginLeft { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
MarginRight
Right Pdf "paper" margin in millimeters. Set to zero for border-less and commercial printing applications.
Default value is 25.
Declaration
double MarginRight { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
MarginTop
Top Pdf "paper" margin in millimeters. Set to zero for border-less and commercial printing applications.
Default value is 25.
Declaration
double MarginTop { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |