010s02 pdftk – SCRIPT per inserire il numero di ogni singola pagina in documento in formato PDF
13 Ottobre, 2022 (19:55) | Linux, pdftk | By: sargonsei
#!/bin/bash
# 010s02 pdftk – SCRIPT per inserire il numero di ogni singola pagina in documento in formato PDF.
# Questo script inserisce in ogni singola pagina di un documento
# in formato PDF il numero di pagina corrispondente.
# Per funzionare, occorre installare i pacchetti pdftk ed enscript.
# sudo apt install pdftk
# sudo apt install enscript
#
# Per avviarlo, metterlo nella cartella in cui si trova il documento PDF da processare ed impartire il comando
# ./< nomeQuestoScript > < nomeDocPDFINIZIALE >
PDFINIZIALE=${1} # Acquisizione nome del documento da processare
PDFFINALE=NUMERATO-$PDFINIZIALE # Determina nome del documento numerato
PAG=`pdftk $PDFINIZIALE dump_data | grep NumberOfPages | cut -f 2 -d ' '` # Determina il numero di pagine del documento da numerare
pdftk $PDFINIZIALE cat $PAG output numerare.pdf # Crea il documento numerare.pdf contenente la pagina PAG del documento $PDFINIZIALE
# fold -w 100 -s <<<"$PAG" | enscript --margins=37:18:15:760 -j -B -f Times-Italic12 -p- | ps2pdf - | pdftk - background numerare.pdf output $PDFFINALE
echo "$PAG" | enscript -B -f Times-Italic12 -p- | ps2pdf - | pdftk numerare.pdf stamp - output $PDFFINALE # Inserisce il Numero di pagina.
let PAG=PAG-1 # Sottrae 1 alla variabile PAG
until [ $PAG -lt 1 ]; do # Se la variabile PAG è diversa da 1 esegue l'istruzione successiva, se PAG=1 salta all'istruzione done.
pdftk $PDFINIZIALE cat $PAG output numerare.pdf # Crea il documento numerare.pdf contenente la pagina PAG del documento $PDFINIZIALE
# fold -w 100 -s <<<"$PAG" | enscript --margins=17:18:15:760 -j -B -f Times-Italic12 -p- | ps2pdf - | pdftk - background numerare.pdf output numerata.pdf
echo "$PAG" | enscript -B -f Times-Italic12 -p- | ps2pdf - | pdftk numerare.pdf stamp - output numerata.pdf # Inserisce il Numero di pagina
pdftk A=numerata.pdf B=$PDFFINALE cat A B output temporaneo.pdf # Antepone l'ultima pagina numerata al documento $PDFFINALE nel documento temporaneo.pdf
mv temporaneo.pdf $PDFFINALE # Il documento temporaneo.pdf diventa il documento finale
echo Si comunica che la pagina $PAG è stata inserita in testa al documento $PDFFINALE
let PAG=PAG-1 # Sottrae 1 al contenuto della variabile PAG
done # Se la variabile PAG vale 1, prosegue da qui in avanti.
rm numerare.pdf # Cancella il documento PDF numerare.pdf
FILE=numerata.pdf
if test -f "$FILE"; then # Controlla se il documento numerata.pdf esiste
rm numerata.pdf # Cancella il documento PDF numerata.pdf
fi
exit # Fine dello script
#