Cómo establecer márgenes de papel para imprimir en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Los márgenes de impresión controlan el espacio en blanco entre el contenido de tu documento y los bordes de la página física. Configurarlos correctamente es fundamental para imprimir documento con márgenes precisos, previene texto cortado, asegura diseños consistentes entre impresoras y satisface los requisitos de formato para facturas, informes y documentos legales.

La clase Margins de IronPrint acepta valores en milímetros y ofrece tres sobrecargas de constructor — uniforme, horizontal/vertical y por lado — para que podamos cumplir con cualquier requisito de diseño en una sola línea. A continuación, recorremos cada enfoque, desde la instalación hasta la impresión con márgenes personalizados.

Guía rápida: Establecer márgenes de papel

  1. Instala IronPrint a través de NuGet: Install-Package IronPrint
  2. Agrega using IronPrint; al archivo
  3. Crea un objeto PrintSettings
  4. Asigna un valor Margins a PaperMargins (valores en milímetros)
  5. Pasa configuraciones a Printer.Print() con la ruta del archivo
  1. Instala IronPrint con el Administrador de Paquetes NuGet

    PM > Install-Package IronPrint
  2. Copie y ejecute este fragmento de código.

    using IronPrint;
    
    // Set 15 mm margins on all sides and print
    PrintSettings settings = new PrintSettings();
    settings.PaperMargins = new Margins(15);
    Printer.Print("report.pdf", settings);
  3. Despliegue para probar en su entorno real

    Comienza a usar IronPrint en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cómo puedo establecer márgenes iguales en todos los lados?

El constructor más simple toma un solo entero y lo aplica uniformemente a los cuatro lados. Pasamos el valor en milímetros:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-uniform-margins.cs
using IronPrint;

// 20 mm margin on every side
PrintSettings settings = new PrintSettings
{
    PaperMargins = new Margins(20),
    PaperSize = PaperSize.A4
};

Printer.Print("invoice.pdf", settings);
Imports IronPrint

' 20 mm margin on every side
Dim settings As New PrintSettings With {
    .PaperMargins = New Margins(20),
    .PaperSize = PaperSize.A4
}

Printer.Print("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Margins(20) establece Left, Top, Right, y Bottom cada uno a 20 mm. Esta es la opción más común para documentos de negocios estándar donde el espacio en blanco consistente en cada borde es suficiente.

IronPrint mide los márgenes en milímetros, lo cual evita la confusión de la clase System.Drawing.Printing.Margins que usa centésimas de pulgada. Un margen de 25.4 mm en IronPrint es equivalente a new System.Drawing.Printing.Margins(100) — no se requiere cálculo de conversión de nuestra parte.

¿Cómo configuro diferentes márgenes para cada lado?

Cuando un documento necesita espacio extra en la parte superior para un membrete o en la parte inferior para un pie de página, utilizamos el constructor de cuatro parámetros:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-per-side-margins.cs
using IronPrint;

// Left: 10 mm, Top: 25 mm, Right: 10 mm, Bottom: 20 mm
PrintSettings settings = new PrintSettings
{
    PaperMargins = new Margins(10, 25, 10, 20),
    PaperOrientation = PaperOrientation.Portrait
};

Printer.Print("letterhead.pdf", settings);
Imports IronPrint

' Left: 10 mm, Top: 25 mm, Right: 10 mm, Bottom: 20 mm
Dim settings As New PrintSettings With {
    .PaperMargins = New Margins(10, 25, 10, 20),
    .PaperOrientation = PaperOrientation.Portrait
}

Printer.Print("letterhead.pdf", settings)
$vbLabelText   $csharpLabel

El orden de los parámetros es left, top, right, bottom. Cada valor es independiente, por lo que podemos crear diseños asimétricos que acomoden encabezados, pies de página, bordes de encuadernación o espacio para perforaciones. La referencia de la API de la clase Margins documenta cada campo.

¿Qué opciones abreviadas existen para diseños de márgenes comunes?

La clase Margins de IronPrint ofrece dos constructores adicionales más allá de las versiones uniforme y por lado:

Abreviatura Horizontal / VerticalMargins(int horizontal, int vertical) establece izquierda+derecha en el primer valor y arriba+abajo en el segundo:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-shorthand-margins.cs
using IronPrint;

// 10 mm left & right, 20 mm top & bottom
PrintSettings settings = new PrintSettings
{
    PaperMargins = new Margins(10, 20)
};

Printer.Print("report-landscape.pdf", settings);
Imports IronPrint

' 10 mm left & right, 20 mm top & bottom
Dim settings As New PrintSettings With {
    .PaperMargins = New Margins(10, 20)
}

Printer.Print("report-landscape.pdf", settings)
$vbLabelText   $csharpLabel

Márgenes ceroMargins.Zero elimina todos los márgenes para impresión sin bordes:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-zero-margins.cs
PrintSettings borderless = new PrintSettings
{
    PaperMargins = Margins.Zero
};

Printer.Print("poster.png", borderless);
Dim borderless As New PrintSettings With {
    .PaperMargins = Margins.Zero
}

Printer.Print("poster.png", borderless)
$vbLabelText   $csharpLabel

Ten en cuenta que la mayoría de las impresoras físicas tienen un área mínima de impresión por hardware. Establecer Margins.Zero envía instrucciones de márgenes cero al controlador, pero la impresora aún puede cortar contenido cerca de los bordes dependiendo de sus capacidades.

¿Cómo combino márgenes con otras configuraciones de impresión?

PaperMargins es una propiedad en PrintSettings. Podemos combinarlo con tamaño de papel, orientación, DPI, copias, modo en escala de grises y selección de impresora en un único objeto de configuración:

:path=/static-assets/print/content-code-examples/how-to/set-paper-margins/set-paper-margins-combined-settings.cs
using IronPrint;

// Full print configuration for a quarterly report
PrintSettings settings = new PrintSettings
{
    PaperMargins = new Margins(15, 20, 15, 25),
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    Grayscale = false,
    PrinterName = "HP LaserJet Pro MFP M428"
};

Printer.Print("Q4-report.pdf", settings);
Imports IronPrint

' Full print configuration for a quarterly report
Dim settings As New PrintSettings With {
    .PaperMargins = New Margins(15, 20, 15, 25),
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .Grayscale = False,
    .PrinterName = "HP LaserJet Pro MFP M428"
}

Printer.Print("Q4-report.pdf", settings)
$vbLabelText   $csharpLabel

Para flujos de trabajo asíncronos — WPF, MAUI, o aplicaciones web de ASP.NET — reemplaza Printer.Print() con await Printer.PrintAsync() para evitar bloquear el hilo de la interfaz de usuario. El mismo objeto PrintSettings funciona con ambos métodos.

¿Cuales son mis próximos pasos?

Cubrimos cuatro maneras de configurar márgenes de impresión con IronPrint: márgenes uniformes usando Margins(int), control por lado con Margins(int, int, int, int), la abreviatura horizontal/vertical Margins(int, int), y la impresión sin bordes con Margins.Zero. Cada enfoque se integra en PrintSettings.PaperMargins y funciona tanto con Printer.Print() como con Printer.PrintAsync().

Para una mayor lectura, explora estos recursos:

Obtenga una licencia de prueba gratuita para probar todas las funciones en un entorno en vivo, o vea las opciones de licencias cuando esté listo para desplegar.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 38,930 | Versión: 2026.4 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPrint
ejecuta una muestra observa cómo tu documento llega a la impresora.