Como imprimir arquivos PDF usando Python
A impressão de arquivos PDF no Python é um requisito comum em fluxos de trabalho de automação de documentos — faturas enviadas para impressoras na geração, etiquetas de envio enfileiradas automaticamente, relatórios de auditoria despachados conforme programado. O IronPDF for Python oferece dois métodos diretos: pdf.Print() para saída imediata na impressora padrão e pdf.GetPrintDocument() para controle total sobre intervalos de páginas, seleção de impressora, cópias e agrupamento.
Este guia cobre a instalação, carregamento de PDFs, impressão padrão e configurações de impressão personalizadas com exemplos de código funcionando para cada um.
Início rápido: Imprimir um arquivo PDF com Python
- Instale o IronPDF:
pip install ironpdf - Importe a biblioteca:
from ironpdf import * - Carregue seu PDF:
pdf = PdfDocument.FromFile("MyPdf.pdf") - Imprimir com as configurações padrão:
pdf.Print() - Ou configure as definições primeiro:
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()
Como imprimir arquivos PDF usando Python
- Instale a biblioteca IronPDF for Python via pip
- Carregue um arquivo PDF existente usando
PdfDocument.FromFile() - Use o método
Print()para enviar o documento imediatamente à impressora padrão - Acesse configurações de impressão personalizáveis usando o método
GetPrintDocument() - Execute
Print()no objetoPrintDocumentretornado para imprimir com configurações configuradas
O que é o IronPDF e como ele ajuda na impressão de PDFs?
IronPDF é uma biblioteca Python que permite aos desenvolvedores gerar, manipular e converter documentos PDF. O suporte de impressão da biblioteca abrange dois padrões: saída direta para a impressora padrão com uma única chamada de método e acesso em nível de documento a PrinterSettings para controle completo da impressora.
Com o IronPDF, a complexidade subjacente da comunicação com a impressora é tratada pela biblioteca. Os desenvolvedores trabalham com uma API de alto nível em vez de gerenciar interações de spooler de impressão em nível de SO, comandos subprocess ou utilitários de impressão específicos da plataforma. Isso significa que o mesmo código Python funciona no Windows, Linux e macOS sem modificações.
Uma capacidade chave é a capacidade de converter HTML, CSS e JavaScript em PDF antes da impressão — útil quando o material de origem é um template web ou relatório dinâmico, em vez de um arquivo existente. Para mais sobre isso, veja o tutorial de HTML para PDF. A biblioteca também suporta mesclar PDFs antes da impressão e comprimir PDFs para reduzir o tempo de transferência para documentos grandes.
Por que escolher o IronPDF para impressão de PDFs em Python?
O IronPDF fornece uma API de impressão completa, em vez de depender de ferramentas externas, como Ghostscript ou flags de linha de comando do Adobe Reader. A biblioteca cuida da renderização de documentos internamente, o que significa que a saída de impressão corresponde precisamente à aparência na tela. Suporte multiplataforma, acesso consistente e não dependência de visualizadores de PDF instalados localmente são as principais vantagens práticas em relação às abordagens baseadas em subprocessos.
A biblioteca também é particularmente útil quando o conteúdo a ser impresso ainda não existe como PDF. Os desenvolvedores podem criar um PDF a partir de um template HTML, adicionar cabeçalhos e rodapés, aplicar um layout de página com fontes personalizadas, e então enviar o resultado diretamente à impressora — tudo em um único script Python. Isso torna o IronPDF adequado para pipelines de geração de documentos para impressão, não apenas para impressão de arquivos existentes.
Como Eu Instalo o IronPDF for Python?
O pacote IronPDF está disponível no PyPI e instala com um único comando pip.
pip install ironpdf
Após a instalação, adicione a instrução de importação no topo do seu script:
from ironpdf import *
from ironpdf import *
O IronPDF requer Python 3.6 ou posterior. O pacote baixa automaticamente o mecanismo de renderização do IronPDF na primeira utilização, então a importação inicial pode levar algum tempo. Para ambientes com acesso de saída restrito, veja o guia de configuração do motor IronPDF para opções de configuração offline.
Configurando sua chave de licença
Uma chave de licença é necessária para uso em produção. Defina-a antes de qualquer outra chamada do IronPDF:
from ironpdf import *
License.LicenseKey = "YOUR-LICENSE-KEY"
from ironpdf import *
License.LicenseKey = "YOUR-LICENSE-KEY"
A biblioteca funciona em modo de teste sem uma chave para desenvolvimento e avaliação, mas os PDFs de saída incluirão uma marca d'água de teste. Para solucionar problemas de instalação, consulte o guia de solução de problemas de instalação.
Como Carregar um Arquivo PDF para Impressão?

