Cómo imprimir archivos PDF usando Python

Cómo imprimir archivos PDF con Python

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

Imprimir archivos PDF en Python es un requisito común en los flujos de trabajo de automatización de documentos: facturas enviadas a impresoras al generarse, etiquetas de envío en cola automáticamente, informes de auditoría despachados según el horario. IronPDF for Python proporciona dos métodos directos: pdf.Print() para salida inmediata a la impresora predeterminada y pdf.GetPrintDocument() para control completo sobre rangos de páginas, selección de impresora, copias y encuadernación.

Esta guía cubre la instalación, carga de PDFs, impresión predeterminada y configuraciones de impresión personalizadas con ejemplos de código funcionando para cada una.

Inicio rápido: imprimir un archivo PDF con Python

  1. Instale IronPDF: pip install ironpdf
  2. Importe la biblioteca: from ironpdf import *
  3. Cargue su PDF: pdf = PdfDocument.FromFile("MyPdf.pdf")
  4. Imprima con configuraciones predeterminadas: pdf.Print()
  5. O configure las configuraciones primero: printer_setting = pdf.GetPrintDocument()
from ironpdf import *

# Apply license key
License.LicenseKey = "YOUR-LICENSE-KEY"

# Load and print immediately
pdf = PdfDocument.FromFile("report.pdf")
pdf.Print()
from ironpdf import *

# Apply license key
License.LicenseKey = "YOUR-LICENSE-KEY"

# Load and print immediately
pdf = PdfDocument.FromFile("report.pdf")
pdf.Print()
PYTHON

¿Qué es IronPDF y cómo ayuda con la impresión de PDF?

IronPDF es una biblioteca de Python que permite a los desarrolladores generar, manipular y convertir documentos PDF. El soporte de impresión de la biblioteca cubre dos patrones: salida directa a la impresora predeterminada con una sola llamada de método y acceso a nivel de documento a PrinterSettings para control completo de la impresora.

Con IronPDF, la complejidad subyacente de la comunicación con la impresora es manejada por la biblioteca. Los desarrolladores trabajan con una API de alto nivel en lugar de manejar interacciones del spooler de impresión a nivel del sistema operativo, comandos subprocess, o utilidades de impresión específicas de la plataforma. Esto significa que el mismo código de Python funciona en Windows, Linux y macOS sin modificaciones.

Una capacidad clave es la capacidad de convertir HTML, CSS y JavaScript en PDF antes de imprimir, lo que es útil cuando el material fuente es una plantilla web o un informe dinámico en lugar de un archivo existente. Para más sobre esto, mira el tutorial HTML a PDF. La biblioteca también admite fusión de PDFs antes de imprimir y compresión de PDFs para reducir el tiempo de transferencia de spool para documentos grandes.

¿Por qué elegir IronPDF para la impresión de PDF en Python?

IronPDF proporciona una API de impresión completa en lugar de depender de herramientas externas como Ghostscript o banderas de línea de comando de Adobe Reader. La biblioteca maneja el renderizado de documentos internamente, lo que significa que la salida de impresión coincide con la apariencia en pantalla con precisión. El soporte multiplataforma, el acceso consistente PrinterSettings y la ausencia de dependencia de visores PDF instalados localmente son las principales ventajas prácticas sobre los enfoques basados en subprocesos.

La biblioteca también es particularmente útil cuando el contenido para imprimir aún no existe como un PDF. Los desarrolladores pueden crear un PDF desde una plantilla HTML, agregar encabezados y pies de página, aplicar un diseño de página con fuentes personalizadas, y luego enviar el resultado directamente a la impresora — todo dentro de un solo script de Python. Esto hace que IronPDF sea adecuado para pipelines de generación de documentos a impresión, no solo para imprimir archivos existentes.


¿Cómo instalo IronPDF for Python?

El paquete IronPDF está disponible en PyPI e instala con un solo comando pip.

 pip install ironpdf

Después de la instalación, agrega la declaración de importación en la parte superior de tu script:

from ironpdf import *
from ironpdf import *
PYTHON

IronPDF requiere Python 3.6 o posterior. El paquete descarga automáticamente el motor de renderizado de IronPDF en el primer uso, por lo que la importación inicial puede tardar un momento. Para entornos con acceso saliente restringido, consulta la guía de configuración del motor de IronPDF para opciones de configuración fuera de línea.

Configurar tu clave de licencia

Se requiere una clave de licencia para el uso en producción. Configurarla antes de cualquier otra llamada a IronPDF:

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"
PYTHON

La biblioteca funciona en modo de prueba sin clave para desarrollo y evaluación, pero los PDFs de salida incluirán una marca de agua de prueba. Para la resolución de problemas de instalación, consulta la guía de resolución de problemas de instalación.


¿Cómo cargo un archivo PDF para imprimir?

IronPDF Python PdfDocument.FromFile() carga un PDF desde el sistema de archivos en un objeto PdfDocument listo para imprimir

