Inserire commento nella prima pagina di un documento PDF

24 Gennaio, 2016 (12:28) | Linux | By: sargonsei

In una cartella abbiamo raccolto tutti i documenti PDF che ci interessano, e, per poter rintracciare velocemente il documento che ci interessa, nella stessa cartella abbiamo inserito un file di testo contenente, per ogni documento inserito nella cartella stessa, il nome del file.pdf e una breve descrizione del contenuto del PDF stesso.
Se desideriamo inserire la descrizione anche nella prima pagina del file.pdf stesso, quella che segue è la procedura.
N.B. La procedura qui descritta, è stata testata (con Linux Mint 17.1 a 64 bit con MATE) su documenti PDF il cui nome NON contiene spazi, pensando di aggiungere ad ogni documento un testo anche diverso da documento a documento, ma nella medesima porzione della prima pagina di ogni singolo documento.

1) Aprire il gestore delle applicazioni (synaptic o altro, a vostra scelta) ed assicurarsi che le applicazioni enscript e pdftk siano installate; se non lo sono, selezionarle per l’installazione ed installarle con tutte le dipendenze.

2) Assicurarsi che i documenti PDF a cui si vuole aggiungere la descrizione, siano tutti nella medesima cartella, ed abbiano tutti dei nomi privi di spazi e/o caratteri speciali.

3) Assicurarsi che il file nomePdf_Commento.txt contenente l’elenco dei documenti PDF e relativa descrizione, sia contenuto all’interno della cartella che contiene i documenti PDF e che contenga, per ogni singolo PDF che si vuole commentare, una riga che inizia con il nome del documento PDF (estensione compresa), uno spazio, ed il commento che si vuole inserire nel PDF stesso.

4) Creare, all’interno della medesima cartella, uno script chiamato CommentaDocumenti.sh avente il seguente contenuto:

#!/bin/bash
# Questo script, per funzionare correttamente, deve essere collocato nella medesima cartella in cui si trovano i files da commentare.
# Da adattare
FILE=nomePdf_Commento.txt #  mettere qui il nome del file di testo contenente l'elenco dei files PDF e relativi commenti
DIR=$(pwd -P) #  mette nella variabile DIR il percorso assoluto della cartella in cui si trova lo script
  cd $DIR
  while read line; do
    # estrae qui da ogni riga il nome del pdf e il testo da inserirvi
    testo="${line#* }"
    masterPDF="${line/ *}"
    # crea la prima pagina inserendo il commento incorniciato in un'area distante 17 pixel dal bordo sinistro, 18 pixels dal bordo destro, 15 pixels dal bordo superiore e 760 pixels del bordo inferiore della prima pagina del documento PDF
    fold -w 100 -s <<<"$testo" | enscript --margins=17:18:15:760 -j -B -f Times-Italic12 -p- | ps2pdf - | pdftk - background $masterPDF output firstPage.pdf
    nPag=$(pdftk $masterPDF dump_data | awk '/NumberOfPages/ {print $2}')
    if [[ $nPag -eq 1 ]]; then
      # la pagina creata è già il nostro documento annotato; la rinominiamo dandole un nome ottenuto aggiungendo, al nome del file da commentare, il prefisso che preferiamo (in questo casdo, EDITED-)
      mv firstPage.pdf EDITED-$masterPDF
    else
      # il pdf ha più pagine; sostituiamo la prima pagina con quella commentata e dando, al documento risultante, un nome ottenuto aggiungendo, al nome del file da commentare, il prefisso che preferiamo (in questo casdo, EDITED-)
      pdftk A=firstPage.pdf B=$masterPDF cat A B2-end output EDITED-$masterPDF
    fi
    done < $FILE

5) Aprire il FileManager installato (nel mio caso, Nemo), andare nella cartella in cui abbiamo messo i documenti PDF e cliccare col tasto destro del mouse sul file CommentaDocumenti.sh, poi selezionare [Proprietà]>[Permessi] e mettere la spunta ad [Esecuzione], in modo da rendere eseguibile il file CommentaDocumenti.sh.

6) Aprire un terminale nella cartella in cui abbiamo messo i documenti PDF, il file nomePdf_Commento.txt , ed file CommentaDocumenti.sh , ed impartire il comando
./CommentaDocumenti.sh

A questo punto, se esaminiamo la cartella di lavoro con il FileManager installato, potremo constatare che, assieme ai files presenti in precedenza ed elencati nel file nomePdf_Commento.txt , ci sono i corrispondenti files commentati, distinguibili dai files non commentati per la presenza nel nome del prefisso EDITED-.