O problema que todo mundo tenta resolver sozinho
Você baixa uma imagem, quer imprimir algo grande, e aí o Word ou o visualizador de PDF não conseguem lidar com o tamanho direito. A solução mais prática na maioria dos casos é dividir a imagem em folhas A4 mesmo. Eu passei anos tentando fazer isso de formas complicadas — ferramentas online que quebravam, scripts Python que geravam margens estranhas — até encontrar um fluxo que realmente funciona no dia a dia. O que vou explicar aqui é o método que eu uso atualmente. Não é perfeito, mas é direto e evita as armadilhas mais comuns.
Dividir imagem em folhas A4 para imprimir com Python e Pillow
A base do processo é usar a biblioteca Pillow. Você especifica a largura e altura de uma folha A4 na resolução que a impressora vai usar, corta a imagem original em tiles retangulares, e salva cada tile como um PDF ou imagem separada. O script abaixo faz exatamente isso: Um detalhe importante que não aparece nos tutoriais genéricos: a conversão de milímetros para pixels usa a constante 25,4 (polegadas). Se você usar 25,0 ou arredondar mal, as bordas entre as folhas vão ter um descompasso de alguns pixels. Na prática, isso significa que ao montar a imagem impressa, as linhas de corte não vão se alinhar perfeitamente. Eu descobri isso da forma difícil, com um mapa técnico de 80 MB que precisei colar em 12 folhas. As bordas não casavam porque eu tinha usado 300 DPI no script mas a impressora viajava para 298 DPI no driver. A solução foi rodar o script em 298 DPI e ajustar o scale do driver de impressão para 100,7%.
O problema das imagens com aspect ratio irrelevante para A4
Nem toda imagem se encaixa limpo no formato A4. Imagens panorâmicas geram colunas extras, imagens verticais geram linhas extras. O script acima lida com isso usando crop nas bordas — as folhas finais simplesmente serão menores na direção que ultrapassar o limite. Se isso for um problema para seu uso (por exemplo, você precisa que todas as folhas tenham tamanho exatamente igual), você pode adicionar um padding branco usando: Essa etapa adicional aumenta o tempo de processamento em cerca de 20% para imagens grandes, mas garante que todas as folhas sejam idênticas no formato. Se você não quer escrever código e prefere uma linha de comando, o ImageMagick tem o comando convert com a opção -crop:
Get the Full Details

Essa linha gera automaticamente as páginas numeradas. O cálculo de 2480x3508 vem de 210mm x 297mm convertidos para 300 DPI (210/25.4*300 2480, 297/25.4*300 3508). O problema é que o ImageMagick não lida bem com imágenes cuja dimensão não é múltipla exata do tile — ele corta fora o que sobra em vez de criar uma folha menor. Eu precisei contornar isso adicionando um padding antes do crop: Isso é um workaround necessário mas pouco intuitivo. Se a imagem original já tem dimensões múltiplas exatas, pule essa etapa. Imagens acima de 200 MP tendem a travar o Pillow ou o ImageMagick por memória insuficiente. A solução que eu encontrei foi abrir a imagem em modo "low mem" usando OpenCV e redimensionar antes do processamento:
Reduzir a imagem antes de dividir economiza tempo de processamento e evita crashes. O custo é a perda de detalhes finos, mas para fins de impressão em A4, a diferença costuma ser imperceptível a olho nu a menos que você imprima muito perto do papel. O primeiro erro foi não considerar o modo de cor. Imagens em modo RGBA (com canal alpha) geram folhas com fundo preto ao invés de transparente quando convertidas para JPEG. A correção é converter explicitamente para RGB antes de salvar: O segundo erro foi ignorar a DPI padrão do documento. Alguns visualizadores de PDF assumem 72 DPI por padrão, o que faz as folhas saírem com tamanho errado na hora da impressão. A solução é incluir a metadata de DPI no PDF gerado, ou usar PNG que preserva as dimensões físicas corretas.
O terceiro erro foi não testar com uma imagem pequena antes de processar o arquivo grande. Uma configuração errada de margins ou padding pode fazer com que 50 folhas sejam geradas com sobreposição de conteúdo. Teste sempre com uma imagem de 1000x1000 pixels antes de rodar no arquivo real.

Quando NÃO usar essa abordagem
Se você precisa de alta precisão de registro entre as folhas (por exemplo, para mapas técnicos, plantas arquitetônicas ou de alta fidelidade), a divisão em tiles retangulares simples não é suficiente. Nesses casos, recomenda-se usar software especializado como o Adobe Illustrator (conversão para PDF multipágina com marcas de corte) ou o QGIS (para imagens georreferenciadas). O Pillow e o ImageMagick são ferramentas gerais e não tratam de marcas de registro, sangria ou overprint. Outro cenário onde a abordagem falha completamente é com imagens que precisam de rotação ou transformação não-linear entre as folhas. Se a imagem original tem distorção de lente significativa e precisa ser corrigida antes da divisão, o processamento deve ser feito em etapas separadas: correção da distorção redimensionamento divisão em tiles.
Download e instalação
O script Python acima pode ser salvo como split_a4.py e rodado diretamente. Para instalar as dependências:
pip install Pillow
Para o ImageMagick:

Ubuntu/Debian
sudo apt-get install imagemagick
macOS
brew install imagemagick
A versão do ImageMagick precisa ser 7.x para suportar as expressões -extent com variáveis dinâmicas. Versões anteriores (6.x) têm comportamento diferente e podem gerar erros de sintaxe.
Resumo prático do fluxo recomendado
- Teste a imagem com o script Python em resolução 300 DPI
- Verifique se as bordas das folhas se alinham (olhando as folhas lado a lado)
- Se necessário, ajuste o DPI para corresponder à capacidade da sua impressora
- Adicione padding branco apenas se todas as folhas precisarem ter o mesmo tamanho
- Imprima uma folha de teste antes de processar todo o arquivo
Esse fluxo reduz o tempo de iteração de horas para minutos. O ganho real vem de evitar o erro mais comum: processar a imagem inteira e só descobrir depois que as folhas saíram com corte errado ou margens deslocadas.