Cómo planificar los PDFs antes de imprimir en C

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

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, e IronPrint se encarga del resto — no se requiere una biblioteca de manipulación de PDF separada o guardar un archivo intermedio.

Esta guía cubre cuándo y cómo planificar los PDFs antes de imprimir, con código de C# en funcionamiento para flujos de trabajo sincrónicos, de configuraciones combinadas y asincrónicos.

Comienzo rápido: Planificar PDFs antes de imprimir

  1. Instala IronPrint vía NuGet: Install-Package IronPrint
  2. Agrega using IronPrint; al archivo
  3. Crea un objeto PrintSettings
  4. Establece Flatten a true
  5. Pasa configuraciones a Printer.Print() o Printer.PrintAsync()
  1. Instala IronPrint con el Administrador de Paquetes NuGet

    PM > Install-Package IronPrint
  2. 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
    });
  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 aplano un PDF antes de imprimir en C#?

Aplanamos un PDF en el momento de la impresión al establecer la propiedad Flatten en 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;

// Print the flattened document
Printer.Print("application-form.pdf", settings);
Imports IronPrint

' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True

' Print the flattened document
Printer.Print("application-form.pdf", settings)
$vbLabelText   $csharpLabel

Primero instanciamos PrintSettings, que se inicializa con valores predeterminados — incluyendo Flatten = false. Luego establecemos Flatten en true, Printer.Print Flatten lo cual le indica a IronPrint que fusione todos los elementos interactivos en el contenido de la página antes de enviar la tarea de impresión. Cuando llamamos [Print()], la impresora recibe una versión completamente estática del documento.

El aplanamiento ocurre en memoria durante el proceso de impresión. El archivo PDF original permanece interactivo en el disco, por lo que los usuarios finales pueden seguir rellenando y reenviando 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 debo aplanar un PDF antes de imprimir?

El aplanamiento es más valioso cuando el PDF contiene elementos interactivos que podrían no representarse 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 se representan por el visor de PDF, no están 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 aplanamiento fuerza los valores de los campos en la capa estática de la página.

PDFs con anotaciones o capas superpuestas. Comentarios, notas adhesivas, sellos y anotaciones de marcado existen en una capa separada. El aplanamiento las fusiona en el contenido visible para que aparezcan en la salida impresa.

PDFs con imágenes incrustadas en diferentes capas. Los documentos ensamblados a partir de múltiples fuentes pueden tener imágenes en diferentes capas de profundidad (z-layers). El aplanamiento compone todo en una sola capa, previniendo imágenes faltantes o desalineadas.

Cuando el PDF contiene solo texto e imágenes estáticas, como un informe generado desde HTML o un documento escaneado, el aplanamiento no tiene efecto. En esos casos, podemos dejar Flatten en su valor predeterminado de false Flatten = true PaperSize.A4 PaperOrientation.Portrait Dpi PaperMargins para evitar un procesamiento excesivo innecesario.

¿Cómo combino aplanamiento con otras configuraciones de impresión?

La clase PrintSettings expone varias propiedades junto con Flatten. Podemos configurar tamaño de papel, orientación, DPI, márgenes y cantidad de copias junto con el aplanamiento, todo en un único trabajo de impresión.

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

// Configure flatten with full print settings
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 the insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint

' Configure flatten with full print settings
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 the insurance claim form
Printer.Print("insurance-claim.pdf", settings)
$vbLabelText   $csharpLabel

Usamos la sintaxis de inicialización de objetos para mayor claridad. EnsureFlatten asegura que todos los datos del formulario aparezcan en la página impresa. PaperSize y Orientation se ajustan al formato estándar para formularios empresariales. DPI a 300 produce texto nítido en los campos llenados que originalmente se renderizaron con resolución de pantalla. Margins acepta cuatro valores en milímetros a través del constructor Margins.

Estas propiedades no entran en conflicto entre sí. IronPrint aplica primero la operación de aplanado, luego formatea el documento estático resultante de acuerdo con las configuraciones restantes antes de enviar el trabajo a la impresora. Para más opciones de configuración de impresión, incluyendo selección de impresoras y configuración de bandejas, consulte la guía completa de configuración.

¿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)
    {
        // Configure flatten with Letter paper at 300 DPI
        PrintSettings settings = new PrintSettings
        {
            Flatten = true,
            PaperSize = PaperSize.Letter,
            Dpi = 300
        };

        // Print asynchronously
        await Printer.PrintAsync(pdfPath, settings);
    }
}
Imports IronPrint
Imports System.Threading.Tasks

