Como compactar arquivos PDF usando Python | IronPDF

Como compactar arquivos PDF em Python

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

O método CompressImages do IronPDF permite que desenvolvedores Python reduzam o tamanho de arquivos PDF comprimindo imagens incorporadas com configurações de qualidade ajustáveis, ajudando a otimizar o armazenamento e acelerar o compartilhamento de documentos sem sacrificar a legibilidade.

Início Rápido: Comprimir Arquivos PDF em Python

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/quickstart.py
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import PdfDocument

# 1. Install IronPDF: pip install ironpdf
# 2. Load your PDF
pdf = PdfDocument("your-file.pdf")
# 3. Compress images (quality: 1-100)
pdf.CompressImages(60)
# 4. Save compressed PDF
pdf.SaveAs("compressed.pdf")
# 5. Adjust quality parameter to balance size vs quality
PYTHON

Arquivos PDF são amplamente usados para armazenamento e compartilhamento de documentos, mas podem se tornar pesados em grandes tamanhos de arquivo. Fazer upload ou enviar por e-mail um relatório de 10 MB é notavelmente mais lento do que compartilhar um equivalente de 2 MB, e os custos de armazenamento se acumulam quando os volumes de documentos são altos. A compressão de PDF resolve isso ao reduzir o tamanho do arquivo enquanto mantém o conteúdo legível.

Este guia mostra como usar o IronPDF para comprimir arquivos PDF em Python. Exemplos práticos de código cobrem tanto a compressão de imagem padrão quanto a compressão avançada baseada em resolução, para que você possa escolher a abordagem que se encaixa em seu pipeline. Esteja trabalhando com conversões de HTML para PDF ou documentos existentes, a mesma API de compressão se aplica.

O que é o IronPDF e por que usá-lo para compressão de PDF?

O IronPDF é uma biblioteca PDF for Python que lida com criação, leitura, edição e otimização de documentos PDF. Funciona com arquivos gerados do zero, convertidos de HTML, ou carregados do disco. Sua API de compressão tem como alvo imagens, que são o principal contribuinte para tamanhos grandes de PDF.

O método CompressImages aceita um número inteiro de qualidade de 1 a 100 e um valor booleano opcional que redimensiona as imagens para sua resolução visível. Esse design de dois parâmetros permite ajustar a compressão precisamente: um painel de relatórios de alto tráfego pode usar qualidade 70 para manter visuais nítidos, enquanto um sistema de arquivo interno pode usar qualidade 40 para maximizar a economia de armazenamento. A biblioteca lida com toda a codificação internamente, então nenhuma dependência adicional é necessária.

O IronPDF é parte do Iron Suite, que cobre criação de documentos, processamento de códigos de barras, OCR, e arquivamento ZIP, tudo a partir de uma instalação Python compartilhada. Para desenvolvedores que já usam o IronPDF para criar PDFs do zero, a compressão se encaixa como um passo de acompanhamento natural antes de salvar ou distribuir arquivos.

Como você instala o IronPDF em Python?

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/install.sh
:ProductInstall
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
:ProductInstall
SHELL

ObserveO IronPDF for Python é executado em cima da biblioteca IronPDF .NET, que requer o SDK .NET 6.0. Baixe o SDK .NET 6.0 do site oficial da Microsoft antes de executar a instalação pelo pip.

Após a instalação, configure sua chave de licença para ambientes de produção. O IronPDF inclui um teste gratuito de 30 dias que cobre todas as funcionalidades, incluindo compressão, sem necessidade de cartão de crédito. A página do pacote PyPI lista as últimas notas de lançamento e detalhes sobre dependências.

Como você comprime arquivos PDF usando o IronPDF?

Passe um número inteiro de qualidade para CompressImages para reduzir o tamanho das imagens incorporadas em todo o documento. Inteiros mais baixos produzem arquivos menores à custa da fidelidade da imagem; inteiros mais altos preservam mais detalhes. O exemplo abaixo mostra tanto uma chamada de compressão padrão quanto uma chamada avançada que também reduz a escala das imagens para o seu tamanho visível.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/compress-basic.py
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import PdfDocument

# Load the PDF document from a file
pdf = PdfDocument("Image based PDF.pdf")

# Compress images to quality 60 (lower numbers increase compression)
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Advanced: also scale images down to their visible size in the PDF
# Note: scaling can affect image clarity if pages are resized later
pdf.CompressImages(90, True)
pdf.SaveAs("Compressed.pdf")
PYTHON

O que significam os parâmetros de compressão?

CompressImages aceita dois parâmetros:

  • Qualidade (obrigatório): Um número inteiro de 1 a 100. Um valor de 100 mantém a qualidade original da imagem sem compressão aplicada. Valores entre 40 e 80 cobrem a maioria dos casos de uso prático, com 60 sendo um ponto de partida comum para documentos de uso geral.
  • Dimensionar para tamanho visível (opcional) : Um valor booleano que por padrão é False. Quando True, cada imagem é redimensionada para corresponder às suas dimensões renderizadas na página. Isso adiciona uma segunda passagem de redução além da compressão de qualidade, produzindo arquivos menores. Note que páginas escaladas ou impressas em DPI mais alto posteriormente podem apresentar artefatos.

