Nós, do mundo
GNU/Linux, pegamos muitas informações pela Internet e em vários formatos de arquivo. Um dos formatos mais comuns é o PDF, da Adobe.
Só que, às vezes, queremos só três páginas de um arquivo com trezentas páginas, ou não achamos cômodo ter quatrocentos arquivos de uma página cada, sobre o mesmo assunto. E por vezes, você vê uma imagem em um arquivo PDF e quer extraí-la para usar na sua área de trabalho...
Mas não se aflijam, amigos! Para isso existe o terminal!
Obs.: Para fazer uso dos comandos presentes nesta dica, deve-se ter instalado o pacote
poppler-utils. Este pacote disponibiliza os utilitários que serão utilizados, e já vem instalado por padrão no
Ubuntu e
Slackware.
Extraindo páginas de um arquivo PDF
Se você precisa extrair páginas de um arquivo PDF, o comando que você precisa é o
pdfseparate. Ele lê o arquivo PDF e cria um arquivo por página extraída desta forma, sem alterar o arquivo original.
A invocação dele, deve ser feita assim:
pdfseparate [opções] arquivooriginal.pdf [padraoarquivodestino.pdf]
Em 'opções', você precisa informar os parâmetros
-f [nn] e
-l [mm], onde
nn é a primeira página a ser extraída, e
mm é a última.
Em algum lugar do "padraoarquivodestino.pdf", precisa haver um "%d", indicando onde o número da página extraída deve ser inserida no nome dos arquivos.
Por exemplo, se eu fizer:
pdfseparate -f 2 -l 4 liber_al_legis.pdf liber%d.pdf
O comando vai criar os arquivos "liber2.pdf", "liber3.pdf" e "liber4.pdf", sem alterar o arquivo
liber_al_legis original.
Para extrair páginas salteadas, você precisará criar um laço
for para a tarefa. Vamos supor, que o arquivo "moonchild.pdf" tenha 50 páginas, mas só quero as páginas 3, 7, 11 e 33.
Eu faria:
for i in 3 7 11 33; do pdfseparate -f $i -l $i moonchild.pdf pagina%d.pdf; done
Para juntar estas páginas em um único arquivo, verifique o próximo subtítulo.
Concatenando arquivos .pdf
Se você quiser concatenar (isto é, reunir) arquivos PDF em um único, use o comando
pdfunite.
Ele lê uma série de arquivos PDF listados na invocação do comando, e cria um arquivo nomeado na invocação do comando, sem alterar nenhum dos arquivos fontes. A invocação dele deve ser feita assim:
pdfunite arquivofonte1.pdf arquivofonte2.pdf ... arquivofonten.pdf arquivodestino.pdf
Por exemplo, se eu quisesse reunir em um único arquivo aquelas páginas do arquivo "moonchild.pdf" que eu extraí no exemplo anterior, eu faria:
pdfunite pagina3.pdf pagina7.pdf pagina11.pdf pagina33.pdf excerto.pdf
O arquivo "excerto.pdf" será criado com as páginas 3, 7, 11 e 33, que eu separei anteriormente.
Extraindo imagens de um arquivo PDF
Vamos supor que, por alguma razão, você tem um arquivo PDF chamado "LotR:fellowship.pdf", cujo conteúdo deve ser bem óbvio para os senhores, e vamos supor que você gostou tanto da imagem do Portão de Moria, que quer extraí-la e colocar na sua área de trabalho.
Simples: use o
pdfimages!
pdfimages -f [nn] -l [mm] -j arquivofonte.pdf nomebase
Os parâmetros
f e
l funcionam do mesmo modo que funcionam para o comando
pdfseparate. A opção
-j diz que as imagens devem ser extraídas no formato ".jpg" (o padrão do comando é o ".ppm").
O parâmetro "nomebase", indica qual é o prefixo de nome para os arquivos contendo as imagens encontradas. Cada imagem vai parar no arquivo "nomebase-nnn.xxx", onde
nnn é o número sequencial da imagem, e
xxx é a extensão (no nosso caso: .jpg).
Convertendo arquivos PDF em imagens
Não me basta extrair uma imagem de um arquivo PDF, agora interessa-me converter cada página do arquivo para um arquivo de imagem. Como fazer?
Com o
pdftoppm! O comando fica assim:
pdftoppm -f [nn] -l [mm] -r [rr] arquivofonte.pdf nomebase
As opções
-f e
-l são nossas velhas conhecidas. A opção
-r diz que cada imagem deve ter sua resolução alterada para: rr DPI.
O parâmetro "nomebase" é o prefixo do nome dos arquivos gerados, um por página do PDF original. Cada arquivo de imagem vai ter como nome "nomebase-nnnn.ppm", onde "nnnn", é o número sequencial da página.
Este comando gera imagens em ".ppm". Para gerar imagens em ".jpg" ou ".png", passe as opções
-jpg, ou
-png para o comando.
Convertendo arquivos PDF para HTML
Mais uma fascinante demonstração do potencial do terminal.
O comando para isso é (surpreendentemente ;-)
pdftohtml.
Este comando tem tantas opções interessantes (ao contrário dos demais), que eu realmente recomendo a leitura da
manpage dele, que é muito bem escrita.
E é isso, pessoal.
O subgênio aqui, vai se despedindo com saudações dobbsianas para todos vocês!