Carregando um PDF do sistema de arquivos em um objeto PdfDocument usando IronPDF for Python.
O IronPDF carrega arquivos PDF do sistema de arquivos usando PdfDocument.FromFile(). O método aceita uma string de caminho de arquivo e retorna um objeto PdfDocument pronto para impressão, manipulação ou inspeção.
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")
O código acima demonstra três padrões de carregamento. FromFile() é o mais comum para fluxos de trabalho de sistema de arquivos. FromBytes() é útil quando o PDF chega como dados binários de uma consulta de banco de dados ou resposta de API. O parâmetro de senha opcional em FromFile() lida com PDFs criptografados sem qualquer etapa adicional de descriptografia.
Para PDFs originados de um URL ou conteúdo HTML, o IronPDF também pode converter um URL em PDF ou renderizar um arquivo HTML para PDF antes da impressão.
Fontes de Entrada Suportadas
Além de arquivos PDF, o IronPDF pode produzir documentos imprimíveis a partir de imagens, strings HTML e URLs ao vivo. Isso é útil em fluxos de trabalho de impressão onde os dados de origem já não são um PDF — por exemplo, renderizar um modelo de relatório com gráficos em PDF primeiro, para depois enviá-lo para a impressora.
Como Imprimir um PDF Usando Configurações Padrão?

A Python script using IronPDF's `Print()` method sends a PDF job to the system default printer.
O método Print() envia o documento para a impressora padrão do sistema usando as configurações de página padrão. Nenhuma configuração adicional é necessária.
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()
Configurações padrão usam a impressora padrão configurada pelo sistema, imprimem todas as páginas, aplicam o tamanho de papel e orientação padrão da própria impressora, e enviam uma cópia. Esta é a escolha certa para fluxos de trabalho simples onde a configuração da impressora do usuário já atende aos requisitos do documento.
Para código de produção, embale a chamada de impressão em um tratamento de erro para capturar erros de impressora offline ou de permissão:
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}")
A mensagem de exceção fornece detalhes em nível de SO sobre a falha de impressão — por exemplo, se a impressora está offline, se o spooler está pausado, ou se o documento falhou ao renderizar.
Como Personalizar Configurações de Impressão Antes de Imprimir?

