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: 10.054 ]

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

Shell Script para Guia Foca Linux

Reinicia trabalhos CUPS

LIXEIRA COMPLETA_II

InstallTXZ - converte e instala pacotes do Slackware no Debian

Controle de usuários - Samba


  

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