Cargando un PDF desde el sistema de archivos en un objeto PdfDocument usando IronPDF for Python.

IronPDF carga archivos PDF desde el sistema de archivos usando PdfDocument.FromFile(). El método acepta una cadena de ruta de archivo y devuelve un objeto PdfDocument listo para imprimir, manipular o inspeccionar.

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load from a file path
pdf = PdfDocument.FromFile("MyPdf.pdf")

# Load from bytes (e.g., a file read from a database or HTTP response)
with open("MyPdf.pdf", "rb") as f:
    pdf_bytes = f.read()
pdf_from_bytes = PdfDocument.FromBytes(pdf_bytes)

# Load a password-protected PDF
protected_pdf = PdfDocument.FromFile("SecurePdf.pdf", "password123")
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load from a file path
pdf = PdfDocument.FromFile("MyPdf.pdf")

# Load from bytes (e.g., a file read from a database or HTTP response)
with open("MyPdf.pdf", "rb") as f:
    pdf_bytes = f.read()
pdf_from_bytes = PdfDocument.FromBytes(pdf_bytes)

# Load a password-protected PDF
protected_pdf = PdfDocument.FromFile("SecurePdf.pdf", "password123")
PYTHON

El código anterior demuestra tres patrones de carga. FromFile() es el más común para flujos de trabajo de sistema de archivos. FromBytes() es útil cuando el PDF llega como datos binarios de una consulta de base de datos o respuesta de API. El parámetro opcional de contraseña en FromFile() maneja PDFs encriptados sin ningún paso adicional de desencriptado.

Para PDFs originados de una URL o contenido HTML, IronPDF también puede convertir una URL a PDF o renderizar un archivo HTML a PDF antes de imprimir.

Fuentes de entrada compatibles

Más allá de los archivos PDF, IronPDF puede producir documentos imprimibles de imágenes, cadenas de HTML y URLs en vivo. Esto es útil en flujos de trabajo de impresión donde los datos de origen no son ya un PDF, por ejemplo, renderizando una plantilla de informe con gráficos a PDF primero, luego enviándola a la impresora.


¿Cómo imprimo un PDF usando la configuración predeterminada?

Script de Python llamando a pdf.Print() con el trabajo de impresión resultante visible en la cola de impresión de Windows

A Python script using IronPDF's `Print()` method sends a PDF job to the system default printer.

El método Print() envía el documento a la impresora predeterminada del sistema usando configuraciones de página predeterminadas. No se necesita configuración adicional.

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load the PDF
pdf = PdfDocument.FromFile("invoice.pdf")

# Print to default printer with default settings
pdf.Print()
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load the PDF
pdf = PdfDocument.FromFile("invoice.pdf")

# Print to default printer with default settings
pdf.Print()
PYTHON

La configuración predeterminada utiliza la impresora predeterminada configurada en el sistema, imprime todas las páginas, aplica el tamaño de papel y la orientación predeterminados de la impresora, y envía una copia. Esta es la elección correcta para flujos de trabajo simples donde la configuración del usuario ya coincide con los requisitos del documento.

Para código de producción, envuelva la llamada de impresión en un manejo de errores para capturar errores de impresora fuera de línea o de permisos:

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

try:
    pdf = PdfDocument.FromFile("invoice.pdf")
    pdf.Print()
except Exception as e:
    print(f"Print job failed: {e}")
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

try:
    pdf = PdfDocument.FromFile("invoice.pdf")
    pdf.Print()
except Exception as e:
    print(f"Print job failed: {e}")
PYTHON

El mensaje de excepción proporciona detalles a nivel del sistema operativo sobre la falla de impresión, por ejemplo, si la impresora está fuera de línea, el spooler está en pausa, o el documento no se pudo renderizar.


¿Cómo personalizo la configuración de impresión antes de imprimir?

IronPDF Python GetPrintDocument() mostrando propiedades de PrinterSettings incluyendo PrinterName, FromPage, ToPage, y Copies establecidas en un script de Python

IronPDF's `GetPrintDocument()` method returns a PrintDocument object with full access to PrinterSettings properties.

GetPrintDocument() devuelve un objeto PrintDocument que expone la API completa PrinterSettings. Esto permite seleccionar una impresora por nombre, establecer rangos de páginas, controlar copias y colación, y configurar modo dúplex antes de enviar el trabajo.

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

pdf = PdfDocument.FromFile("quarterly-report.pdf")

# Access the PrintDocument object
printer_setting = pdf.GetPrintDocument()

# Select a specific printer by name
printer_setting.PrinterSettings.PrinterName = "HP LaserJet Pro"

# Print only pages 2 through 4
printer_setting.PrinterSettings.FromPage = 2
printer_setting.PrinterSettings.ToPage = 4

# Print 2 collated copies
printer_setting.PrinterSettings.Copies = 2
printer_setting.PrinterSettings.Collate = True

# Execute the print job
printer_setting.Print()
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

pdf = PdfDocument.FromFile("quarterly-report.pdf")

# Access the PrintDocument object
printer_setting = pdf.GetPrintDocument()