IronPDF's `GetPrintDocument()` method returns a PrintDocument object with full access to PrinterSettings properties.
GetPrintDocument() retorna um objeto PrintDocument que expõe a API completa PrinterSettings. Isso permite selecionar uma impressora nomeada, definir intervalos de páginas, controlar cópias e agrupamentos, e configurar o modo duplex antes de enviar o trabalho.
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()
A propriedade PrinterSettings.PrinterName aceita o nome de exibição da impressora conforme aparece na lista de impressoras do sistema operacional. No Windows, esse nome corresponde ao exibido em "Dispositivos e Impressoras". No Linux, corresponde ao nome da impressora CUPS. Definir um nome de impressora inválido fará com que o trabalho de impressão falhe em tempo de execução, então valide o nome em relação à lista de impressoras instaladas ao construir diálogos de impressão para o usuário final.
Para listar os nomes de impressoras disponíveis no Windows, use o PowerShell ou o módulo Python do pywin32 para enumerar as impressoras programaticamente.
Selecionando Páginas e Gerenciando Cópias
As propriedades FromPage e ToPage definem um intervalo de páginas inclusivo. A numeração das páginas começa em 1. Configurar FromPage = 1 e ToPage = 0 (o padrão) imprime todas as páginas. A propriedade Copies aceita um número inteiro; Em conjunto com Collate = True, a impressora monta conjuntos completos do documento antes de iniciar a próxima cópia — o comportamento correto para relatórios com várias páginas.
Impressão em Lote de Múltiplos PDFs
Para fluxos de trabalho que imprimem uma fila de documentos, percorra a lista de arquivos e chame Print() para cada um:
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"])
Para trabalhos em lote de grande volume, considere a impressão assíncrona para evitar bloquear o fio principal enquanto cada trabalho é processado.
Quais São os Próximos Passos Para Impressão de PDFs no Python?
Este guia abordou os dois padrões principais de impressão no IronPDF for Python: saída da impressora padrão com pdf.Print() e saída de configurações personalizadas com pdf.GetPrintDocument(). Ambas as abordagens funcionam no Windows, Linux e macOS sem código específico de plataforma.
Para estender esses padrões em uma aplicação de produção, considere:
- Preenchimento de formulários PDF antes de imprimir para produzir documentos completos a partir de modelos
- Adicionando marcas d'água ou assinaturas digitais antes de enviar para a impressora
- Convertendo HTML em PDF para impressão dinâmica de relatórios a partir de modelos web
- Extraindo texto de documentos impressos para registro de auditoria
Start with a free trial license to test printing in your environment. As opções de licenciamento começam em $999 para implantação em produção.
Baixe o código-fonte completo usado neste guia.
Perguntas frequentes
Qual é a maneira mais rápida de imprimir um arquivo PDF em Python?
A maneira mais rápida é o método Print() do IronPDF. Após instalar com pip install ironpdf, carregue um PDF com PdfDocument.FromFile('yourfile.pdf') e chame pdf.Print() para enviá-lo para a impressora padrão imediatamente usando as configurações de página padrão.
Como posso selecionar uma impressora específica ao imprimir PDFs em Python?
Use GetPrintDocument() para acessar o objeto PrintDocument, depois defina printer_setting.PrinterSettings.PrinterName para o nome de exibição da impressora alvo como aparece na lista de impressoras do seu SO. No Windows, isso coincide com o nome em Dispositivos e Impressoras; no Linux, é o nome da impressora CUPS.
Como posso imprimir apenas páginas específicas de um PDF em Python?
Chame pdf.GetPrintDocument() para obter o objeto PrintDocument, depois defina printer_setting.PrinterSettings.FromPage e printer_setting.PrinterSettings.ToPage para os números da primeira e última página (baseados em 1). Chame printer_setting.Print() para executar com essas configurações.
O IronPDF for Python funciona no Linux e macOS?
Sim. O IronPDF for Python funciona no Windows, Linux e macOS. O mesmo código Python é executado sem modificações específicas da plataforma. No Linux, a seleção de impressora usa nomes de impressora CUPS. A instalação requer Python 3.6 ou posterior em todas as plataformas.
Preciso de uma chave de licença para usar os recursos de impressão do IronPDF?
Uma chave de licença é necessária para uso em produção. Defina-a com License.LicenseKey = 'YOUR-LICENSE-KEY' antes de qualquer outra chamada ao IronPDF. Durante o desenvolvimento, a biblioteca funciona sem uma chave, mas os documentos de saída terão uma marca d'água de teste. Uma licença de avaliação gratuita está disponível para avaliação.
Como posso imprimir vários arquivos PDF em lote com Python?
Faça um loop através de uma lista de caminhos de arquivos, chamando PdfDocument.FromFile(path) e pdf.Print() para cada arquivo. Envolva cada iteração em um bloco try-except para capturar erros por arquivo sem interromper todo o lote. Para trabalhos de alto volume, considere a execução assíncrona para evitar bloquear o thread principal.

