Assinatura de documentos PDF em lote via Bash

Na dica de hoje trago uma solução de caráter prático para quem está no trabalho remoto. Em meu emprego tenho que assinar um certo volume de documentos com alguma regularidade, por pura burocracia. Felizmente, posso fazê-lo de forma eletrônica e (muito felizmente) posso fazê-lo sem utilizar o aplicativo da Adobe. O objetivo da dica de hoje é criar um script que assina documentos automaticamente e ainda faz algumas firulas utilizando ferramentas simples como Bash e Inkscape.

[ Hits: 4.861 ]

Por: Bruno Rafael Santos em 30/12/2022 | Blog: https://cutt.ly/4H7vrPh


Script Final



Código:

#!/bin/bash
# source files
SOURCE="$HOME/bin/assinatura_automatica";

# collect current date, command expansion for date
data=$(LC_TIME=pt_BR.utf8 date "+%A, %d de %B de %Y (%T)");

# add date into signature file, svg files are in fact xml
sed "s/DATE/$data/" 
"${SOURCE}/source assinatura.svg" 
> "${SOURCE}/assinatura s.svg";

sed "s/DEPT/${1}/" 
"${SOURCE}/assinatura s.svg" 
> "${SOURCE}/assinatura.svg";

# create pdf signature file, using imagemagick library
convert -density 300 
-transparent white 
"${SOURCE}/assinatura.svg" 
"${SOURCE}/assinatura.pdf";

# move the input forward
shift;

# add signature into file, pdftk library
for file in "${@}"; do
    pdftk "${file}" stamp "${SOURCE}/assinatura.pdf" output "${file%pdf}assn.pdf";
done;

exit 0;

O script final é um pouco mais complicado pois coloquei os templates em um diretório separado na minha home de modo que eu possa utilizar o script de qualquer lugar em meu sistema.

A utilização final é:

assinar departamento *.pdf

Isso deve assinar todos os PDFs do diretório em um golpe só.

Página anterior    

Páginas do artigo
   1. Introdução e Setup
   2. Produto
   3. Script Final
Outros artigos deste autor

getopts: criando scripts Bash com parâmetros e argumentos personalizáveis

GNU Parallel: criando atividades em paralelo com shell script

Tutorial GIMP: Preparando mapas para artigos científicos

Devo atender? Um ótimo aplicativo para bloquear Telemarketing

Defesa pessoal com o GPG, Nautilus Scripts, partições encriptadas e leves doses de paranoia

Leitura recomendada

Alta disponibilidade de links

Processamento Paralelo em Shell Script - Conversão de Arquivos WAV para MP3

Shell script com PHP

Como programar backup com rsync e cron de maneira rápida e simples

Entendendo, criando e editando pacotes Debian (.deb)

  
Comentários
[1] Comentário enviado por fabio em 30/12/2022 - 21:19h

Muito bom! Bash é vida rsrs

[2] Comentário enviado por maurixnovatrento em 01/01/2023 - 18:23h


Isso aí é bom demais. Ótimo artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[3] Comentário enviado por adrianoh2 em 04/01/2023 - 09:54h

Excelente solução. Realmente prático! - Vou adaptar para meu uso!
Acredito que exista uma função "estilo ALPHA" para o background do Imagetrick, que pode facilitar problemas com cortes em partes semi-preenchidas da assinatura.
No geral, ele apaga tudo que é branco, e as vezes, nem sempre fica 100%.
Aqui uma solução que pode retirar "aos poucos" o fundo branco, para problemas com assinaturas muito finas, com muitos detalhes, ou que foram erroneamentes cortadas.
Da forma abaixo, você pode ir proporcionalmente.
https://stackoverflow.com/questions/9155377/set-transparent-background-using-imagemagick-and-command...

Valeu, excelente material!



Entrega o teu caminho ao Senhor; confia nele, e ele o fará. - Salmos 37:5
Tava bão, ocê veio, fico mió!

[4] Comentário enviado por santosbrc em 05/01/2023 - 21:53h


[3] Comentário enviado por adrianoh2 em 04/01/2023 - 09:54h

Excelente solução. Realmente prático! - Vou adaptar para meu uso!
Acredito que exista uma função "estilo ALPHA" para o background do Imagetrick, que pode facilitar problemas com cortes em partes semi-preenchidas da assinatura.
No geral, ele apaga tudo que é branco, e as vezes, nem sempre fica 100%.
Aqui uma solução que pode retirar "aos poucos" o fundo branco, para problemas com assinaturas muito finas, com muitos detalhes, ou que foram erroneamentes cortadas.
Da forma abaixo, você pode ir proporcionalmente.
https://stackoverflow.com/questions/9155377/set-transparent-background-using-imagemagick-and-command....

Valeu, excelente material!



Entrega o teu caminho ao Senhor; confia nele, e ele o fará. - Salmos 37:5
Tava bão, ocê veio, fico mió!



Eu sofri bastante para achar esse comando. Deve ter sim uma solução melhor no ImageMagick. Coloquei a assinatura em um fundo diferente para evitar este tipo de problema, isso evita que o ImageMagick peque tudo de forma indiscriminada.

[5] Comentário enviado por CerberusBH em 13/01/2023 - 09:16h

Excelente! Meus parabéns!
Salvei nos meus favoritos!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts