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
#