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.081 ]
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
#!/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!
Instalar e remover o Microsoft Visual Studio Code
Instalar NetBox (container) em CentOS 7
Instalador automático nVIDIA para Debian
Backup de algumas databases, Remotamente.
Descubra o event correspondente ao seu dispositivo
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Função que recebe 20 números inteiros e retorna o 6° maior elemento do... (5)
Quero saber sobre os melhores aplicativos de office para usar em 2024 ... (6)
Toda vez que tento atualizar o clamav me deparo com erros ao atualizar... (3)