Converter um arquivo PDF em uma imagem pode ser feito facilmente na linha de comando do Linux usando um único comando. Descubra como instalar o utilitário, como usá-lo e como automatizar sua configuração.
O que é poppler-utils ?
Conforme mencionado na introdução desta postagem, precisamos instalar um pequeno conjunto de utilitários chamados poppler-utils para nos ajudar a converter arquivos PDF em imagens.
O conjunto de utilitários poppler-utils nos permite converter imagens em PDF e PDF em imagens.
Instalando poppler-utils
Instalar poppler-utils em sua distribuição Linux baseada em Debian / Apt (como Ubuntu e Mint), faço:
sudo apt install poppler-utils
Instalar poppler-utils em sua distribuição Linux baseada em RedHat / Yum (como RedHat e Fedora), faça o seguinte:
sudo yum install poppler-utils
Conversão de PDF em imagens
O comando necessário é simples e simples:
pdftoppm -png teste.pdf teste
Com ele pdftoppm
comando podemos converter PDF em imagens. Nós especificamos que queremos um arquivo PNG para o formato de saída (usando -png
) e que nosso arquivo de entrada é test.pdf
.
O arquivo de saída que especificamos como test
. pdftoppm
adicionará automaticamente um sufixo número de página (O que -1) e uma extensão (com base no anterior -png
opção aprovada).
Por tanto, o nome do arquivo de saída será test-1.png
, como podemos verificar abaixo:
ls test-1.png
eog test-1.png
Qualquer página subsequente seria test-2.png etc. o eog
comando (e eog está instalado) irá abrir o arquivo para que você possa revisar o resultado, mesmo que você possa usar qualquer outro programa de gerenciamento de imagens que desejar.
Processamento em lote de arquivos PDF para imagens
Podemos criar um comando de linha única para processar em lote todos os arquivos PDF com um determinado nome para as imagens. Então, podemos apenas adicionar esta linha a um pequeno script .sh e automatizar ainda mais, ou podemos apenas usá-lo na linha de comando sempre que precisarmos converter um grande número de arquivos PDF em imagens.
ls --color = nunca testa * .pdf | mas é|.pdf||' | xargs -I{} pdftoppm {}.pdf -png {}
Neste comando, primeiro obtemos uma lista de diretórios para todos os arquivos PDF que têm um nome que começa com prova e termina com .pdf, usando o ls --color=never test*.pdf
.
a --color=never
é essencial, uma vez que os símbolos de codificação de cores na caixa (se eles são ativos, já que eles são por padrão) às vezes eles podem confundir xargs.
Em seguida, usamos um simples sed
substitui o comando para substituir um ponto literal seguido de pdf por nada. Em outras palavras, nós eliminamos o .pdf extensão de arquivo.
Isso nos dá a vantagem de adicioná-lo novamente mais tarde apenas quando necessário, Em outras palavras, ao especificar o arquivo de entrada para pdftoppm
, mas não ao especificar o arquivo de saída para o mesmo pdftoppm
comando, muito parecido com nosso exemplo anterior acima.
Para terminar, nós usamos xargs
para enviar cada nome de arquivo pdf (menos o .pdf) para pdftoppm
um a um. Nós usamos o -I
opção a xargs
o que nos permite especificar qualquer entrada recebida (Em outras palavras, nomes abreviados de arquivos PDF) simplesmente usando {}
no comando que segue.
Como você pode ver, nosso pdftoppm
O comando agora se parece muito com o primeiro exemplo, com cada nome de arquivo PDF individual como entrada (com o novo sufixo .pdf), e como saída o nome do arquivo pdf sem .pdf.
Vamos correr:
Isso funcionou bem: os três arquivos PDF, todos com uma página cada, eles se tornaram três .png registros (uma imagem por página e, neste caso, por PDF, já que cada PDF tinha apenas uma página), todos com o nome e sufixo corretos.
Como uma alternativa para -png
opção, também pode ser usado -jpeg
para gerar arquivos JPEG em vez. Usar pdftoppm --help
o man pdftoppm
para ver uma lista completa de alternativas.
Final
Neste post vimos como pode ser fácil e simples converter arquivos PDF em arquivos de imagem, E isso diretamente da linha de comando do Linux!! Também estamos procurando uma maneira simples de automatizar este procedimento. Desfrutar!