Cómo establecer márgenes de papel para imprimir en C
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
- Instala IronPrint a través de NuGet:
Install-Package IronPrint - Agrega
using IronPrint;al archivo - Crea un objeto
PrintSettings - Asigna un valor
MarginsaPaperMargins(valores en milímetros) - Pasa configuraciones a
Printer.Print()con la ruta del archivo
-
Instala IronPrint con el Administrador de Paquetes NuGet
PM > Install-Package IronPrint -
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); -
Despliegue para probar en su entorno real
Comienza a usar IronPrint en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Instala la biblioteca de impresión IronPrint de C#
- Crear un objeto `PrintSettings`
- Asigna un valor `Margins` a `PaperMargins`
- Pasar configuraciones a `Printer.Print()`
- Ejecuta el proyecto para imprimir con márgenes personalizados
¿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)
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)
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 / Vertical — Margins(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)
Márgenes cero — Margins.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)
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)
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:
- Tutoriales de IronPrint — Imprimir Documento para recorridos completos de impresión.
- Cómo configurar impresiones para DPI, orientación, copias y más.
- Referencia de la API de la clase Margins para documentación completa de constructores y campos.
- Referencia de API de la Clase Printer para todos los métodos de impresión estáticos.
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.