Public Class FormPrinter
    Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
        ' Configure flatten with Letter paper at 300 DPI
        Dim settings As New PrintSettings With {
            .Flatten = True,
            .PaperSize = PaperSize.Letter,
            .Dpi = 300
        }

        ' Print asynchronously
        Await Printer.PrintAsync(pdfPath, settings)
    End Function
End Class
$vbLabelText   $csharpLabel

Este patrón basado en clase es útil cuando la lógica de impresión reside en una capa de servicio. Configuramos Flatten = true junto con PaperSize.Letter para formularios en formato de EE.UU. La palabra clave await libera el hilo que llama mientras IronPrint procesa la operación de aplanado y envía la tarea de impresión.

Los métodos asíncronos de IronPrint — incluyendo PrintAsync y ShowPrintDialogAsync — todos respetan la configuración Flatten de manera idéntica a sus contrapartes sincrónicas await PrintSettings.Flatten Flatten = true. Ya sea que imprimamos silenciosamente o a través de un diálogo de impresión, el comportamiento de aplanamiento sigue siendo consistente.

¿Cuales son mis próximos pasos?

Cubrimos cómo aplanar PDFs antes de imprimir en C# usando la propiedad PrintSettings de IronPrint. El punto clave: establezca Flatten 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 de origen.

Para seguir desarrollando sobre esto:

Comience una prueba gratuita de 30 días para probar el aplanamiento de PDF en sus propios flujos de trabajo de impresión, o vea las opciones de licencia para uso en producción.

Preguntas Frecuentes

¿Cuál es el propósito de aplanar PDFs antes de imprimir?

Aplanar PDFs asegura que todos los campos de formulario, anotaciones e imágenes se consoliden en una sola capa, lo que garantiza un renderizado e impresión precisos.

¿Cómo puedo aplanar un PDF usando C#?

Puede aplanar un PDF en C# utilizando la biblioteca de IronPrint. Esto implica configurar un booleano en PrintSettings para asegurar que todos los elementos se aplanen adecuadamente durante el proceso de impresión.

¿Por qué es necesario aplanar campos de formulario y anotaciones?

Los campos de formulario y las anotaciones necesitan ser aplanados para evitar que cualquier elemento interactivo sea editable o alineado incorrectamente al imprimir, asegurando una salida consistente.

¿Qué pasa si un PDF no se aplana antes de imprimir?

Si un PDF no se aplana, elementos interactivos como los campos de formulario y las anotaciones podrían no imprimirse correctamente, llevando a errores o información faltante en el documento impreso.

¿IronPrint soporta el aplanamiento de otros elementos de PDF aparte de los campos de formulario?

Sí, IronPrint soporta el aplanamiento de varios elementos de PDF, incluyendo anotaciones, imágenes y otro contenido en capas, asegurando que todo se imprima como está previsto.

¿Es posible automatizar el proceso de aplanamiento en C#?

Absolutamente, usando IronPrint, puede automatizar el proceso de aplanamiento configurando PrintSettings en su código C#, agilizando el flujo de trabajo para el procesamiento por lotes de PDFs.

¿Puede el aplanamiento de PDFs impactar la calidad de impresión?

El aplanamiento de PDFs generalmente mejora la calidad de impresión al asegurar que todos los elementos se rendericen y alineen correctamente, reduciendo las posibilidades de errores durante el proceso de impresión.

¿Cuál es el papel del booleano de PrintSettings en el aplanamiento de PDF?

El booleano de PrintSettings en IronPrint es un parámetro clave que permite el aplanamiento de PDFs, asegurando que todas las capas se combinen en un único formato listo para imprimir.

¿IronPrint requiere algún software adicional para aplanar PDFs?

No se necesita software adicional. IronPrint es una biblioteca independiente que proporciona todas las funcionalidades necesarias para aplanar PDFs directamente dentro de sus aplicaciones en C#.

¿Cómo asegura IronPrint la compatibilidad con diferentes versiones de PDF?

IronPrint está diseñado para ser compatible con varias versiones de PDF, asegurando que el proceso de aplanamiento mantenga la integridad y el formato del documento original.

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 41,154 | Versión: 2026.5 just released
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.