Cómo imprimir con un diálogo en C
IronPrint proporciona Printer.ShowPrintDialog(): un método que abre el cuadro de diálogo de impresión nativo del sistema operativo, captura las selecciones de impresora y papel del usuario, y envía el documento a la cola de impresión. Instale un paquete NuGet y escriba una línea de código.
El diálogo de impresión es la ventana estándar del sistema operativo que permite a los usuarios elegir una impresora, establecer copias, elegir un rango de páginas y ajustar opciones de papel antes de comprometerse a imprimir. Las aplicaciones de escritorio que necesitan dar a los usuarios este control antes de cada trabajo son el caso de uso principal.
Inicio rápido: Imprimir con un diálogo
-
Instala IronPrint con el Administrador de Paquetes NuGet
PM > Install-Package IronPrint -
Copie y ejecute este fragmento de código.
using IronPrint; // Display the print dialog and print the document Printer.ShowPrintDialog("document.pdf"); -
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)
- Instale la biblioteca de impresión en C# IronPrint
- Llame
Printer.ShowPrintDialog("filepath") - Usuario selecciona impresora, copias y rango de páginas
- Haga clic en Imprimir para enviar el documento a la impresora elegida
- Verifique que el documento se imprima con las configuraciones seleccionadas
¿Cómo funciona el cuadro de diálogo de impresión en C#?
El método Printer.ShowPrintDialog() abre el cuadro de diálogo de impresión nativo del sistema operativo. El usuario ve el conjunto completo de opciones de impresión: selección de impresora, número de copias, rango de páginas, orientación y tamaño de papel. Hacen clic en Imprimir para enviar el trabajo, o Cancelar para cerrar el diálogo sin imprimir.
Bajo el capó, el enfoque nativo de .NET requiere crear una instancia de System.Windows.Forms.PrintDialog, conectarla a un PrintDocument, manejar el evento PrintPage para dibujar contenido en la superficie gráfica de impresión, verificar el DialogResult, y luego llamar a PrintDocument.Print(). Esa configuración generalmente implica de 15 a 25 líneas de código. Tampoco incluye representación de PDF o imagen incorporada (imprimir un PDF a través del diálogo nativo significa primero analizar el PDF en páginas dibujables, lo cual requiere otra biblioteca).
IronPrint maneja toda la canalización en una llamada:
Entrada
El quarterly-report.pdf pasado a ShowPrintDialog, un resumen financiero corporativo de Q3 con estilo y tarjetas de métricas KPI y tablas de ingresos por división, representa un documento empresarial típico enviado al cuadro de diálogo de impresión.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;
// Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint
' Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf")
Resultado
El método acepta una ruta de archivo como un string o datos de archivo en bruto como un byte[]. IronPrint detecta el formato del documento, lo renderiza a través del motor adecuado y presenta el diálogo. Cuando el usuario confirma, el documento se imprime con las configuraciones elegidas. El tutorial de imprimir documento trata el ciclo de vida completo de la impresión con más detalle.
¿Cómo pre-configuro las configuraciones del diálogo?
Podemos establecer valores predeterminados antes de que se abra el cuadro de diálogo creando un objeto PrintSettings y pasándolo como el segundo parámetro. El diálogo se abrirá con estos valores preseleccionados y el usuario puede aceptarlos tal cual o sobrescribir cualquier configuración.
Entrada
El invoice.pdf pre-cargado con configuraciones A4 en retrato a 300 DPI: una factura profesional de facturación con elementos de línea, descuento, impuestos e instrucciones de transferencia electrónica, que muestra un documento realista donde la aplicación ya conoce el tamaño y orientación de papel requeridos.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;
// Pre-configure default dialog settings
var settings = new PrintSettings
{
PrinterName = "HP LaserJet Pro",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
Grayscale = false
};
// Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint
' Pre-configure default dialog settings
Dim settings As New PrintSettings With {
.PrinterName = "HP LaserJet Pro",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.Grayscale = False
}
' Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
Resultado
Esto es útil cuando la aplicación sabe de antemano la impresora o el formato de papel probable. Por ejemplo, un sistema de punto de venta que siempre imprime recibos en una impresora térmica específica puede predefinir PrinterName para ese dispositivo. El usuario aún tiene la opción de cambiarlo en el cuadro de diálogo.
Para descubrir qué impresoras están disponibles en el sistema, llamamos a Printer.GetPrinterNames(), que devuelve un List<string> de todas las impresoras instaladas. De manera similar, Printer.GetPrinterTrays() devuelve las bandejas de papel disponibles para una impresora dada.
La lista completa de propiedades configurables incluye PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (para campos de formulario PDF), y Tray. El cómo configurar las opciones de impresión cubre cada propiedad con ejemplos de código. Cualquier propiedad no establecida en PrintSettings por defecto a la configuración estándar de la impresora seleccionada.
¿Cómo muestro el diálogo de forma asíncrona?
El método Printer.ShowPrintDialogAsync() devuelve un Task, lo que lo hace compatible con await. Esto evita que el diálogo bloquee el hilo de la interfaz de usuario, lo cual es esencial para WPF, MAUI y cualquier aplicación donde una interfaz congelada cree una mala experiencia de usuario.
Entrada
El informe.pdf esperado de manera asincrónica: un informe de infraestructura y seguridad de TI de varias secciones, representando el tipo de documento de formato largo donde la presentación de diálogo no bloqueante mantiene la UI reactiva mientras se carga el archivo.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;
// Open the print dialog asynchronously
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint
' Open the print dialog asynchronously
Await Printer.ShowPrintDialogAsync("report.pdf")
Resultado
ShowPrintDialogAsync() acepta los mismos parámetros que la versión sincrónica: una ruta de archivo o un arreglo de bytes, más un objeto PrintSettings opcional. El patrón asincrónico sigue el mismo Patrón Asincrónico Basado en Tareas utilizado en todo el desarrollo moderno de .NET.
IronPrint funciona en aplicaciones WinForms, WPF, MAUI y de consola. La apariencia del diálogo se adapta a la plataforma anfitriona y a la versión del sistema operativo, de modo que el usuario siempre ve la ventana de impresión nativa que espera.
¿Cuándo debería usar un diálogo vs. impresión silenciosa?
Use el diálogo cuando los usuarios necesiten elegir configuraciones de impresora antes de cada trabajo; utilice la impresión silenciosa para flujos de trabajo automatizados donde no se necesita intervención humana.
| Criterios | Imprimir con diálogo | Impresión silenciosa |
|---|---|---|
| Interacción del usuario | El usuario selecciona la impresora, copias, rango de páginas | Sin interacción; prints immediately |
| Best para | Aplicaciones de escritorio, impresiones únicas, características orientadas al usuario | Trabajos por lotes, servicios en segundo plano, aplicaciones de kiosco |
| Selección de impresoras | El usuario elige desde el diálogo | Configurar programáticamente a través de PrintSettings |
| Método IronPrint | Printer.ShowPrintDialog() |
Printer.Print() |
| Variante asincrónica | ShowPrintDialogAsync() |
PrintAsync() |
Las exportaciones de informes, la impresión de facturas y cualquier trabajo donde la impresora incorrecta desperdicia materiales son buenos candidatos para el diálogo. La impresión silenciosa se adapta a flujos de trabajo automatizados donde no se necesita una decisión humana entre documentos.
¿Qué formatos de archivo admite el diálogo de impresión?
Printer.ShowPrintDialog() soporta los mismos formatos que la impresión silenciosa: PDF, PNG, TIFF, JPEG, GIF, HTML y BMP. Pasamos la ruta del archivo independientemente del formato, y IronPrint maneja la renderización y la comunicación con el spooler de impresión. Los datos de archivo como byte[] también son aceptados, lo cual es útil cuando el documento se genera en memoria o se recupera de una base de datos.
Entrada
monthly-report.pdf leído en un byte[], representando un documento recuperado de una base de datos o generado en memoria antes de ser enviado al cuadro de diálogo.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;
// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");
// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint
' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")
' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
Resultado
El diálogo se abre como se ve en los ejemplos anteriores. La detección de formato es automática: ya sea que pasemos una ruta de archivo o un byte[], IronPrint renderiza el documento y presenta el mismo diálogo nativo.
La página de ejemplos de código muestra escenarios adicionales específicos de formato. Para flujos de trabajo específicos de PDF (generar un PDF y imprimirlo inmediatamente), IronPDF se combina naturalmente con IronPrint.
Próximos pasos
Imprimir con un diálogo se reduce a dos métodos: Printer.ShowPrintDialog() para llamadas sincrónicas y Printer.ShowPrintDialogAsync() para ejecución no bloqueante. Preconfigurar valores predeterminados con PrintSettings y dejar que el usuario ajuste desde allí. Ambos métodos admiten todos los formatos de documentos de IronPrint y funcionan en proyectos WinForms, WPF, MAUI y de consola.
Explore los tutoriales de IronPrint para recorridos completos, la referencia API de la clase Printer para cada método disponible, o la guía sobre configuraciones de impresión para configuraciones avanzadas. El registro de cambios rastrea mejoras recientes y nuevas características.
Comience una prueba gratuita de 30 días para probar la impresión de diálogos en un proyecto en vivo, sin necesidad de tarjeta de crédito. Cuando esté listo para enviar, ver opciones de licencia comenzando en $999.
Preguntas Frecuentes
¿Cuál es la función principal de IronPrint?
IronPrint permite a los desarrolladores mostrar y configurar un cuadro de diálogo de impresión en aplicaciones C#, facilitando la impresión de PDFs e imágenes con configuraciones preconfiguradas.
¿Cómo puedo mostrar un cuadro de diálogo de impresión usando IronPrint?
Puedes mostrar un cuadro de diálogo de impresión en tu aplicación C# usando el método ShowPrintDialog() de IronPrint, que proporciona una manera interactiva de configurar las opciones de impresión.
¿IronPrint admite la impresión asíncrona?
Sí, IronPrint admite la impresión asíncrona, lo que permite que tu aplicación permanezca receptiva mientras maneja trabajos de impresión.
¿Puedo preconfigurar las configuraciones de impresión con IronPrint?
Sí, IronPrint te permite preconfigurar configuraciones de impresión como el tamaño del papel, la orientación y la selección de impresora antes de mostrar el cuadro de diálogo de impresión.
¿Es posible imprimir imágenes usando IronPrint?
IronPrint admite la impresión tanto de PDFs como de imágenes, proporcionando flexibilidad para varios tipos de documentos en tu aplicación C#.
¿Cómo mejora IronPrint la experiencia del cuadro de diálogo de impresión en C#?
IronPrint mejora la experiencia del cuadro de diálogo de impresión permitiendo a los desarrolladores personalizar y configurar fácilmente las configuraciones de impresión, admitiendo operaciones síncronas y asíncronas.
¿Qué tipos de documentos puedo imprimir con IronPrint?
Con IronPrint, puedes imprimir una variedad de documentos, incluidos PDFs y imágenes, directamente desde tu aplicación C#.
¿IronPrint puede integrarse en aplicaciones C# existentes?
Sí, IronPrint está diseñado para integrarse fácilmente en aplicaciones C# existentes, proporcionando una manera simple de agregar funcionalidad de diálogo de impresión.
¿Qué ventajas ofrece IronPrint para los desarrolladores de C#?
IronPrint ofrece ventajas como integración fácil, configuraciones de impresión personalizables, soporte para impresión asíncrona y capacidad para imprimir PDFs e imágenes.
¿Cómo maneja IronPrint diferentes configuraciones de impresora?
IronPrint te permite configurar diferentes configuraciones de impresora, asegurando compatibilidad con varias impresoras y personalización para satisfacer necesidades específicas de impresión.




