Saltar al pie de página
USANDO IRONPRINT

Cómo imprimir PDF en VB .NET sin Adobe usando IronPrint

La impresión de documentos PDF en VB.NET requiere una biblioteca que gestione el renderizado, la comunicación con la impresora y la gestión de la configuración sin obligarte a instalar Adobe Reader u otras dependencias de terceros. IronPrint resuelve este problema con una API limpia que funciona en Windows, macOS, Linux y plataformas móviles. Esta guía le guía paso a paso —desde la instalación del paquete hasta la resolución de errores de impresión habituales— para que pueda añadir la impresión de PDF a su aplicación VB.NET de forma rápida y segura.

Al final de este tutorial, sabrás cómo imprimir de forma silenciosa, mostrar el cuadro de diálogo de impresión de Windows, aplicar ajustes personalizados como los ppp y la orientación del papel, enumerar las impresoras disponibles y gestionar las excepciones de forma elegante.

¿Cómo se instala IronPrint en un proyecto VB.NET?

La instalación de IronPrint se realiza en cuestión de segundos a través del gestor de paquetes NuGet. Abre tu Consola del Administrador de Paquetes en Visual Studio y ejecuta:

Install-Package IronPrint

Tras la instalación, añada la importación del espacio de nombres al principio de cualquier archivo que necesite imprimir y, a continuación, aplique su clave de licencia antes de llamar a cualquier método de IronPrint:

Imports IronPrint

' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"
Imports IronPrint

' Apply your license key (get a free trial key at ironsoftware.com)
License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

IronPrint está destinado a .NET Framework 4.6.2 y versiones posteriores, así como a .NET 6, 7, 8, 9 y 10. Se suministra con motores de renderizado nativos para cada plataforma, por lo que no es necesario instalar Adobe Acrobat, Ghostscript ni ningún otro renderizador de PDF. El mismo paquete NuGet funciona para Windows Forms, WPF, aplicaciones de consola y proyectos ASP.NET escritos en VB.NET.

Los formatos de documento compatibles incluyen PDF, PNG, HTML, TIFF, GIF, JPEG y BMP. Puede explorar todas las capacidades en la referencia de la API de impresión unificada de IronPrint.

Para obtener más información sobre licencias y activación, consulte la documentación sobre claves de licencia de IronPrint.

¿Cómo se imprime un PDF de forma silenciosa en VB.NET?

La impresión silenciosa envía un documento directamente a una impresora sin mostrar ningún cuadro de diálogo. Este modo es esencial para flujos de trabajo automatizados, procesamiento de facturas por lotes, procesos de generación de informes y la impresión de documentos del lado del servidor en los que no hay ningún usuario presente.

Según la documentación de Microsoft sobre la impresión GDI+ en .NET, la impresión tradicional en .NET implica crear un objeto PrintDocument, conectarse a eventos PrintPage y gestionar manualmente el diseño de la página. IronPrint elimina todo ese código repetitivo:

Imports IronPrint

Module SilentPrinting
    Sub Main()
        Dim pdfPath As String = "invoice.pdf"

        ' Print to the system default printer
        Printer.Print(pdfPath)

        ' Print to a specific printer by name
        Dim settings As New PrintSettings()
        settings.PrinterName = "Microsoft Print to PDF"
        Printer.Print(pdfPath, settings)
    End Sub
End Module
Imports IronPrint

Module SilentPrinting
    Sub Main()
        Dim pdfPath As String = "invoice.pdf"

        ' Print to the system default printer
        Printer.Print(pdfPath)

        ' Print to a specific printer by name
        Dim settings As New PrintSettings()
        settings.PrinterName = "Microsoft Print to PDF"
        Printer.Print(pdfPath, settings)
    End Sub
End Module
$vbLabelText   $csharpLabel

El método Printer.Print gestiona internamente toda la representación de PDF. Cuando se llama a Printer.Print(pdfPath) sin un argumento PrintSettings, IronPrint selecciona automáticamente la impresora predeterminada del sistema. Cuando se proporciona un objeto PrintSettings con un valor PrinterName, este redirige el trabajo a ese dispositivo específico.