Após salvar, compare o arquivo comprimido com o original em qualquer visualizador de PDF para confirmar se a qualidade atende aos seus requisitos. Para exemplos adicionais de padrões, veja a página de exemplos de compressão de PDF.

Qual é a aparência do PDF antes da compressão?

Arquivo PDF aberto no navegador Microsoft Edge exibindo tamanho de arquivo de 458 KB antes da aplicação da compressão IronPDF Python

Como fica o PDF após a compressão?

Entrada de arquivo PDF compactado no Windows Explorer mostrando um tamanho de arquivo de 357 KB, uma redução de 22% em relação aos 458 KB usando o IronPDF CompressImages com qualidade 60

A comparação mostra uma redução de 458 KB para 357 KB (cerca de 22%) usando qualidade 60. Arquivos com uma maior proporção de conteúdo fotográfico tipicamente alcançam reduções maiores do que arquivos dominados por texto ou gráficos vetoriais.

Como Aplicar Compressão em Lote a Múltiplos Arquivos PDF?

O processamento de uma pasta de arquivos PDF segue a mesma API: itere sobre cada arquivo .pdf, carregue-o com PdfDocument, chame CompressImages e salve o resultado. A função abaixo envolve esse padrão em um utilitário reutilizável.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/batch-compress.py
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
import os
from ironpdf import PdfDocument

def batch_compress_pdfs(input_folder, output_folder, quality=60):
    """
    Compress all PDF files in a folder.

    Args:
        input_folder: Path to folder containing source PDFs
        output_folder: Path where compressed PDFs will be saved
        quality: Compression quality (1–100); default is 60
    """
    # Create the output folder if it does not exist
    os.makedirs(output_folder, exist_ok=True)

    for filename in os.listdir(input_folder):
        if filename.endswith(".pdf"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, f"compressed_{filename}")

            try:
                pdf = PdfDocument(input_path)
                pdf.CompressImages(quality)
                pdf.SaveAs(output_path)
                print(f"Compressed: {filename}")
            except Exception as e:
                print(f"Error compressing {filename}: {e}")
PYTHON

O bloco except impede que um único arquivo corrompido ou protegido por senha interrompa todo o lote. Registrar o nome do arquivo junto à mensagem de exceção facilita a identificação de quais arquivos precisam de revisão manual. Para pipelines de maior volume, considere dividir a pasta em partes e processá-las em threads paralelos.

PontasPara documentos que misturam imagens fotográficas com diagramas técnicos, execute duas passagens: qualidade 50 para fotografias e qualidade 85 para páginas ricas em diagramas. Extraia e reúna novamente usando a API de junção de PDFs para manter cada seção no seu nível de qualidade ideal.

Quais Configurações de Qualidade Usar para Compressão de PDF?

A configuração de qualidade correta depende de como o PDF será usado após a compressão. Três intervalos cobrem os cenários mais comuns.

Alta qualidade (70–90): Documentos destinados à impressão ou distribuição formal beneficiam-se ao permanecer neste intervalo. O texto permanece nítido e os diagramas continuam legíveis nas resoluções padrão de impressão. A redução do tamanho do arquivo é modesta, tipicamente 10–25%, mas o resultado é indistinguível da fonte para a maioria dos leitores.

Qualidade média (50–70): Este intervalo é adequado para entrega web e anexos de e-mail. O conteúdo fotográfico mostra um leve amolecimento sob inspeção minuciosa, mas a redução no tamanho do arquivo (frequentemente 25–50%) melhora significativamente os tempos de carregamento e a entrega por e-mail. A maioria dos sistemas de gerenciamento de documentos e upload em portais funciona bem com qualidade 60.

Compressão agressiva (30–50): Arquivos internos, backups de armazenamento de longo prazo, e documentos que não serão impressos podem usar este intervalo. Na qualidade 40, as imagens são visivelmente mais suaves, mas o texto renderizado pelo motor PDF (em vez de embutido como imagens) permanece totalmente nítido. Esta abordagem também é apropriada para documentos que serão convertidos para imagens e redimensionados antes da exibição.

ImportanteSempre mantenha o arquivo original não comprimido acessível. A compressão é com perda de qualidade para imagens; não há como recuperar os dados originais da imagem de um PDF comprimido.

Como Verificar Resultados de Compressão em Python?

Verificar o tamanho do arquivo de saída programaticamente confirma se a compressão atingiu o objetivo antes que o arquivo passe para a próxima etapa do pipeline. A função integrada do Python, __str__, retorna a contagem de bytes para qualquer caminho de arquivo, portanto, a verificação não requer bibliotecas adicionais.

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-compress-pdf/verify-compression.py
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
import os
from ironpdf import PdfDocument

