Problema:
sto mandando in giro veramente un sacco di bozze dei miei file in formato PDF e non voglio che chiunque possa prendere questi file e usarli senza il mio permesso.
Soluzione:
proteggo i PDF con una password, lasciando il permesso di stampare e anche di commentare e firmare.
Quindi mi creo la mia bella azione dentro Acrobat Pro che in un clic mi salva il pdf protetto con un nuovo nome di file, e mi permette di farlo in batch con un sacco di pdf.
So che ci sono soluzioni online e offline per togliere la password ai PDF, ma mi aspetto che i miei interlocutori non siano così tech savvy, ovvero non sappiano che si può fare.
Fila tutto liscio con i primi invii dei miei pdf protetti, fin quando non arriva il cliente che usa Acrobat anche per firmare i PDF con la sua firma digitale.
“Tutto bene” penso io, perché mi ricordo di aver impostato correttamente i permessi per commentare e firmare.
E invece no!
Perché un PDF protetto non si può firmare se prima qualcuno non c’ha già messo dentro un campo firma vuoto!!
Qualcuno mi suggerisce di creare a mano il campo firma prima di generare il pdf protetto, ma io non sono d’accordo perché si tratterebbe di modificare manualmente un sacco di file, e questo va a cozzare con l’automatismo che mi sono creato.
Io penso ad una prima soluzione: faccio in modo che l’automatismo mi inserisca una nuova pagina ad hoc dentro ogni pdf, dove metto il campo firma da compilare, e gia che ci sono anche delle indicazioni di convenienza.
Niente da fare!
Il cliente vuole mettere la sua firma sull’unica pagina dove c’è la grafica che vuole convalidare.
“ORRORE” grido io, che penso alla mia grafica deturpata da un modulo di Acrobat!!
Alla fine della storia, gira e rigira, ne sono venuto a capo con Javascript, che mi permette di modificare la dimensione in centimetri della pagina pdf, e di aggiungere il modulo per la firma tanto anelato.
Ho scelto di allargare la pagina pdf verso il basso aggiungendo uno spazio alto 6cm e poi di sfruttare quello spazio per inserire il campo firma da compilare.
Ed ecco quindi il codice Javascript che ho poi inserito nella mia ‘action’ di Acrobat…
Un po’ di codice javascript per capire come modificare i PDF Boxes, e un po’ di codice javascript per aggiungere il form per la firma digitale.
// allarga il fondo del PDF
// http://archive.is/l2rMY
// altre info:
// http://archive.is/gwpE9
// http://archive.is/vqoTd
var MISURA = 6*28.3465; // 28.3465 serve per convertire CM in PUNTI
var aRect = this.getPageBox("Media");
this.setPageBoxes("Media",0,0,[aRect[0],aRect[1],aRect[2],aRect[3] - MISURA]);
this.setPageBoxes("Crop",0,0,[aRect[0],aRect[1],aRect[2],aRect[3] - MISURA]);
// aggiungi campo firma
// http://archive.is/Lm27Y
var CM = 28.3465; // 28.3465 serve per convertire CM in PUNTI
for (var p = 0; p < this.numPages; p++) {
// definisci posizione del rettangolo
var aRect = this.getPageBox( {nPage: p} );
aRect[0] = aRect[0]+1*CM;
aRect[2] = aRect[2]-1*CM; // larghezza
aRect[1] = aRect[3]+5*CM;
aRect[3] = aRect[3]+1*CM; // altezza
// crea campo firma
var f = this.addField("FIRMA", "signature", p, aRect )
}
fonti:
https://answers.acrobatusers.com/How-do-you-change-the-page-size-q114416.aspx
https://answers.acrobatusers.com/Reverse-Crop-With-Javascript-q299707.aspx
https://acrobatusers.com/tutorials/print/finding-page-boundaries
https://help.adobe.com/livedocs/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=JS_API_AcroJS.88.435.html
Questo script per Acrobat permette di unire due file PDF mescolando le pagine in maniera alternata.
Utile ad esempio se abbiamo due file dove in uno ci sono le pagine dispari e in una le pagine pari di uno stesso documento.
http://www.planetpdf.com/developer/article.asp?ContentID=collating_pdfs_using_javascrip&rh%20s_fa
oppure
http://archive.is/BYOJe