# Select a specific printer by name
printer_setting.PrinterSettings.PrinterName = "HP LaserJet Pro"

# Print only pages 2 through 4
printer_setting.PrinterSettings.FromPage = 2
printer_setting.PrinterSettings.ToPage = 4

# Print 2 collated copies
printer_setting.PrinterSettings.Copies = 2
printer_setting.PrinterSettings.Collate = True

# Execute the print job
printer_setting.Print()
PYTHON

La propiedad PrinterSettings.PrinterName acepta el nombre de pantalla de la impresora tal como aparece en la lista de impresoras del sistema operativo. En Windows, esto coincide con el nombre mostrado en "Dispositivos e impresoras". En Linux, corresponde al nombre de la impresora CUPS. Configurar un nombre de impresora inválido hará que el trabajo de impresión falle en tiempo de ejecución, así que valide el nombre contra la lista de impresoras instaladas al construir diálogos de impresión orientados al usuario.

ConsejosPara listar los nombres de impresoras disponibles en Windows, use [System.Drawing.Printing.PrinterSettings]::InstalledPrinters en PowerShell, o use el módulo Python win32print desde pywin32 para enumerar las impresoras programáticamente.

Seleccionando páginas y gestionando copias

Las propiedades FromPage y ToPage definen un rango de páginas inclusivo. La numeración de páginas comienza en 1. Configurando FromPage = 1 y ToPage = 0 (el predeterminado) se imprimen todas las páginas. La propiedad Copies acepta un entero; combinado con Collate = True, la impresora ensambla conjuntos completos del documento antes de comenzar la siguiente copia — el comportamiento correcto para informes de múltiples páginas.

Impresión por lotes de múltiples PDFs

Para flujos de trabajo que imprimen una cola de documentos, recorra la lista de archivos y llame a Print() para cada uno:

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
PYTHON

Para trabajos de impresión por lotes de gran volumen, considere impresión asincrónica para evitar bloquear el hilo principal mientras cada trabajo se pone en cola.


¿Cuáles son los próximos pasos para la impresión de PDFs en Python?

Esta guía cubrió los dos patrones de impresión principales en IronPDF for Python: salida a la impresora predeterminada con pdf.Print() y salida con configuraciones personalizadas con pdf.GetPrintDocument(). Ambos enfoques funcionan en Windows, Linux y macOS sin código específico de la plataforma.

Para extender estos patrones en una aplicación de producción, considere:

Start with a free trial license to test printing in your environment. Opciones de licencia comienzan desde $999 para implementación en producción.

Descarga el código fuente completo usado en esta guía.

Preguntas Frecuentes

¿Cuál es la forma más rápida de imprimir un archivo PDF en Python?

La forma más rápida es el método Print() de IronPDF. Después de instalar con pip install ironpdf, carga un PDF con PdfDocument.FromFile('yourfile.pdf') y llama a pdf.Print() para enviarlo a la impresora predeterminada inmediatamente usando configuraciones de página predeterminadas.

¿Cómo selecciono una impresora específica al imprimir PDFs en Python?

Usa GetPrintDocument() para acceder al objeto PrintDocument, luego establece printer_setting.PrinterSettings.PrinterName al nombre de visualización de la impresora objetivo tal como aparece en la lista de impresoras de tu SO. En Windows esto coincide con el nombre en Dispositivos e Impresoras; en Linux es el nombre de la impresora CUPS.

¿Cómo imprimo solo páginas específicas de un PDF en Python?

Llama a pdf.GetPrintDocument() para obtener el objeto PrintDocument, luego establece printer_setting.PrinterSettings.FromPage y printer_setting.PrinterSettings.ToPage a los números de la primera y última página (comenzando desde 1). Llama a printer_setting.Print() para ejecutar con esos ajustes.

¿Funciona IronPDF for Python en Linux y macOS?

Sí. IronPDF for Python funciona en Windows, Linux y macOS. El mismo código Python se ejecuta sin modificaciones específicas de la plataforma. En Linux, la selección de la impresora utiliza nombres de impresoras CUPS. La instalación requiere Python 3.6 o posterior en todas las plataformas.

¿Necesito una clave de licencia para usar las funciones de impresión de IronPDF?

Se requiere una clave de licencia para uso en producción. Establécela con License.LicenseKey = 'YOUR-LICENSE-KEY' antes de cualquier otra llamada de IronPDF. Durante el desarrollo la biblioteca funciona sin una clave, pero los documentos de salida llevarán una marca de agua de prueba. Está disponible una licencia de prueba gratuita para evaluación.

¿Cómo imprimo múltiples archivos PDF en un lote con Python?

Recorre una lista de rutas de archivo, llamando a PdfDocument.FromFile(path) y pdf.Print() para cada archivo. Envuelve cada iteración en un bloque try-except para capturar errores por archivo sin detener todo el lote. Para trabajos de alto volumen, considera la ejecución asincrónica para evitar bloquear el hilo principal.

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?
Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.