Salve amigos, espero que tenham tido um bom carnaval.
Nesta quarta feira de cinzas trago um pequeno mas útil tutorial para converter imagens em arquivos PDF (Portable Document Format), e posteriormente unir estas imagens em único arquivo PDF.
Meu objetivo era criar um pequeno portfólio de sites produzidos para mostrar em um local onde não tem internet. O resultado final ficou muito legal, então resolvi compartilhar com todos.
Preparar este quitute é muito simples. É necessário contudo que você os seguintes ingredientes da mistura:
A extensão do Firefox Screengrab! permite a capturar um site por inteiro, independente do comprimento da página, e salvar em um arquivo PNG (Portable Network Graphic). Na verdade ela só foi necessária na solução do meu problema específico, mas caso queira unir imagens de outras fontes, a extensão é totalmente desnecessária.
As aplicações sam2p e pdftk permitem respectivamente converter imagens em arquivos PDF e unir vários arquivos PDF em um só. Eles estão disponíveis através do comando de terminal sudo apt-get install pdftk sam2p (no caso da distro Debian e derivados) ou no Synaptics mais perto de você.
Agora vamos por a mão na massa. Depois de obter as imagens a partir de qualquer fonte (no meu caso usei o Screengrab! para coletar screens de sites que eu desenvolvi), você deve convertê-las em PDF usando o programa sam2p. Sua sintaxe é simples: sam2p arquivo.png arquivo.pdf. As seguintes mensagens serão impressas no terminal:
sam2p ProteusNet.png ProteusNet.png.pdf
This is sam2p v0.45-3.
Available Loaders: PS PDF JAI PNG JPEG TIFF PNM BMP GIF LBM XPM PCX TGA.
Available Appliers: XWD Meta Empty BMP PNG TIFF6 TIFF6-JAI JPEG-JAI JPEG PNM GIF89a+LZW XPM PSL1C PSL23+PDF PSL2+PDF-JAI P-TrOpBb.
sam2p: Notice: PNM: loaded alpha, but no transparent pixels
sam2p: Notice: job: read InputFile: ProteusNet.png
sam2p: Notice: writeTTT: using template: p02bb
sam2p: Notice: applyProfile: applied OutputRule #28
sam2p: Notice: job: written OutputFile: ProteusNet.png.pdf
Success.
Você terá que fazer isso para cada imagem que deseje converter em PDF. Infelizmente o sam2p não suporta wildcards. Uma pessoa mais elegante que eu faria um script bash e resolveria o problema, mas isso eu deixo para algum especialista que deseje complementar o artigo.
Agora basta utilizar o programa pdftk para unir os aquivos convertidos em um único grande arquivo PDF. Uma dica: Não use acentos nos nomes dos arquivos, ou terá problemas. Acesse a pasta onde está os arquivos e digite o seguinte comando: pdftk *.pdf cat output arquivo.pdf. Se você não tiver nenhum arquivo com acentos, o programa irá trabalhar sem dar nenhum pio, e no final você terá seu arquivo PDF, onde cada imagem é uma página a parte.
Outra dica: Se você deseja que as imagens possuam alguma ordenação, renomeie os arquivos, colocando uma numeração no início do nome do arquivo. Por exemplo, XYZ.pdf, abc.pdf e 23s.pdf viram respectivamente 01 XYZ.pdf, 02 abc.pdf e 03 23s.pdf.
É isso. Espero que tenham gostado deste simples porém útil tutorial.
Pessoal, o Augusto Campos, que também mantém o Br-Linux, entrou em contato comigo por email e me informou uma forma super simples de fazer o que eu descrevi acima. Basta utilizar o comando convert na pasta onde estão as imagens desejadas. Simplesmente faça:
convert *.jpg arquivo.pdf
Confesso que eu já sabia disso, pois pesquisei bastante na net para chegar no procedimento acima, e eventualmente encontrei o comando convert. Só que quando testei aqui, o PDF gerado era inválido, e não era lido pelo Evince, que exibia uma mensagem de erro. Caso contrário teria colocado evidentemente a forma mais prática.
Isso me deixou bem confuso, pois assim que recebi o email do Augusto, fiz um teste, mixando imagens JPG, GIF e PNG em um único PDF (usei convert *.jpg *.gif *.png output.pdf) e desta vez funcionou certinho. Testei imagens com acentos, espaços e | no nome do arquivo, mas não tive problemas desta vez. A única coisa que não testei foi utilizar imagens realmente grandes, pois alguns dos screenshots dos sites tinham mais de 15000 pixels de altura.
Mas enfim, a dica foi ótima afinal. Quem quiser baixar o arquivo que utilizei de teste (imagens GIF, JPG e PNG), basta clicar aqui.
copyright © Marcus VBP, Todos os direitos reservados
Permitida a cópia desde que citado a fonte. [Política de Privacidade]
Powered by Drupal CMS.
1. Convertendo várias imagens em PDF e depois unindo-as em um *
2. Rodrigo Dutra*
Ótima dica!!!
3. Fernando*
Muito interessante mesmo, valeu pela dica!
4. gaijin*
para criar todos os arquivos pdf em linux use este comando como base:
for i in *.pnm; do sam2p "$i" "$i.pdf"; done
ele vai fazer um loop em todos os arquivos no caso com extenção .pnm e converte-los para o mesmo nome com extenção .pdf
Enviar novo comentário