# Load and compress the document
pdf = PdfDocument("report.pdf")
original_size = os.path.getsize("report.pdf")

pdf.CompressImages(60)
pdf.SaveAs("report_compressed.pdf")

compressed_size = os.path.getsize("report_compressed.pdf")
reduction_pct = (1 - compressed_size / original_size) * 100

# Report results to confirm compression was effective
print(f"Original:   {original_size / 1024:.1f} KB")
print(f"Compressed: {compressed_size / 1024:.1f} KB")
print(f"Reduction:  {reduction_pct:.1f}%")
PYTHON

A saída fornece uma porcentagem clara de redução que pode ser registrada ou verificada com um limite. Se a redução ficar abaixo das expectativas, o documento pode conter poucas ou nenhumas imagens embutidas. Nesse caso, o tamanho do arquivo permanecerá praticamente inalterado, independentemente da configuração de qualidade, já que CompressImages tem como alvo apenas imagens rasterizadas. Texto e gráficos vetoriais não são afetados por este método.

ObserveA compressão do IronPDF mira a codificação JPEG para imagens rasterizadas dentro de PDFs. O padrão de compressão JPEG define a troca qualidade-tamanho que o parâmetro de qualidade controla. Valores mais baixos aplicam quantização JPEG mais agressiva, reduzindo tanto o tamanho do arquivo quanto o detalhe da imagem.

Quais São os Próximos Passos para Compressão de PDF em Python?

O método CompressImages do IronPDF oferece aos desenvolvedores Python uma API única e bem definida para reduzir o tamanho de arquivos PDF. Ajuste o parâmetro de qualidade para equilibrar economias de armazenamento contra a fidelidade visual, e adicione o booleano de escala de resolução para uma segunda passagem de redução quando as dimensões de saída forem fixas. Para uma visão mais ampla do que o IronPDF pode fazer, veja a página de visão geral da biblioteca de PDF for Python.

Comece seu teste gratuito para testar a compressão junto ao conjunto completo de recursos do IronPDF, incluindo conversão de HTML para PDF, assinaturas digitais, manipulação de formulários e junção de documentos. Quando o período de teste terminar, veja as opções de licenciamento para encontrar o plano que se encaixa na sua implantação.

Pronto para ver o que mais o IronPDF pode fazer? Explore o tutorial completo de PDF for Python para um passo a passo das capacidades principais do IronPDF.

Perguntas frequentes

Como faço para instalar o IronPDF para comprimir PDFs em Python?

Execute pip install ironpdf no seu terminal. O IronPDF for Python requer que o SDK .NET 6.0 seja instalado primeiro. Após a instalação, importe PdfDocument do pacote ironpdf para começar a comprimir PDFs.

Qual é o código básico para comprimir um arquivo PDF em Python?

Carregue o arquivo com PdfDocument("seu-arquivo.pdf"), chame CompressImages(60) com um inteiro de qualidade de 1 a 100 e salve o resultado usando SaveAs("comprimido.pdf"). Ajuste o valor de qualidade para equilibrar o tamanho do arquivo com a fidelidade da imagem.

Como o parâmetro de qualidade afeta a compressão de PDF?

O parâmetro de qualidade CompressImages varia de 1 a 100. Valores mais baixos produzem arquivos menores com mais suavização de imagem visível. Valores mais altos preservam mais detalhes à custa de um arquivo maior. Valores entre 40 e 80 cobrem a maioria dos casos de uso prático, com 60 como ponto de partida comum.

Posso passar um segundo argumento para CompressImages?

Sim. Passar True como segundo argumento diz ao IronPDF para reamostrar cada imagem às suas dimensões visíveis na página antes de aplicar a compressão de qualidade. Isso adiciona uma segunda passagem de redução e produz arquivos menores, mas páginas escaladas ou impressas em DPI mais alta posteriormente podem mostrar artefatos.

A compressão de PDF afeta texto e gráficos vetoriais?

CompressImages tem como alvo imagens rasterizadas incorporadas no PDF. Textos renderizados pelo mecanismo PDF e gráficos vetoriais não são afetados por este método, então documentos com pouca ou nenhuma imagem incorporada mostrarão redução de tamanho mínima.

Como faço para verificar a redução de tamanho de arquivo em Python?

Use os.path.getsize("comprimido.pdf") para recuperar a contagem de bytes do arquivo salvo e compare-a com o original. Dividir a diferença pelo tamanho original dá a porcentagem de redução como um ponto flutuante.

Qual faixa de qualidade é melhor para entrega na web?

Uma configuração de qualidade entre 50 e 70 é adequada para a maioria dos cenários de entrega na web e e-mail. Essa faixa geralmente reduz o tamanho do arquivo em 25 a 50 por cento mantendo o conteúdo fotográfico visualmente aceitável para leitura na tela.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Versão: 2026.5 just released
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas?
executar um exemplo Veja seu HTML se transformar em um PDF.