011s02 pdftk – SCRIPT in grado di distinguere se la pagina è orizzontale o verticale, e commentarla di conseguenza mediante VARIABILI.
#!/bin/bash # 011s02 pdftk - SCRIPT in grado di distinguere se la pagina è orizzontale o verticale, e commentarla di conseguenza mediante VARIABILI. # Per avviare questo script, metterlo nella cartella in cui si trova il documento PDF da processare ed impartire il comando # ./< nomeQuestoScript > < nomeDocPDFINIZIALE > # Inizio acquisizione informazioni essenziali all'esecuzione dello script PDFINIZIALE=${1} # Acquisizione nome del documento da processare PDFFINALE=COMMENTATO-$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 # Fine acquisizione informazioni essenziali all'esecuzione dello script # Inizio impostazione variabili essenziali per commentare l'ultima pagina del documento ACAPO='\n' # Definisce la variabile contenente il comando "ANDARE A CAPO" BLU='@color{0 0 1}' # Definisce la variabile che imposta il colore BLU ROSSO='@color{1 0 0}' # Definisce la variabile che imposta il colore ROSSO FONT1=@font{Times-Italic10} # Definisce la variabile che imposta il primo font FONT2=@font{Courier-Bold10} # Definisce la variabile che imposta il secondo font 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 # Fine impostazione variabili essenziali per commentare l'ultima pagina del documento # Landscape+90= -r -- # Landscape+270= -r -- # Portrait+0= -r ++ # Portrait+180= -r ++ # Portrait+90= +r +- # Portrait+270= +r +- # Landscape+0= +r -+ # Landscape+180= +r -+ # Inizio elaborazione variabili essenziali per determinare l'orientamento dell'ultimo foglio del documento 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 # Fine elaborazione variabili essenziali per determinare l'orientamento dell'ultimo foglio del documento # Inizio elaborazione variabili essenziali per determinare l'orientamento del TESTO dell'ultimo foglio del documento 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 # Fine elaborazione variabili essenziali per determinare l'orientamento del TESTO dell'ultimo foglio del documento # Inizio elaborazione variabili che definisono il testo del commento dell'ultimo foglio del documento echo Numero pagina: $PAG Orientamento testo: $TESTO Rotazione: $ROTAZIONE echo Orientamento Foglio: $FOGLIO Formato: $FORMATO RIGA1=$BLU$FONT1'Numero ultima pagina: '$PAG' Orientamento testo: '$TESTO' Rotazione: '$ROTAZIONE RIGA2=$ROSSO$FONT1$FOGLIO' Formato: '$FORMATO RIGA=$RIGA1$ACAPO$RIGA2 # Fine elaborazione variabili che definisono il testo del commento dell'ultimo foglio del documento # Inizio scrittura commento nell'ultimo foglio del documento if (("$FO" == "$TE")); then # Verifica orientamento foglio e testo. echo -e $RIGA | 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. # Se si vuol scrivere nella parte ALTA, rimuovere o reimpostare l'opzione --margins=18:18:790:15 else echo -e $RIGA | 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. # Se si vuol scrivere nella parte ALTA, rimuovere o reimpostare l'opzione --margins=540:18:15:18 fi # Fine scrittura commento nell'ultimo foglio del documento let PAG=PAG-1 # Sottrae 1 alla variabile PAG # Inizio nidificazione istruzioni per commentare ogni ulteriore foglio del documento 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 # # Inizio impostazione variabili essenziali per commentare ogni ulteriore foglio del documento 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 # Fine impostazione variabili essenziali per commentare ogni ulteriore foglio del documento # Inizio elaborazione variabili essenziali per determinare l'orientamento di ogni ulteriore foglio del documento 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 # Fine elaborazione variabili essenziali per determinare l'orientamento di ogni ulteriore foglio del documento # Inizio elaborazione variabili essenziali per determinare l'orientamento del TESTO di ogni ulteriore foglio del documento 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 # Fine elaborazione variabili essenziali per determinare l'orientamento del TESTO di ogni ulteriore foglio del documento # Inizio elaborazione variabili che definisono il testo del commento di ogni ulteriore foglio del documento echo Numero pagina: $PAG Orientamento testo: $TESTO Rotazione: $ROTAZIONE echo Orientamento Foglio: $FOGLIO Formato: $FORMATO RIGA1=$BLU$FONT1'Numero pagina: '$PAG' Orientamento testo: '$TESTO' Rotazione: '$ROTAZIONE RIGA2=$ROSSO$FONT1$FOGLIO' Formato: '$FORMATO RIGA=$RIGA1$ACAPO$RIGA2 # Fine elaborazione variabili che definisono il testo del commento di ogni ulteriore foglio del documento # Inizio scrittura commento di ogni ulteriore foglio del documento if (("$FO" == "$TE")); then # Verifica orientamento foglio e testo. echo -e $RIGA | enscript --margins=18:18:790:15 -B -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output commentata.pdf # Inserire due righe di commento, nella parte BASSA di un documento VERTICALE, usando colori e font. # Se si vuol scrivere nella parte ALTA, rimuovere o reimpostare l'opzione --margins=18:18:790:15 else echo -e $RIGA | enscript --margins=540:18:15:18 -Br -e@ -p - | ps2pdf - | pdftk commentare.pdf stamp - output commentata.pdf # Inserire due righe di commento, nella parte BASSA di un documento ORIZZONTALE, usando colori e font. # Se si vuol scrivere nella parte ALTA, rimuovere o reimpostare l'opzione --margins=540:18:15:18 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 (verificare) 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 #
# ALFA='Commento scritto su 2 righe'; ACAPO='\n'; BETA='unendo 3 variabili'; GAMMA='Parte non inserita in una variabile del '$ALFA$ACAPO$BETA; echo $GAMMA; echo -e $GAMMA | enscript -B -e@ -p - | ps2pdf - | pdftk Prova01.pdf stamp - output Prova01M-RigaCom.pdf # Commenta un documento usando delle variabili e applicando opzioni di default