“Comprimir meu PDF” tem 100 respostas nos resultados de pesquisa, e cada uma só tem a metade da razão. A verdade: a compressibilidade do PDF está fortemente ligada ao seu “tipo de conteúdo”. Um PDF digitalizado de 5 MB pode comprimir para 800 KB; o mesmo PDF de 5 MB só de texto pode comprimir apenas para 4,7 MB.

Este artigo usa dados de compressão reais de 4 tipos típicos de PDF para explicar: do que um arquivo PDF é feito, quanto de cada parte é compressível, e por que um compressor local baseado em navegador nunca pode igualar o GhostScript de desktop.

Anatomia de um Arquivo PDF

Um arquivo PDF tem 4 componentes:

  • Fluxos de texto — texto dentro do PDF, armazenado como vetores (não como imagens)
  • Fluxos de imagem — imagens dentro do PDF, geralmente comprimidas em JPEG/PNG, possivelmente sem compressão
  • Fontes — arquivos de fonte incorporados (às vezes re-incorporados, às vezes com subconjuntos incorporados)
  • Metadados — autor, software criador, histórico de modificações

A compressão basicamente faz 4 coisas: re-comprimir imagens (reduzir fluxos de imagem), reescrever dicionários de fontes (remover glifos não usados), Deflacionar fluxos de texto (tipo zip), remover metadados redundantes.

A ferramenta pdf-lib no lado do navegador faz principalmente #4 (limpeza de metadados) e o caso simples de #1 (limpeza de metadados de JPEGs já comprimidos). O que ela não pode fazer: re-codificar imagens digitalizadas não otimizadas, forçar subconjuntos de fontes, reestruturar profundamente o grafo de objetos do PDF.

Taxas de Compressão Reais para 4 Tipos de PDF

Tipo 1: PDFs Digitalizados

Características: Cada página é uma imagem de alta resolução (geralmente 200-300 DPI, comprimida em JPEG). 90% do volume do arquivo é o fluxo de imagem.

Compressão esperada: 30-70%

Exemplo: Contrato digitalizado de 5 MB → 1,5-3,5 MB

Por que o navegador não pode: Comprimir PDFs digitalizados requer re-codificar JPEGs (baixar qualidade de 85 para 70, ou converter para WebP), o que precisa decodificar a imagem original. Ferramentas de navegador têm capacidade limitada aqui, então nossa v1 não suporta esse tipo de compressão. Ferramentas de desktop (GhostScript, Adobe Acrobat, Foxit) fazem isso, ao custo de instalar software.

Solução manual: Exporte cada página para JPEG (usando um leitor de PDF ou pdf-lib), depois [comprima as imagens](URL para o compressor de imagens) para qualidade 70, depois monte os JPEGs em um novo PDF usando um PDF vazio como moldura. Manual, lento, mas funciona.

Tipo 2: PDFs Só de Texto

Características: Os fluxos de texto dominam. Fontes têm subconjuntos incorporados. Quase não há imagens.

Compressão esperada: 2-10%

Exemplo: Relatório de pesquisa de 1 MB (sem imagens) → 0,9-0,98 MB

Por que o navegador pode fazer isso: Limpeza de metadados + fluxos de texto Deflate. Isso é o que useObjectStreams: true do pdf-lib faz.

Tipo 3: PDFs Mistos (texto + imagens)

Características: Pense em manuais de produtos, relatórios, apresentações exportadas em PDF — há gráficos, texto, imagens de capa.

Compressão esperada: 10-30%

Exemplo: Manual de produto de 8 MB → 5,6-7,2 MB

Por que o navegador pode fazer parte: A limpeza de metadados + Deflate de fluxos de texto funcionam totalmente. A parte das imagens — se as imagens já estavam comprimidas (JPEG qualidade 80+) — o navegador não pode comprimir mais. Se as imagens dentro forem PNG ou JPEG de alta qualidade, em teoria há espaço.

Tipo 4: PDFs Criptografados

Compressão esperada: 0% (conteúdo criptografado não pode ser comprimido)

Por que: Após a criptografia, o conteúdo é um fluxo de bytes aleatório. Qualquer algoritmo de compressão significativo fica inútil sobre ele. Você precisa descriptografar → comprimir → re-criptografar (se ainda precisar de criptografia).

Por Que Ferramentas Locais Nunca Vão Superar o GhostScript de Desktop

GhostScript (gs) é o canivete suíço da compressão de PDF. Suas capacidades principais:

  1. Reestruturação completa do grafo de objetos do PDF — re-intercala conteúdo de páginas, fontes, imagens para melhor atualização incremental (não podemos fazer isso)
  2. Re-codificação de imagens — re-codifica JPEG/PNG para qualidade mais agressiva (não podemos fazer isso)
  3. Subconjuntos de fontes — incorpora apenas os caracteres realmente usados no documento (não podemos — precisa de um motor de renderização)
  4. Filtragem de fluxos — muda para um nível de zlib mais eficiente (fazemos deflate de linha de base)

GhostScript é uma instalação de 200 MB com toneladas de flags de linha de comando (-dPDFSETTINGS=/screen para compressão máxima, /prepress para qualidade máxima). Navegadores não podem fazer nada disso — TypeScript roda em um sandbox sem um pipeline de renderização de PDF de baixo nível.

Como Nossa v1 Comprime

O botão “Comprimir” do nosso modo Comprimir das Ferramentas PDF faz 3 coisas:

  1. useObjectStreams: true — funde múltiplos objetos PDF em um único fluxo comprimido. Empiricamente economiza 5-15% do volume.
  2. Remover página padrão — pdf-lib adiciona uma página em branco padrão; nós não.
  3. Remover metadados redundantes — como Producer, Creator, ModDate — se ferramentas posteriores não precisarem, removê-los.

Se você comprimir um PDF e não vir uma mudança significativa (por exemplo, 5 MB → 4,95 MB), a ferramenta educadamente diz “este PDF já está bem comprimido”. Esse é um feedback honesto — não “eu comprimi, então reduziu em 30%”, mas “seu PDF não tem mais nada para reduzir”.

Planos v2

Estamos avaliando:

  • A API experimental de re-codificação de imagens do @pdf-lib/original (a comunidade tem um PR, pode entrar no main em 2026 Q3)
  • Renderização com worker pdfjs-dist + canvas → WebP — renderizar cada página via PDF.js, exportar para WebP, reempacotar. Esta é a versão transformada em ferramenta da solução manual #1; custo significativo de bundle (+30 MB)

Antes da v2, se você precisa de compressão agressiva, não há atalho — instale uma ferramenta de desktop (GhostScript, PDFsam, NAPS2) ou use um serviço online pago (smallpdf, ilovepdf).

Práticas Recomendadas

  1. Verifique o tipo primeiro — abra o arquivo no seu leitor de PDF, julgue rapidamente (tudo texto? tudo imagens? misto?)
  2. Não espere milagres — PDFs só de texto não comprimem. Não comprima em loop (cada ciclo economiza uma quantidade mínima enquanto demora mais)
  3. Lotes pequenos — comprima 10 ou menos por vez, espere o resultado, depois o próximo lote
  4. Abra e verifique após comprimir — reabra o PDF comprimido e passe as páginas. Não existe teste visual “parece certo”; só existe o teste visual “realmente passando cada página”.

Experimente nosso modo Comprimir das Ferramentas PDF. Ele diz honestamente quanto economizou.