Cómo aplanar PDFs antes de imprimir en C
La clase PrintSettings de IronPrint incluye una propiedad Flatten que fusiona todos los campos de formulario interactivos, anotaciones y capas de imagen en contenido estático en el momento de la impresión. Establecemos Flatten = true en nuestro objeto PrintSettings, y IronPrint se encarga del resto: no se requiere una biblioteca de manipulación de PDF separada ni guardar en un archivo intermedio.
Esta guía cubre cuándo y cómo aplanar PDFs antes de imprimir documento, con código C# funcional para flujos sincronizados, con configuraciones combinadas y asíncronas.
Inicio rápido: Aplanar PDFs antes de imprimir
- Instalar IronPrint a través de NuGet:
Install-Package IronPrint - Agregar
using IronPrint;al archivo - Crear un objeto
PrintSettings - Establecer
Flattenatrue - Pasar configuraciones a
Printer.Print()oPrinter.PrintAsync()
-
Instala IronPrint con el Administrador de Paquetes NuGet
PM > Install-Package IronPrint -
Copie y ejecute este fragmento de código.
using IronPrint; // Flatten and print a PDF with form fields Printer.Print("form-document.pdf", new PrintSettings { Flatten = true }); -
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`
- Establecer `Flatten` en `true`
- Pasar configuraciones a `Printer.Print()`
- Verificar que la salida impresa contiene los campos de formulario aplanados
¿Cómo aplanar un PDF antes de imprimir en C#?
Aplanamos un PDF en el momento de la impresión configurando la propiedad Flatten a true en un objeto PrintSettings. Luego pasamos ese objeto a cualquiera de los métodos de impresión de IronPrint.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-flatten-basic.cs
using IronPrint;
// Configure print settings with flattening enabled
PrintSettings settings = new PrintSettings();
settings.Flatten = true;
// Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings);
Imports IronPrint
' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True
' Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings)
Primero instanciamos PrintSettings, que se inicializa con valores predeterminados, incluidos Flatten = false. Luego establecemos Flatten a true, lo que indica a IronPrint que fusione todos los elementos interactivos en el contenido de la página antes de enviar el trabajo de impresión. Cuando llamamos a Printer.Print, la impresora recibe una versión completamente estática del documento.
El aplanado ocurre en la memoria durante la tubería de impresión. El archivo PDF original permanece interactivo en el disco, por lo que los usuarios finales aún pueden completar y reenviar el formulario. Esta es una distinción esencial: estamos aplanando para la impresora, no alterando permanentemente el archivo fuente.
La propiedad Flatten fue introducida en IronPrint v2024.7.2 y está disponible en todas las versiones posteriores.
¿Cuándo debería aplanar un PDF antes de imprimir?
El aplanado es más valioso cuando el PDF contiene elementos interactivos que podrían no renderizarse correctamente en papel. Los escenarios más comunes incluyen:
PDFs con campos de formulario rellenables. Las entradas de texto, casillas de verificación, botones de radio y menús desplegables son renderizados por el visor de PDF, no incrustados en el contenido de la página. Algunos controladores de impresora omiten completamente estas capas, resultando en campos en blanco en la página impresa. El aplanado fuerza los valores de campo en la capa estática de la página.
PDFs con anotaciones o superposiciones. Los comentarios, notas adhesivas, sellos y anotaciones de marcado existen en una capa separada. El aplanado los fusiona en el contenido visible para que aparezcan en la salida impresa.
PDFs con imágenes incrustadas en diferentes capas. Los documentos ensamblados de múltiples fuentes pueden tener imágenes en diferentes capas z. El aplanado compone todo en una sola capa, evitando imágenes faltantes o desalineadas.
Cuando el PDF contiene solo texto e imágenes estáticas, como un informe generado a partir de HTML o un documento escaneado, el aplanado no tiene efecto. En esos casos, podemos dejar Flatten en su valor predeterminado de false para evitar una sobrecarga de procesamiento innecesaria al imprimir PDF.
¿Cómo combinar el aplanado con otras configuraciones de impresión?
La clase PrintSettings expone varias propiedades junto con Flatten. Podemos configurar el tamaño de papel, orientación, DPI, márgenes y recuento de copias junto al aplanado, todo en un solo trabajo de impresión.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-combined-settings.cs
using IronPrint;
// Flatten and print with full configuration
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(10, 10, 10, 10),
Grayscale = false
};
// Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint
' Flatten and print with full configuration
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(10, 10, 10, 10),
.Grayscale = False
}
' Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings)
Usamos la sintaxis de inicializador de objetos por claridad. Flatten = true asegura que todos los datos del formulario aparezcan en la página impresa. PaperSize.A4 y PaperOrientation.Portrait coinciden con el formato estándar para formularios empresariales. Dpi a 300 produce texto nítido en campos rellenados que originalmente se renderizaron a resolución de pantalla. PaperMargins acepta cuatro valores en milímetros a través del constructor de Margins.
Estas propiedades no entran en conflicto entre sí. IronPrint aplica primero la operación de aplanado, luego formatea el documento estático resultante según las configuraciones restantes antes de enviar el trabajo a la impresora. Para más opciones de configuración de impresión, incluida la selección de impresora y la configuración de bandeja, consulte la guía de configuración completa.
¿Cómo aplanar e imprimir de forma asíncrona?
Para aplicaciones donde bloquear el hilo principal no es aceptable, como aplicaciones WPF o WinForms, utilizamos Printer.PrintAsync. El método acepta el mismo objeto PrintSettings y devuelve un Task.
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-async-flatten.cs
using IronPrint;
using System.Threading.Tasks;
public class FormPrinter
{
public async Task PrintFlattenedFormAsync(string pdfPath)
{
// Flatten form fields and print asynchronously
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.Letter,
Dpi = 300
};
// Non-blocking print — UI thread stays responsive
await Printer.PrintAsync(pdfPath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class FormPrinter
Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
' Flatten form fields and print asynchronously
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.Letter,
.Dpi = 300
}
' Non-blocking print — UI thread stays responsive
Await Printer.PrintAsync(pdfPath, settings)
End Function
End Class
Este patrón basado en clases es útil cuando la lógica de impresión vive en una capa de servicio. Configuramos Flatten = true junto con PaperSize.Letter para formularios en formato estadounidense. La palabra clave await libera el hilo de llamada mientras IronPrint procesa la operación de aplanado y envía el trabajo de impresión.
Los métodos asíncronos de IronPrint, incluidos PrintAsync y ShowPrintDialogAsync, todos respetan la configuración Flatten de manera idéntica a sus contrapartes sincrónicas. Ya sea que imprimamos en silencio o a través de un diálogo de impresión, el comportamiento de aplanado permanece consistente.
¿Cuales son mis próximos pasos?
Cubrimos cómo aplanar PDFs antes de imprimir en C# usando la propiedad PrintSettings.Flatten de IronPrint. El punto clave: establecer Flatten = true para fusionar campos de formulario interactivos, anotaciones y capas de imagen en contenido estático en el momento de la impresión, sin modificar el archivo fuente.
Para seguir construyendo sobre esto:
- Explora la guía completa de configuración de impresión para todas las propiedades disponibles
- Consulta los ejemplos de código de configuración de impresión para patrones comunes
- Revisa la referencia de la API PrintSettings para detalles de propiedades y valores predeterminados
- Consulta el registro de cambios de IronPrint para las últimas características y mejoras
Comienza una prueba gratuita de 30 días para probar el aplanado de PDF en tus propios flujos de trabajo de impresión, o ve las opciones de licenciamiento para uso en producción.

