Extraia imagens de PDFs

Quando você precisa extrair uma imagem de um arquivo PDF

Conteúdo da página

Às vezes, há uma necessidade real de salvar uma imagem de um PDF sem capturar tela ou renderizar o PDF na tela.
pdfimages ajuda com isso.

Uma imagem de um quadrinho de um homem está tirando uma foto do diagrama na tela

Para extrair imagens de um arquivo PDF no Linux, a ferramenta mais comum e eficaz é a utilidade de linha de comando pdfimages,
que faz parte do pacote poppler-utils.

Usando a utilidade pdfimages no Linux: Instruções passo a passo

1. Instale o pdfimages (se ainda não estiver instalado):

A maioria das distribuições Linux inclui o pdfimages por padrão. Se necessário, instale-o usando o gerenciador de pacotes:

sudo apt-get install poppler-utils

ou para Fedora:

sudo dnf install poppler-utils

2. Abra um Terminal:

Pressione Ctrl + Alt + T para abrir uma janela do terminal.

3. Execute o pdfimages para extrair imagens:

Sintaxe básica:

pdfimages  

Exemplo:

pdfimages /path/to/file.pdf /path/to/output/image
  • Isso extrairá todas as imagens de file.pdf e as salvará como image-000.ppm, image-001.ppm, etc., no diretório de saída especificado.

4. Extrair imagens como JPEG (se desejado):

Para extrair imagens no formato JPEG (quando possível), use a opção -j:

pdfimages -j /path/to/file.pdf /path/to/output/image
  • Isso salvará as imagens JPEG como arquivos .jpg.

5. Extrair imagens de páginas específicas:

  • Para extrair imagens de um intervalo de páginas, use -f (primeira página) e -l (última página):
pdfimages -f 2 -l 5 -j /path/to/file.pdf /path/to/output/image
  • Isso extrai imagens das páginas 2 a 5.

6. Opções adicionais:

  • Para extrair imagens como PNG: use -png (se suportado pela sua versão).
  • Para PDFs protegidos por senha, use -opw 'ownerpassword' ou -upw 'userpassword'.

Notas

  • O formato de saída padrão é PPM (colorido) ou PBM (monocromático). Use -j para JPEG, ou converta os arquivos PPM/PBM para outros formatos usando ferramentas como convert do ImageMagick, se necessário.
  • Os arquivos de saída são numerados automaticamente e salvos no diretório especificado.

Tabela Resumo

Exemplo de Comando Descrição
pdfimages input.pdf image Extrai todas as imagens no formato padrão PPM/PBM
pdfimages -j input.pdf image Extrai imagens como JPEG quando possível
pdfimages -f 3 -l 5 input.pdf image Extrai imagens das páginas 3 a 5
pdfimages -opw 'password' -j input.pdf image Extrai imagens de um PDF protegido por senha de proprietário

Este método é eficiente e funciona para a maioria dos PDFs que contêm imagens embutidas. Mas:

  • O pdfimages extrai imagens apenas na sua resolução original.
  • Para controlar a resolução de saída, use uma biblioteca de renderização de PDF como PyMuPDF e especifique a DPI desejada ao criar a imagem.

Como salvar imagens de PDF com resolução específica.

Você não pode especificar a resolução das imagens extraídas ao usar pdfimages, pois essa ferramenta extrai imagens embutidas no seu formato e resolução originais, sem resampling ou alteração da qualidade. A resolução é determinada por como as imagens foram armazenadas no PDF, e pdfimages não oferece uma opção para escalar ou reduzir durante a extração.

Se quiser extrair imagens com uma resolução específica (por exemplo, renderizar uma página ou parte de uma página como uma imagem com DPI escolhido), você precisará usar uma biblioteca de renderização de PDF ou ferramenta como PyMuPDF (fitz). Com PyMuPDF, você pode especificar a resolução desejada usando o parâmetro dpi ao renderizar uma página como imagem:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0)  # primeira página
pix = page.get_pixmap(dpi=300)  # renderizar com 300 DPI
pix.save("output.png")

Essa abordagem cria uma imagem rasterizada da página com a DPI especificada, em vez de extrair as imagens embutidas originais.

Outras ferramentas que extraem imagens de PDFs

O melhor software para extrair imagens de PDFs sem perder resolução são aqueles que extraem as imagens embutidas originais diretamente, em vez de renderizar ou resample-las. As opções principais incluem:

  • Adobe Acrobat Pro: Oferece uma funcionalidade dedicada “Exportar todas as imagens”, que extrai imagens em sua qualidade e formato originais como arquivos autônomos. Este método é altamente confiável e preserva a resolução e qualidade exatas das imagens como armazenadas no PDF.

  • pdfimages (do XPDF/Poppler suite): Uma ferramenta gratuita, de código aberto, de linha de comando disponível no Linux e outras plataformas. O pdfimages extrai todas as imagens de um PDF no seu formato e resolução nativa, incluindo suporte para JPEG, JPEG2000 e outros formatos. É amplamente recomendado para usuários que buscam um processo de extração de alta fidelidade sem custo.

  • Ferramentas online (por exemplo, PDF24 Tools, PDFCandy, pdfforge): Esses serviços permitem que você carregue um PDF e baixe as imagens extraídas, mantendo a resolução original. Eles são convenientes para tarefas rápidas e não exigem instalação, mas podem levantar preocupações de privacidade para documentos sensíveis.

Tabela Resumo

Software/Ferramenta Plataforma Mantém a Resolução Original Notas
Adobe Acrobat Pro Windows/Mac Sim Pago, profissional, muito confiável
pdfimages (Poppler) Linux/Windows Sim Gratuito, de código aberto, utilidade de linha de comando
PDF24 Tools, PDFCandy Web-based Sim Gratuito, fácil de usar, considerações de privacidade

Ponto Chave:
Sempre use ferramentas que extraiam (não renderizem ou capturam tela) as imagens. Tanto o Adobe Acrobat Pro quanto o pdfimages são padrões da indústria para esse propósito, garantindo que as imagens sejam salvas exatamente como existem no PDF, sem qualquer perda de resolução.

Opções de linha de comando do pdfutils

Ao executar pdfimages /help ele imprimirá algo como:

$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : primeira página para converter
  -l <int>       : última página para converter
  -png           : mude o formato de saída padrão para PNG
  -tiff          : mude o formato de saída padrão para TIFF
  -j             : escreva imagens JPEG como arquivos JPEG
  -jp2           : escreva imagens JPEG2000 como arquivos JP2
  -jbig2         : escreva imagens JBIG2 como arquivos JBIG2
  -ccitt         : escreva imagens CCITT como arquivos CCITT
  -all           : equivalente a -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : imprima a lista de imagens em vez de salvar
  -opw <string>  : senha do proprietário (para arquivos criptografados)
  -upw <string>  : senha do usuário (para arquivos criptografados)
  -p             : inclua números de página nos nomes dos arquivos de saída
  -q             : não imprima nenhuma mensagem ou erro
  -v             : imprima informações de direitos autorais e versão
  -h             : imprima informações de uso
  -help          : imprima informações de uso
  --help         : imprima informações de uso
  -?             : imprima informações de uso