A resposta atualmente aceita faz o trabalho, mas resulta em uma saída que é maior em tamanho e sofre com perda de qualidade.
Não está claro o que você quer dizer com "perda de qualidade". Isso pode significar muitas coisas diferentes. Você poderia postar algumas amostras para ilustrar? Talvez corte a mesma seção das versões de baixa qualidade e de boa qualidade (como um PNG para evitar mais perdas de qualidade).
Talvez você precise usar -density
para fazer a conversão em um dpi mais alto:
convert -density 300 file.pdf page_%04d.jpg
(Você pode anexar -units PixelsPerInch
ou, -units
PixelsPerCentimeter
se necessário. Minha cópia é padronizada como ppi.)
Atualização: como você apontou, gscan2pdf
(do jeito que você está usando) é apenas um invólucro para pdfimages
(do poppler ). pdfimages
não faz o mesmo que convert
quando recebe um PDF como entrada.
convert
pega o PDF, renderiza-o com alguma resolução e usa o bitmap resultante como imagem de origem.
pdfimages
procura no PDF por imagens de bitmap incorporadas e exporta cada uma delas para um arquivo. Ele simplesmente ignora qualquer comando de desenho de texto ou vetor no PDF.
Como resultado, se o que você tem é um PDF que é apenas um invólucro em torno de uma série de bitmaps, pdfimages
fará um trabalho muito melhor de extraí-los, porque fornece os dados brutos no tamanho original. Você provavelmente também deseja usar a -j
opção pdfimages
, porque um PDF pode conter dados JPEG brutos. Por padrão, pdfimages
converte tudo para o formato PNM, e converter JPEG> PPM> JPEG é um processo com perdas.
Então tente
pdfimages -j file.pdf page
Você pode ou não precisa seguir isso com um convert
a .jpg
passo (dependendo do que formato bitmap do PDF estava usando).
Eu tentei esse comando em um PDF que eu havia criado a partir de uma sequência de imagens JPEG. Os JPEGs extraídos eram byte por byte idênticos às imagens de origem. Você não pode obter qualidade superior a isso.