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.
Parte 3: Script Final
Código:
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ó.
#!/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ó.