#!/bin/bash
# 011s01 pdftk - SCRIPT in grado di distinguere se la pagina è orizzontale o verticale, e commentarla di conseguenza.
# Per avviare questo script, 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=FILIGRANATO-$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 commentare.pdf # Crea il documento commentare.pdf contenente la pagina PAG del documento $PDFINIZIALE
ROTAZIONE=`pdftk commentare.pdf dump_data | grep PageMediaRotation | cut -f 2 -d ' '`
FORMATO=`pdftk commentare.pdf dump_data | grep PageMediaDimensions`
LARGH=`pdftk commentare.pdf dump_data | grep PageMediaDimensions | cut -f 2 -d ' ' | cut -f 1 -d '.'` # preleva il secondo campo preceduto da uno spazio fino a un punto
ALTEZZA=`pdftk commentare.pdf dump_data | grep PageMediaDimensions | cut -f 3 -d ' ' | cut -f 1 -d '.'` # preleva il terzo campo preceduto da uno spazio fino a un punto
# Landscape+90= -r --
# Landscape+270= -r --
# Portrait+0= -r ++
# Portrait+180= -r ++
# Portrait+90= +r +-
# Portrait+270= +r +-
# Landscape+0= +r -+
# Landscape+180= +r -+
#
if (("$LARGH" <= "$ALTEZZA")); then # Verifica se la larghezza è minore o uguale all'altezza.
FOGLIO="Il foglio del documento e' in formato Portrait (verticale)"
FO=+1
else
FOGLIO="Il foglio del documento e' in formato Landscape (orizzontale)"
FO=-1
fi
TESTO="Ignoto"
if (("$ROTAZIONE" == "270")); then # Verifica se la rotazione del testo è 90 gradi in senso antiorario.
TESTO="Il testo del documento e' ruotato di 90 gradi in senso antiorario"
TE=-1
elif (("$ROTAZIONE" == "180")); then # Verifica se il testo è capovolto.
TESTO="Il testo del documento e' capovolto"
TE=1
elif (("$ROTAZIONE" == "90")); then # Verifica se la rotazione del testo è 90 gradi in senso orario.
TESTO="Il testo del documento e' ruotato di 90 gradi in senso orario"
TE=-1
elif (("$ROTAZIONE" == "0")); then # Verifica se il testo è dritto.
TESTO="Il testo del documento e' dritto"
TE=1
fi
echo Numero pagina: $PAG Orientamento testo: $TESTO Rotazione: $ROTAZIONE
echo Orientamento Foglio: $FOGLIO Formato: $FORMATO
if (("$FO" == "$TE")); then # Verifica orientamento foglio e testo.
pdftk commentare.pdf background FiligranaVERT.pdf output $PDFFINALE # Inserire filigrana VERTICALE
mv $PDFFINALE commentare.pdf # Il documento $PDFFINALE diventa il documento commentare.pdf
echo -e '@color{0 0 1} @font{Courier-Bold12}Commento per fogli VERTICALI,\n@color{0 1 0} @font{Times-Italic12}quando sono visualizzati VERTICALI + quando sono visualizzati VERTICALI + quando sono visualizzati VERTICALI' | enscript --margins=18:18:790:15 -B -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output $PDFFINALE # Inserire due righe di commento, nella parte BASSA di un documento VERTICALE, usando colori e font diversi.
else
pdftk commentare.pdf background FiligranaORIZ.pdf output $PDFFINALE # Inserire filigrana ORIZZONTALE
mv $PDFFINALE commentare.pdf # Il documento $PDFFINALE diventa il documento commentare.pdf
echo -e '@color{0 0 1} @font{Courier-Bold12}Commento per fogli ORIZZONTALI,\n@color{0 1 0} @font{Times-Italic12}quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI' | enscript --margins=540:18:15:18 -Br -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output $PDFFINALE # Inserire due righe di commento, nella parte BASSA di un documento ORIZZONTALE, usando colori e font diversi.
fi
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 commentare.pdf # Crea il documento commentare.pdf contenente la pagina PAG del documento $PDFINIZIALE
#
#
ROTAZIONE=`pdftk commentare.pdf dump_data | grep PageMediaRotation | cut -f 2 -d ' '`
FORMATO=`pdftk commentare.pdf dump_data | grep PageMediaDimensions`
LARGH=`pdftk commentare.pdf dump_data | grep PageMediaDimensions | cut -f 2 -d ' ' | cut -f 1 -d '.'` # preleva il secondo campo preceduto da uno spazio fino a un punto
ALTEZZA=`pdftk commentare.pdf dump_data | grep PageMediaDimensions | cut -f 3 -d ' ' | cut -f 1 -d '.'` # preleva il terzo campo preceduto da uno spazio fino a un punto
if (("$LARGH" <= "$ALTEZZA")); then # Verifica se la larghezza è minore o uguale all'altezza.
FOGLIO="Il foglio del documento e' in formato Portrait (verticale)"
FO=+1
else
FOGLIO="Il foglio del documento e' in formato Landscape (orizzontale)"
FO=-1
fi
TESTO="Ignoto"
if (("$ROTAZIONE" == "270")); then # Verifica se la rotazione del testo è 90 gradi in senso antiorario.
TESTO="Il testo del documento e' ruotato di 90 gradi in senso antiorario"
TE=-1
elif (("$ROTAZIONE" == "180")); then # Verifica se il testo è capovolto.
TESTO="Il testo del documento e' capovolto"
TE=1
elif (("$ROTAZIONE" == "90")); then # Verifica se la rotazione del testo è 90 gradi in senso orario.
TESTO="Il testo del documento e' ruotato di 90 gradi in senso orario"
TE=-1
elif (("$ROTAZIONE" == "0")); then # Verifica se il testo è dritto.
TESTO="Il testo del documento e' dritto"
TE=1
fi
echo Numero pagina: $PAG Orientamento testo: $TESTO Rotazione: $ROTAZIONE
echo Orientamento Foglio: $FOGLIO Formato: $FORMATO
if (("$FO" == "$TE")); then # Verifica orientamento foglio e testo.
pdftk commentare.pdf background FiligranaVERT.pdf output commentata.pdf # Inserire filigrana VERTICALE
mv commentata.pdf commentare.pdf # Il documento $PDFFINALE diventa il documento commentare.pdf
echo -e '@color{0 0 1} @font{Courier-Bold12}Commento per fogli VERTICALI,\n@color{0 1 0} @font{Times-Italic22}quando sono visualizzati VERTICALI + quando sono visualizzati VERTICALI + quando sono visualizzati VERTICALI' | enscript -B -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output commentata.pdf # Inserire due righe di commento, nella parte ALTA di un documento VERTICALE, usando colori e font diversi.
else
pdftk commentare.pdf background FiligranaORIZ.pdf output commentata.pdf # Inserire filigrana ORIZZONTALE
mv commentata.pdf commentare.pdf # Il documento $PDFFINALE diventa il documento commentare.pdf
echo -e '@color{0 0 1} @font{Courier-Bold12}Commento per fogli ORIZZONTALI,\n@color{0 1 0} @font{Times-Italic24}quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI + quando sono visualizzati ORIZZONTALI' | enscript -Br -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output commentata.pdf # Inserire due righe di commento, nella parte ALTA di un documento ORIZZONTALE, usando colori e font diversi.
fi
pdftk A=commentata.pdf B=$PDFFINALE cat A B output temporaneo.pdf # Antepone l'ultima pagina commentata 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 commentare.pdf # Cancella il documento PDF commentare.pdf
FILE=commentata.pdf
if test -f "$FILE"; then # Controlla se il documento commentata.pdf esiste
rm commentata.pdf # Cancella il documento PDF commentata.pdf
fi
exit # Fine dello script
#