Converte cada imagem (JPG, JPEG, PNG) em PDFs com o tamanho de papel definido (A4...)

Publicado por Rodrigo Albuquerque Serafim (última atualização em 23/08/2017)

[ Hits: 9.845 ]

Homepage: https://www.vivaolinux.com.br/~raserafim

Download 6689.script-image2pdf.sh




Converte cada imagem (JPG, JPEG, PNG) de um diretório em PDFs com o tamanho de papel definido (A4...).

Ou seja, o script gera um arquivo PDF para cada arquivo de imagem nos formatos JPG, JPEG, PNG que estejam contidos no diretório em que o script está sendo executado (mantendo intacto o arquivo original). Todos os arquivos PDFs gerados possuem o mesmo tamanho de papel definido (por padrão, o tamanho A4).

Características de operação:

- converte (em lote) os arquivos de imagem (JPG, JPEG, PNG) do diretório local, cada imagem num PDF;
- mantém o tamanho original da imagem (até o limite do tamanho de papel definido);
- não rotaciona a imagem;
- alinha a imagem no Centro a partir do Topo;
- todos os PDFs gerados ficam com o mesmo tamanho de papel (A4, ou A5 ou Letter ...);
- preserva o arquivo original;

Particularmente, o utilizo para converter certificados acadêmicos que recebo em formato de imagem, ou que escaneei neste formato, para depois organizá-los em diretórios de acordo com a estrutura utilizada pelo CNPQ no Currículo Lattes.

Em conjunto com este script utilizo um outro: script-pdfallunite.sh ( https://www.vivaolinux.com.br/~raserafim/scripts/ ).

Este outro Script varre PDF's em diretórios e sub-diretórios (que organizei de acordo com a estrutura do Currículo Lattes), portanto recursivamente, de maneira ordenada para gerar um único PDF com todos os certificados acadêmicos.

Publico o presente Script na expectativa de que contribua de alguma maneira para aqueles que, porventura, tenham a mesma necessidade que eu; ou, então, para aqueles que o Script tenha serventia, com algumas adaptações ou como material que contém alguma ideia útil para outros Scripts.

Como Executar:
- baixar o arquivo do Script; OU copiar o texto do Script diretamente da WEB para um arquivo texto criado no computador;
- dar permissão de execução para o arquivo com o Script:
    - por exemplo: # chmod +x script-image2pdf.sh;
- copiá-lo (ou movê-lo) para o diretório local que contém os arquivos a serem convertidos;
- executar o Script com o comando: $ ./script-image2pdf.sh
    - obs: o prefixo "./" (ponto-barra) deve vir antes do nome do arquivo para especificar que o arquivo a ser executado está no diretório local (corrente), e não em um dos caminhos do "PATH".

Para dar permissão de alteração do conteúdo do Script, utilizar o comando, por exemplo: # chmod a+w script-image2pdf.sh

Obs: o Script requer o pacote: ImageMagick

  



Esconder código-fonte

#!/bin/sh

# script-image2pdf.sh - Converte cada imagem (JPG, JPEG, PNG) de um diretório
# em PDF's com o tamanho de papel definido (A4...).


# Copyright 2016, 2017 Rodrigo Albuquerque Serafim.

# Autor: Rodrigo Albuquerque Serafim (raserafim)
# Contato: https://www.vivaolinux.com.br/~raserafim
# Versão: 1.0
# Data: 01-08-2017 
# Dependências: ImageMagick
# Licença: GPL v3 <https://www.gnu.org/licenses/gpl-3.0.html>

#   Este programa é um software livre; você pode redistribuí-lo e/ou 
#   modificá-lo sob os termos da Licença Pública Geral GNU como publicada
#   pela Fundação do Software Livre (FSF); na versão 3 da Licença,
#   ou (a seu critério) qualquer versão posterior.

#   Este programa é distribuído na esperança de que possa ser útil, 
#   mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO
#   a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
#   Licença Pública Geral GNU para mais detalhes.

#   Você deve ter recebido uma cópia da Licença Pública Geral GNU junto
#   com este programa. Se não, veja <http://www.gnu.org/licenses/>.

#   Esta é uma tradução não oficial da GNU General Public License em Português.

######################################################################

# Características de Operação:
# - converte (em lote) os arquivos de imagem (JPG, JPEG, PNG) do diretório local;
# - mantém o tamanho original da imagem (até o limite do tamanho de papel definido);
# - não rotaciona a imagem;
# - alinha a imagem no Centro a partir do Topo;
# - todos os PDF's gerados ficam com o mesmo tamanho de papel (A4 ou A5 ou Letter ...);
# - preserva o arquivo original;

# A4 = 1654 pixels x 2339 pixels      (-extent 1654x2339)
# A5 = 1165 pixels x 1654 pixels      (-extent 1165x1654)
# Letter = 1700 pixels x 2200 pixels      (-extent 1700x2200)

# Por padrão o Script gera PDF's no tamanho A4. 
# Para outros tamanhos, basta alterar os valores do parâmetro "-extent" no código abaixo.

######################################################################

qtdf=$(ls *.jpg *.jpeg *.png 2> /dev/null | wc -l)

if [ $qtdf == 0 ]
then
  echo Não há arquivos JPG, JPEG ou PNG a serem convertidos neste diretório.
  exit
fi

echo "Iniciando o processo de conversão de" $qtdf "arquivo(s)..."

for f in *.jpg *.jpeg *.png
do
  echo " "
  echo Convertendo $f ...
  convert -compress jpeg -quality 100 ./"$f" -background white -compose Copy -gravity north -extent 1654x2339 ./"${f%.*}.pdf"
  echo Convertido!
done

echo " "
echo Processo de conversão concluído!

Scripts recomendados

Script para comparar CD's

Automatizando autenticação do Speedy Business

Filtro para importação de extrato do Banco do Brasil para Kmymoney

Script em Dialog pesquisa nome do banco no mysql

Abrir e redirecionar portas TCP em firewall iptables


  

Comentários
[1] Comentário enviado por albfneto em 31/08/2017 - 17:09h

bom isso! eu favoritei. Vou usar seu script.

vai ser ótimo para eu refazer o meu álbum de coleções....
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[2] Comentário enviado por Buckminster em 31/08/2017 - 21:08h

Favoritado também.

[3] Comentário enviado por slackjeff em 31/08/2017 - 21:10h

Gostei do script e ainda mais do cabeçalho do mesmo, Bem documentado!
favoritado!

[code]
[b]GPG KeyId: <0xD9EC33CD>[/b]

[b]Meu Site:[/b]
[b]http://slackjeff.emmilinux.com.br/[/b]

[/code]




[4] Comentário enviado por raserafim em 14/09/2017 - 10:48h

agradeço os comentários dos colegas "albfneto", "Buckminster" e "slackjeff"!

obrigado!

[5] Comentário enviado por YpiOkA em 08/05/2019 - 08:47h

Bom dia!

Seu script foi ótimo, mas preciso converter em formato paisagem e tamanho A3... procurei na net e não achei nada que trate da variavel "-gravity" ...
Pode me dar uma força?

Abraços.

[6] Comentário enviado por thomasmappbe em 16/07/2019 - 23:26h

Obrigado, este é um artigo útil, eu também posso compartilhar pessoas de jpg para png conversor de: https://jpg4png.com/pt/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts