Cómo establecer márgenes personalizados

por Jordi Bardia

Cuando se trabaja con PDF o con cualquier otro tipo de documento, a menudo es necesario especificar los márgenes, para ajustarse a las distintas normas. Por ejemplo, tanto el formato MLA como el APA exigen márgenes de 1 pulgada, mientras que algunas universidades pueden exigir márgenes de 1,5 pulgadas para los trabajos de tesis.

IronPDF facilita el establecimiento de márgenes personalizados al renderizar un PDF a partir de HTML; todo lo que se necesita es una sencilla configuración.


Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de margen personalizado

Para establecer márgenes personalizados, primero instancie la clase ChromePdfRenderer. Con ChromePdfRenderer, puedes acceder al objeto RenderingOptions, desde el que puedes establecer los márgenes específicos en milímetros para la parte superior, inferior, izquierda y derecha, como se muestra a continuación:

:path=/static-assets/pdf/content-code-examples/how-to/custom-margins-set-margins.cs
ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
renderer.RenderingOptions.MarginBottom = 40;
Dim renderer As New ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
renderer.RenderingOptions.MarginBottom = 40
VB   C#

Tenga en cuenta que esto se añade a los márgenes que se establecen en la sección style del HTML. Por ejemplo, en el siguiente ejemplo, los márgenes se establecen inicialmente en 50 mm en el html, pero al establecer los márgenes para cada lado en RenderingOptions se añaden otros 30 mm a los márgenes, haciéndolos de 80 mm:

:path=/static-assets/pdf/content-code-examples/how-to/custom-margins-set-margins-with-css.cs
const string htmlWithStyle = @"
<!DOCTYPE html>
<html>
    <head>
        <style>
            body {margin: 50mm 50mm 50mm 50mm;}
        </style>
    </head>
<body>
    <h1>Hello World!</h1>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.MarginTop = 30;
renderer.RenderingOptions.MarginLeft = 30;
renderer.RenderingOptions.MarginRight = 30;
renderer.RenderingOptions.MarginBottom = 30;

PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlWithStyle);
pdf.SaveAs("PdfWithCustomMargins.pdf");
Const htmlWithStyle As String = "
<!DOCTYPE html>
<html>
    <head>
        <style>
            body {margin: 50mm 50mm 50mm 50mm;}
        </style>
    </head>
<body>
    <h1>Hello World!</h1>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()

renderer.RenderingOptions.MarginTop = 30
renderer.RenderingOptions.MarginLeft = 30
renderer.RenderingOptions.MarginRight = 30
renderer.RenderingOptions.MarginBottom = 30

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlWithStyle)
pdf.SaveAs("PdfWithCustomMargins.pdf")
VB   C#

A continuación se muestra el PDF resultante:

Establecer margen personalizado en cabecera/pie

Por defecto, los márgenes establecidos en RenderingOptions no se aplican a los encabezados y pies de página del documento. Para establecer los mismos márgenes personalizados del documento en los encabezados y pies de página, configure la propiedad UseMarginsOnHeaderAndFooter en RenderingOptions:

:path=/static-assets/pdf/content-code-examples/how-to/custom-margins-use-margins-header-footer.cs
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All
VB   C#

Es posible especificar qué márgenes establecer en la cabecera y el pie de página. Si desea consultar una lista completa de enums para establecer márgenes en encabezados y pies de página, eche un vistazo a nuestra sección Referencia API. A continuación se muestran algunos ejemplos de especificación de los márgenes que deben establecerse:

:path=/static-assets/pdf/content-code-examples/how-to/custom-margins-use-specific-margins-header-footer.cs
//  Utilice sólo el margen izquierdo del documento.
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left;

//  Utilice sólo los márgenes izquierdo y derecho del documento.
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.LeftAndRight;
'  Utilice sólo el margen izquierdo del documento.
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left

'  Utilice sólo los márgenes izquierdo y derecho del documento.
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.LeftAndRight
VB   C#

Jordi Bardia

Ingeniero de software

Jordi es más competente en Python, C# y C++, cuando no está aprovechando sus habilidades en Iron Software; está programando juegos. Compartiendo responsabilidades en las pruebas de productos, el desarrollo de productos y la investigación, Jordi añade un inmenso valor a la mejora continua de los productos. La variada experiencia le mantiene desafiado y comprometido, y dice que es uno de sus aspectos favoritos de trabajar con Iron Software. Jordi creció en Miami, Florida, y estudió Informática y Estadística en la Universidad de Florida.