Para escenarios por lotes, puede recorrer una lista de rutas de archivos y llamar a Printer.Print para cada una de ellas. Dado que IronPrint no abre ningún subproceso de la interfaz de usuario para la impresión silenciosa, funciona correctamente en aplicaciones de consola, servicios de Windows y controladores de solicitudes de ASP.NET.

Para obtener más información sobre las opciones disponibles, consulta la documentación sobre la configuración de impresión de IronPrint.

¿Cómo se muestra el cuadro de diálogo de impresión antes de imprimir?

A veces es necesario permitir a los usuarios elegir una impresora, ajustar el rango de páginas o establecer el número de copias antes de iniciar un trabajo de impresión. IronPrint ofrece Printer.ShowPrintDialog precisamente para este caso:

Imports IronPrint

Module DialogPrinting
    Sub Main()
        ' Display the standard Windows print dialog
        Printer.ShowPrintDialog("report.pdf")
    End Sub
End Module
Imports IronPrint

Module DialogPrinting
    Sub Main()
        ' Display the standard Windows print dialog
        Printer.ShowPrintDialog("report.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Cuando se ejecuta este método, Windows muestra su cuadro de diálogo de impresión estándar. El usuario puede seleccionar cualquier impresora instalada, elegir un rango de páginas, seleccionar el número de copias y ajustar la configuración de impresión a doble cara. Después de que el usuario haga clic en Imprimir o Cancelar, el control vuelve a su código.

Este método se integra de forma natural en las aplicaciones de Windows Forms. Puede llamarla desde un controlador de clic de botón y confiar en que el cuadro de diálogo se comportará de manera coherente con otras aplicaciones de Windows que el usuario ya conoce.

VB .NET Imprimir PDF sin abrir Adobe con IronPrint: Imagen 1 - Cuadro de diálogo de impresión

La página de ejemplos del cuadro de diálogo de impresión muestra casos de uso adicionales, como la preselección de una impresora o el rellenado automático del número de copias antes de que se abra el cuadro de diálogo.

¿Cómo se personalizan los ajustes de impresión de PDF en VB.NET?

La clase PrintSettings le ofrece un control programático total sobre todos los aspectos de un trabajo de impresión. Puede configurar los ppp, el tamaño del papel, la orientación, el número de copias y la impresora de destino, todo ello antes de que el trabajo llegue a la cola de impresión:

Imports IronPrint

Module CustomPrintSettings
    Sub Main()
        Dim settings As New PrintSettings() With {
            .Dpi = 300,
            .NumberOfCopies = 2,
            .PaperOrientation = PaperOrientation.Landscape,
            .PaperSize = PaperSize.A4,
            .PrinterName = "Office Printer"
        }

        Printer.Print("document.pdf", settings)
    End Sub
End Module
Imports IronPrint

Module CustomPrintSettings
    Sub Main()
        Dim settings As New PrintSettings() With {
            .Dpi = 300,
            .NumberOfCopies = 2,
            .PaperOrientation = PaperOrientation.Landscape,
            .PaperSize = PaperSize.A4,
            .PrinterName = "Office Printer"
        }

        Printer.Print("document.pdf", settings)
    End Sub
End Module
$vbLabelText   $csharpLabel

Comprensión de las propiedades clave de PrintSettings

La propiedad Dpi controla la resolución de salida. Un valor de 300 es el estándar para documentos profesionales; 600 es adecuado para gráficos de alta calidad o planos de ingeniería. Los valores más bajos, como 150, son útiles para impresiones preliminares en las que la velocidad es más importante que la calidad.

NumberOfCopies indica a la impresora cuántas copias debe producir en un solo trabajo. Establecer este valor en 3 equivale a que un usuario pulse Ctrl+P e introduzca 3 en el campo de copias, pero tú lo controlas desde el código sin necesidad de interactuar con la interfaz de usuario.

PaperOrientation acepta PaperOrientation.Portrait o PaperOrientation.Landscape. Si se selecciona una orientación incorrecta para un PDF diseñado en modo horizontal, el contenido se recortará o se reducirá. Establecer esto explícitamente garantiza que el resultado final se ajuste al diseño del documento.

PaperSize admite tamaños estándar como PaperSize.A4, PaperSize.Letter y PaperSize.Legal. Esto es importante cuando en su entorno de impresión se mezclan bandejas de papel con diferentes tamaños.

Elegir el nombre correcto de la impresora

La cadena PrinterName debe coincidir exactamente con el nombre registrado de la impresora en Windows, incluyendo mayúsculas y espacios. Utilice Printer.GetPrinterNames() (que se explica en la siguiente sección) para recuperar la lista de nombres válidos en tiempo de ejecución.

Para opciones de personalización más avanzadas, visite la página de funciones avanzadas de personalización de impresión.

¿Cómo se enumeran y seleccionan impresoras mediante programación?

En entornos empresariales, las estaciones de trabajo suelen tener acceso a docenas de impresoras en red. IronPrint facilita la visualización de todas las impresoras disponibles y la selección de la adecuada en tiempo de ejecución:

Imports IronPrint

Module PrinterManagement
    Sub Main()
        ' Retrieve all available printers
        Dim printers As List(Of String) = Printer.GetPrinterNames()

        Console.WriteLine($"Found {printers.Count} printer(s):")
        For Each printerName As String In printers
            Console.WriteLine($"  - {printerName}")
        Next

        ' Print to the first available printer
        If printers.Count > 0 Then
            Dim settings As New PrintSettings()
            settings.PrinterName = printers(0)
            Printer.Print("document.pdf", settings)
        Else
            Console.WriteLine("No printers found. Check system configuration.")
        End If
    End Sub
End Module
Imports IronPrint

Module PrinterManagement
    Sub Main()
        ' Retrieve all available printers
        Dim printers As List(Of String) = Printer.GetPrinterNames()

        Console.WriteLine($"Found {printers.Count} printer(s):")
        For Each printerName As String In printers
            Console.WriteLine($"  - {printerName}")
        Next

        ' Print to the first available printer
        If printers.Count > 0 Then
            Dim settings As New PrintSettings()
            settings.PrinterName = printers(0)
            Printer.Print("document.pdf", settings)
        Else
            Console.WriteLine("No printers found. Check system configuration.")
        End If
    End Sub
End Module
$vbLabelText   $csharpLabel

Printer.GetPrinterNames() consulta el subsistema de impresión de Windows y devuelve todas las impresoras a las que el usuario actual tiene acceso, incluidas las impresoras USB locales, las impresoras de red, las impresoras virtuales como Microsoft Print to PDF y cualquier controlador de impresora instalado a través de software de terceros.

Envío de documentos a la impresora adecuada

En configuraciones con varias impresoras, es posible que desee enviar documentos grandes a una impresora departamental de alta velocidad y documentos pequeños a un dispositivo de escritorio cercano. Puede implementar esta lógica comprobando el número de páginas o el tamaño del archivo del documento y, a continuación, seleccionando el nombre de la impresora adecuada de la lista.

VB .NET Imprimir PDF sin abrir Adobe con IronPrint: Imagen 2 - Selección de impresora

Lea la documentación sobre las características de la información de la impresora para conocer las propiedades adicionales que puede consultar, como el estado de la impresora y la bandeja de papel predeterminada.

¿Cómo se gestionan los errores de impresión en VB.NET?

El código de impresión de producción debe gestionar los errores de forma elegante. Las rutas de los archivos pueden ser incorrectas, las impresoras pueden estar desconectadas o la cuenta de usuario puede carecer de permisos de impresión. Envolver las llamadas de impresión en un manejo estructurado de excepciones evita que las excepciones no controladas provoquen el bloqueo de la aplicación:

Imports IronPrint
Imports System.IO

Module ErrorHandling
    Sub Main()
        Dim filePath As String = "document.pdf"

        If Not File.Exists(filePath) Then
            Console.WriteLine("PDF file not found. Verify the path and try again.")
            Return
        End If

        Try
            Dim settings As New PrintSettings()
            settings.PrinterName = "Office Printer"
            Printer.Print(filePath, settings)
            Console.WriteLine("Print job sent successfully.")
        Catch ex As Exception
            Console.WriteLine($"Printing failed: {ex.Message}")
        End Try
    End Sub
End Module
Imports IronPrint
Imports System.IO

Module ErrorHandling
    Sub Main()
        Dim filePath As String = "document.pdf"

        If Not File.Exists(filePath) Then
            Console.WriteLine("PDF file not found. Verify the path and try again.")
            Return
        End If

        Try
            Dim settings As New PrintSettings()
            settings.PrinterName = "Office Printer"
            Printer.Print(filePath, settings)
            Console.WriteLine("Print job sent successfully.")
        Catch ex As Exception
            Console.WriteLine($"Printing failed: {ex.Message}")
        End Try
    End Sub
End Module
$vbLabelText   $csharpLabel

Errores comunes y cómo solucionarlos

La siguiente tabla describe los errores de impresión más frecuentes y sus soluciones:

Errores comunes de impresión de PDF en VB.NET y sus soluciones
Error Causa Solución
No se ha encontrado la impresora El nombre de la impresora no coincide con la entrada del Registro de Windows Llama a `Printer.GetPrinterNames()` y utiliza el nombre exacto devuelto
Páginas en blanco impresas Ruta de archivo no válida o PDF dañado Utilice `File.Exists` para verificar la ruta; abra el PDF en un visor para comprobar su integridad
Mala calidad de impresión DPI ajustado a un valor demasiado bajo Establezca `PrintSettings.Dpi` en 300 o más
Acceso denegado Permisos de impresión insuficientes Ejecute la aplicación con una cuenta de usuario que tenga privilegios de impresión en la impresora de destino
Impresora desconectada Problema de conectividad de red o del dispositivo Comprueba el estado de la impresora en Dispositivos e impresoras de Windows; vuelve a intentarlo tras volver a conectarte

VB .NET Imprimir PDF sin abrir Adobe con IronPrint: Imagen 3 - Ejemplo de error

Para obtener orientación adicional sobre la resolución de problemas, consulte la guía de solicitudes de ingeniería y resolución de problemas de IronPrint o póngase en contacto con el servicio de asistencia técnica de Iron Software.

¿Cómo se combinan la generación de PDF y la impresión en VB.NET?

Un flujo de trabajo habitual consiste en generar un PDF en tiempo de ejecución e imprimirlo inmediatamente; por ejemplo, crear una factura a partir de registros de la base de datos y enviarla a la impresora en un solo paso. IronPDF se encarga de la creación del PDF e IronPrint se encarga de la salida:

¿Por qué combinar IronPDF e IronPrint?

IronPDF convierte HTML, ASPX y documentos existentes en archivos PDF con el formato adecuado. Una vez que el PDF está en memoria o guardado en el disco, IronPrint lo envía a la impresora sin necesidad de Adobe Reader. Ambas bibliotecas comparten el mismo modelo de implementación basado en NuGet, por lo que basta con añadir dos paquetes y escribir código VB.NET sencillo para cubrir todo el proceso de generación e impresión.

Este enfoque resulta especialmente eficaz para:

  • Impresión de facturas y recibos: genera archivos PDF a partir de plantillas HTML e imprime al instante
  • Generación de informes: convertir los resultados de consultas de bases de datos en archivos PDF formateados e imprimirlos bajo demanda
  • Impresión de etiquetas y códigos de barras: combina IronBarcode para la generación de códigos de barras con IronPrint para la salida
  • Procesamiento de documentos por lotes: recorrer los registros, generar un PDF por registro e imprimir cada uno de forma secuencial

Para aprender a generar archivos PDF a partir de HTML en VB.NET, visite la documentación de IronPDF for .NET.

Según la especificación del W3C para consultas de medios de impresión, controlar el diseño de impresión mediante reglas CSS @page es el enfoque estándar para los flujos de trabajo de HTML a impresión. IronPDF respeta estas reglas CSS durante la renderización, por lo que el PDF que genere tendrá los márgenes, los saltos de página y el tamaño correctos antes de que IronPrint lo envíe a la impresora.

¿Cómo se imprimen varias páginas y se controlan los rangos de páginas?

Al imprimir documentos extensos, es posible que solo necesites imprimir páginas específicas; por ejemplo, las páginas 1 a 5 de un informe de 50 páginas. La clase PrintSettings de IronPrint admite la configuración de rangos de páginas:

Configuración de rangos de páginas

Puede especificar una página de inicio y una página de fin dentro del objeto PrintSettings. La numeración de las páginas comienza en el 1, siguiendo la convención que los usuarios esperan de los cuadros de diálogo de impresión estándar. Si se omite el rango de páginas, IronPrint imprime el documento completo.

La impresión de rangos de páginas resulta especialmente útil en entornos de gran volumen, donde reimprimir una sola página dañada es más rápido que reimprimir todo el documento. En combinación con NumberOfCopies, puede controlar con precisión cuántas copias de qué páginas llegan a la bandeja de salida.

Para ver la lista completa de propiedades de PrintSettings, incluido el rango de páginas, consulta la guía práctica de configuración de impresión de IronPrint.

Impresión en escala de grises

Algunas impresoras imprimen por defecto en color incluso cuando el documento no contiene contenido en color, lo que supone un desperdicio de tóner o tinta. Puedes forzar la salida en escala de grises mediante PrintSettings. Esta configuración está disponible tanto en Windows como en macOS y funciona con todos los formatos de documento compatibles, no solo con PDF.

La descripción general de las características de IronPrint enumera todos los ajustes de impresión disponibles con ejemplos para cada plataforma.

¿Cuales son tus próximos pasos?

Ahora dispone de los componentes básicos para la impresión de PDF en aplicaciones VB.NET:

  • Impresión silenciosa -- Printer.Print(path) para flujos de trabajo automatizados
  • Impresión de diálogos -- Printer.ShowPrintDialog(path) para trabajos controlados por el usuario
  • Ajustes personalizados -- PrintSettings para DPI, orientación, copias y selección de impresora
  • Enumeración de impresoras -- Printer.GetPrinterNames() para el enrutamiento dinámico de impresoras
  • Gestión de errores: gestión estructurada de excepciones con validación de archivos previa a la ejecución
  • Flujos de trabajo combinados: IronPDF para la generación, IronPrint para la salida

Para poner en práctica estas capacidades, inicia tu prueba gratuita de IronPrint y explora estos recursos adicionales:

Preguntas Frecuentes

¿Qué es IronPrint?

IronPrint es una biblioteca que simplifica el proceso de impresión de documentos PDF en VB .NET al eliminar la necesidad de Adobe Reader y otras dependencias.

¿Cómo IronPrint facilita la impresión de PDF en VB .NET?

IronPrint permite la impresión de PDF en VB .NET al proporcionar un método sencillo que funciona en múltiples plataformas, incluidos Windows, macOS y dispositivos móviles.

¿Puedo realizar impresiones silenciosas con IronPrint?

Sí, IronPrint admite la impresión silenciosa, lo que permite imprimir documentos PDF sin mostrar cuadros de diálogo ni requerir interacción del usuario.

¿ IronPrint es compatible con plataformas móviles?

Sí, IronPrint está diseñado para funcionar en Windows, macOS y plataformas móviles, lo que proporciona flexibilidad en las aplicaciones de impresión PDF.

¿IronPrint requiere alguna dependencia externa?

No, IronPrint es una solución libre de dependencias, lo que significa que no necesita software adicional como Adobe Reader para imprimir archivos PDF en VB .NET.

¿Qué ventajas ofrece IronPrint frente a los métodos tradicionales de impresión PDF?

IronPrint ofrece un proceso de impresión de PDF simplificado y eficiente al eliminar la necesidad de soluciones alternativas complejas y dependencias externas, lo que facilita la integración en aplicaciones .NET .

¿Puedo personalizar la configuración de impresión con IronPrint?

Sí, IronPrint ofrece opciones para personalizar la configuración de impresión a través de la clase PrintSettings, lo que permite a los desarrolladores controlar DPI, la orientación del papel, las copias y la selección de impresora.

¿Cómo mejora IronPrint el proceso de impresión de PDF en aplicaciones VB .NET ?

IronPrint mejora el proceso de impresión de PDF al ofrecer un método único y fácil de usar para imprimir en varias plataformas sin necesidad de software adicional.

¿ IronPrint es adecuado para el desarrollo multiplataforma?

Sí, IronPrint es adecuado para el desarrollo multiplataforma, ya que admite la impresión en Windows, macOS, Linux y plataformas móviles.

¿Qué tipo de soporte ofrece IronPrint a los desarrolladores?

IronPrint ofrece soporte a los desarrolladores a través de documentación detallada, ejemplos de código y acceso a soporte técnico, lo que garantiza una experiencia de desarrollo fluida.

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

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame