# Processar uma pasta inteira de PDFs: script e limites

Como comprimir uma pasta inteira de PDFs com um script, contar as operações do plano antes de começar e escolher o nível de compressão certo para cada tipo.

URL canônica: https://ajustapdf.com/blog/pdf-em-lote-pasta-inteira

Publicado em 2026-10-20 · atualizado em 2026-10-21 · 5 min de leitura · por [AjustaPDF](https://ajustapdf.com/sobre#editorial)

Para comprimir uma pasta inteira de PDFs, use um laço que envia um arquivo por vez à API e grava cada resultado numa pasta de saída. O que decide se o lote termina no dia é a cota: cada arquivo comprimido gasta uma operação. Conte os arquivos antes de começar e compare com o limite do seu plano.

## Conte as operações antes de começar

A compressão aceita um arquivo por chamada, e isso muda a conta. Uma pasta com 40 PDFs são 40 operações, não uma. No plano sem conta, o limite é de 3 operações por dia; no grátis, 10; no Pro, 500. Com 40 arquivos, o plano grátis precisa de quatro dias, e o Pro termina no mesmo dia com folga.

O limite de tamanho também é por arquivo, e não pela pasta inteira. Sem conta, cada PDF pode ter até 25 MB; no grátis, 50 MB; no Pro, 200 MB. Uma pasta com um arquivo de 60 MB falha no grátis mesmo que todos os outros passem, então separe esse arquivo antes.

| Plano | Operações por dia | Tamanho por arquivo |
| --- | --- | --- |
| Sem conta | 3 | 25 MB |
| Conta grátis | 10 | 50 MB |
| Pro | 500 | 200 MB |

## Escolha o nível pelo tipo de PDF

Uma pasta quase sempre mistura tipos de arquivo, e o nível de compressão deve acompanhar o tipo. Em um teste com uma página A4 de exemplo, os resultados foram estes, e variam com o conteúdo de cada documento:

| Tipo de página | Original | Médio | Forte |
| --- | --- | --- | --- |
| Escaneada a 300 DPI, em tons de cinza | 2,5 MB | 462 KB | 157 KB |
| Foto colorida a 300 DPI | 4,7 MB | 87 KB | 42 KB |
| Texto gerado do Word | 3 KB | 3 KB | 3 KB |

O nível leve, que mantém 300 DPI, não reduziu nenhuma dessas páginas no teste, porque a saída não ficaria menor que a entrada. Quando a saída não fica menor, a API devolve o original. Para um lote de escaneados, o nível médio é o ponto de equilíbrio. Para um lote que precisa caber num limite de tamanho, use level=alvo com targetMb: o servidor tenta leve, média e forte e devolve a primeira que couber. Veja o guia de [curl na linha de comando](/blog/curl-api-pdf-terminal) para esse caso.

## O script em um laço

No macOS e no Linux, o laço percorre os PDFs da pasta, cria a pasta de saída e envia cada arquivo com o campo file e o nível no campo level, usando a chave que está em AJUSTAPDF\_KEY. O código HTTP vem do curl com a opção -w. Quando não é 200, o corpo da resposta é um JSON de erro: o script o anota num arquivo de falhas, apaga o arquivo de saída e, se o erro for de cota esgotada, para o lote.

```
mkdir -p saida
for f in *.pdf; do
  status=$(curl -sS -o "saida/$f" -w "%{http_code}" -X POST https://api.ajustapdf.com/pdf/compress \
    -H "Authorization: Bearer $AJUSTAPDF_KEY" -F "file=@$f" -F "level=media")
  if [ "$status" != "200" ]; then
    echo "$f: HTTP $status $(cat "saida/$f")" >> falhas.txt
    parar=$(grep -c QUOTA_EXCEEDED "saida/$f")
    rm -f "saida/$f"
    if [ "$parar" != "0" ]; then break; fi
  fi
done
```

No Windows, o mesmo laço roda no PowerShell com o curl.exe, e a opção -f basta para saber se cada chamada deu certo:

```
New-Item -ItemType Directory -Force saida | Out-Null
Get-ChildItem *.pdf | ForEach-Object {
    curl.exe -f -sS -X POST https://api.ajustapdf.com/pdf/compress `
        -H "Authorization: Bearer $env:AJUSTAPDF_KEY" `
        -F "file=@$($_.FullName)" -F "level=media" -o "saida\$($_.Name)"
    if ($LASTEXITCODE -ne 0) { Add-Content falhas.txt $_.Name }
}
```

O arquivo de saída tem o mesmo nome do original, mas dentro da pasta saida, para que nada seja sobrescrito. Confira a pasta depois do lote: os arquivos com erro não aparecem na saída, e o registro de falhas diz quais são. Para acompanhar a cota, grave os cabeçalhos de cada resposta com a opção -D e leia x-quota-used. Quem prefere montar o laço com uma ferramenta visual pode usar o guia de [automação com n8n, Make ou Zapier](/blog/automatizar-pdf-n8n-make-zapier).

## Cuidados com formulários e fotos

A compressão achata os formulários. Campos preenchidos viram texto fixo e os campos deixam de existir, o que é bom para envio mas ruim para um modelo que alguém ainda vai preencher. Separe os modelos em uma pasta à parte e não os comprima junto com os preenchidos.

Os PDFs gerados a partir de fotos de celular dependem do tamanho de página da conversão. Em A4 ou Carta, o padrão da ferramenta de [imagem para PDF](/imagem-para-pdf), a foto mantém todos os pixels (uma foto de 12 megapixels fica perto de 390 DPI em A4), e comprimir no nível médio ou forte reduz o arquivo de verdade. Na opção “do tamanho de cada imagem”, a foto fica em cerca de 72 DPI e a compressão ganha pouco. O guia [uma foto gigante deixou o PDF pesado](/blog/pdf-pesado-por-causa-de-uma-imagem) ajuda a achar a página culpada.

## Quando um script não compensa

Se a pasta tem cinco ou dez arquivos, enviar um por um no navegador costuma ser mais rápido do que escrever o laço. O script compensa quando a tarefa se repete, quando a pasta tem dezenas de arquivos ou quando a compressão precisa acontecer toda semana sem intervenção. Para o uso pontual, a [ferramenta de comprimir PDF](/comprimir-pdf) escolhe o nível na tela e mostra o tamanho antes e depois. Quem prefere processar a pasta localmente, em Python, compara as bibliotecas em pypdf, pikepdf ou PyMuPDF.

Quando a pasta tem documentos de terceiros, como contratos de clientes ou laudos, a responsabilidade pelo envio é de quem processa. Cada arquivo é apagado do servidor logo depois que o resultado sai, mas isso não dispensa checar a pasta antes de rodar o lote. Para a referência completa das rotas e dos campos, veja o [guia da API para desenvolvedores](/blog/api-de-pdf-para-desenvolvedores).

## Checklist antes de rodar

-   Conte os PDFs e compare com a cota diária do seu plano.
-   Separe arquivos acima do limite por arquivo do seu plano.
-   Separe modelos de formulário dos preenchidos, por causa do achatamento.
-   Teste com três arquivos e abra cada resultado antes de rodar o resto.

## Perguntas frequentes

### Como comprimir todos os PDFs de uma pasta de uma vez?

Pelo navegador, cada arquivo é uma operação; pelo terminal, um laço envia um PDF por vez à rota /pdf/compress da API, com a chave na variável AJUSTAPDF_KEY. A compressão aceita um arquivo por chamada, então uma pasta com 40 PDFs gasta 40 operações da sua cota diária.

### Quantos PDFs posso processar por dia no plano grátis?

No plano com conta grátis, são 10 operações por dia, e cada arquivo comprimido conta uma. No plano sem conta, são 3. O Pro permite 500 por dia. Como a compressão é um arquivo por chamada, a quantidade de PDFs da pasta é a quantidade de operações que você precisa ter disponível.

### Por que alguns PDFs da pasta não ficam menores depois de comprimir?

Porque o peso deles não está em imagens que possam ser reduzidas. Um PDF só de texto, gerado do Word, já é pequeno e volta igual, porque a ferramenta devolve o original quando o resultado não fica menor. O mesmo vale para um PDF de fotos montado do tamanho de cada imagem, em que a foto já está perto de 72 DPI.

### A compressão em lote apaga campos de formulário?

Sim. A compressão achata os formulários: o valor preenchido vira texto fixo da página e o campo some. Em uma pasta com formulários, separe esses arquivos e confira o resultado, porque quem for preencher depois não vai encontrar os campos.
