Articoli del “Guru” Thom Parker

Articoli di Thom Parker su Acrobat, LiveCycle Designer, e la scrittura di codice per PDF

Di seguito una bella selezione di articoli scritti da Thom Parker per la comunità degli utenti di Acrobat e pubblicati nel sito Adobe Acrobat User Community e Planet PDF. Buon lavoro!

Navigare la struttura interna di un documento PDF

Programmazione di un menu pop-up in Acrobat Javascript

La Console di Acrobat JavaScript (la vostra migliore amica per sviluppare Javascript di Acrobat)

Lavorare con orari e date in Acrobat JavaScript – Parte 1 di 3

Lavorare con orari e date in Acrobat JavaScript – Parte 2 di 3

Lavorare con orari e date in Acrobat JavaScript – Parte 3 di 3

Aggiungere una voce di menu personalizzata in Acrobat

Accesso agli scripts di Acrobat

Inviare dati

Usare testo Unicode

Come fare calcoli non banali nei form

Inserire scripts per i campi dei form

Trovare le dimensioni della pagina

Formattare i campi testo

Leggere e scrivere i PDF Metadata con Acrobat JavaScript

Testo multilingua nel capion dei pulsanti

Mostrare e nascondere i campi

Dividere e ricostruire Stringhe

Per la serie “dove si trova”, Inserire azioni di documento

Per la serie “dove si trova”, Inserire azioni di pagina

Per la serie “dove si trova”, Inserire JavaScript in elaborazioni Batch

Creare e usare i layer (OCGs) con Acrobat JavaScript

Automatizzare l’inserimento di Metadata nel Documento PDF con Acrobat JavaScript

Il messaggio di Alert: Parte 1 di 5 delle finestre di popup

Il Response Box: Parte 2 di 5 delle finestre di popup

Il Document File Browser: Parte 3 di 5 delle finestre di popup

Il Document File Browser: Parte 4 di 5 delle finestre di popup

Messaggi di alert personalizzati: Parte 5 di 5 delle finestre di popup

Costruire PDF Reports con JavaScript

Come utilizzare i colori in Acrobat JavaScript

Inserire gli script “Folder Level”

[divider_top]torna su[/divider_top]

Changing Another Field with Combo Box (Drop Down) Selection

Popup menus for Acrobat (A great user-interface item)

File paths in Acrobat JavaScript

Dynamic stamp secrets

Entering scripts into a Link Action

What’s New with Acrobat 8 JavaScript

Creating Radio CheckBoxes

“Where is” Series, Entering Document Scripts

Automatically add buttons to a PDF

Disabling (graying-out) form fields

Programming List and Combo Fields in Acrobat and LiveCycle Forms – Part 1

Programming List and Combo fields in Acrobat and LiveCycle forms- Part 2

Applying PDF security with Acrobat JavaScript

Automating placement of annotations

Inserting pages into a PDF with Acrobat JavaScript

URL encoding strings in Acrobat

Extracting pages from a PDF with Acrobat JavaScript

Text matching with regular expressions

Executing Acrobat menu items from JavaScript

Automating Redaction with Acrobat JavaScript

Exception Handling in Acrobat JavaScript

Using Trusted Functions

Automating bookmark creation with Acrobat JavaScript

Importing and Exporting PDF File Attachments with Acrobat JavaScript

Custom Document Search Using JavaScript

Why Doesn’t My Script Work?

Scripting for Adobe Reader

Conditional Execution

How to Save a PDF with Acrobat JavaScript

Dynamically Setting a Submit by E-mail Address

Come aggiungere il menu Nuovo PDF

Creare con Javascript nuove voci del menu File per creare nuovi pdf vuoti

[fancy_header]ACROBAT JAvascript[/fancy_header]

Acrobat non mette a disposizione degli utenti alcuno strumento per creare nuovi documenti PDF vuoti utili soprattutto a chi, come me, crea form, moduli compilabili e documenti interattivi. Per poter creare un nuovo documento, però, possiamo fare ricorso alle funzionalità di Javascript in particolare al comando [cc lang=’javascript’ line_numbers=’false’]app.newDoc()[/cc] Utilizzando sempre Javascript inseririremo nuove voci di menu all’interno del menu File per semplificare l’utilizzo di tale comando.

Menu nuovo
Il menu File con la voce Nuovo e i formati

Come probabilmente saprete per poter eseguire determinate tipologie di comandi e azioni automaticamente all’avvio di Acrobat (come ad esempio creare una voce di menu), è necessario creare un così detto Folder Javascript, cioè uno script da inserire nella cartella Javascript normalmente posta nella cartella di installazione del nostro Acrobat che normalmente è qualcosa del genere: C:\Program Files (x86)\Adobe\Acrobat 9.0\Acrobat\Javascripts.

Ma passiamo a vedere il codice:

[cc lang=’javascript’ ]trustedNewDoc = app.trustedFunction( function(nWidth, nHeight)
{
app.beginPriv();
switch( arguments.length ) {
case 2:
app.newDoc( nWidth, nHeight );
break;
case 1:
app.newDoc( nWidth );
break;
default:
app.newDoc();
}
app.endPriv();
})
app.addSubMenu({ cName: “Nuovo”, cParent:”File”, nPos: 0 })
app.addMenuItem({ cName: “A4”, cParent: “Nuovo”,cExec: “trustedNewDoc(420,595)”});
app.addMenuItem({ cName: “A4 Orizzontale”, cParent: “Nuovo”,cExec: “trustedNewDoc(595,420)”});
app.addMenuItem({ cName: “PowerDocs(1024×768)”, cParent: “Nuovo”, cExec:”trustedNewDoc(1024,768);”});
app.addMenuItem({ cName: “PowerDocs(1280×800)”, cParent: “Nuovo”, cExec:”trustedNewDoc(1280,800);”});
app.addMenuItem({ cName: “Schermo(640×480)”, cParent: “Nuovo”, cExec:”trustedNewDoc(640,480);”});
app.addMenuItem({ cName: “A3 Orizzontale”, cParent: “Nuovo”,cExec: “trustedNewDoc(840,595)”});
app.addMenuItem({ cName: “Letter Portrait”,cParent: “Nuovo”, cExec: “trustedNewDoc();”});
app.addMenuItem({ cName: “LetterLandscape”, cParent: “Nuovo”, cExec:”trustedNewDoc(792,612);”});
app.addMenuItem({ cName: “Slide(720×540)”, cParent: “Nuovo”, cExec:”trustedNewDoc(720,540);”});
app.addMenuItem({ cName: “Note(4×3)”, cParent: “Nuovo”, cExec:”trustedNewDoc(288,216);”});
app.addMenuItem({ cName: “Custom…”, cParent:”Nuovo”, cExec:”var nWidth = app.response({ cQuestion:’Inserisci larghezza in Punti’,\ cTitle: ‘Dimensione personalizzata di pagina’});”+”if (nWidth == null) nWidth = 612;”+”var nHeight = app.response({cQuestion:’Inserisci altezza in Punti’,\cTitle: ‘Dimensione personalizzata di pagina’});”+”if (nHeight == null) nHeight =792;”+”trustedNewDoc(nWidth, nHeight) “});

[/cc]

Corso iDf – Introduzione ai pdf interattivi

[dropcap1]1[/dropcap1]I PDF INTERATTIVI – iDf o iPdf

I file pdf interattivi (iDf d’ora in avanti) sono a tutti gli effetti dei normali documenti in formato pdf, formato che da qualche anno (dal 2008) è diventato l’unico formato a ricevere la certificazione di Standard ISO per i documenti elettronici (ISO 32000-1).

Questo significa che gli iDf ereditano tutte le peculiarità e i vantaggi di questo formato e semplicemente ne sfruttano al massimo le caratteristiche e le funzionalità. queste come detto sono state indicate e rese pubbliche con un documento approvato e certificato dall’ente per gli Standard ISO (International Standard Organization).

Tale documentazione, che definisce le specifiche dei file PDF è disponibile nel sito di Adobe a questa pagina: PDF Reference and Adobe Extensions to the PDF Specification. Tutti gli applicativi futuri e tutti gli sviluppi di questo formato si baseranno su evoluzioni della specifica di pdf 1.7.

Se non conoscete i vantaggi del formato pdf, vale la pena ricordarne qualcuno che risulta particolarmente utile per l’implementazione di soluzioni interattive e multimediali:

[check_list]

  • E’ multipiattaforma, cioè indipendentemente dal sistema operativo si consulta e visualizza allo stesso modo
  • Mantiene formattazioni, aspetto, qualità dei contenuti, vettorialità dei segni grafici, stampabilità
  • E’ in grado di incorporare, comprimere, cifrare e proteggere qualsiasi contenuto al suo interno
  • Permette di incorporare grafica, video, animazioni, audio, suoni e praticamente qualsiasi contenuto multimediale, flash compreso.
  • Consente di inserire funzionalità di interazione e oggetti modulo altamente personalizzabili
  • E’ possibile inserire script e funzionalità attraverso un linguaggio di scripting affidabile e in continua crescita (Javascript)
  • Richiede solamente software gratuiti per essere fruito (Adobe Reader)
  • La penetrazione del formato PDF sulle postazioni informatiche attuali e superiore al 90%
  • Può essere fruito sia online che offline, si integra con praticamente tutti i browser
  • … e possiede molti altri vantaggi che ognuno di voi mi aiuterà a ricordare!

[/check_list]
In sostanza, come dicono alcuni clienti dopo la presentazione di soluzioni iDf,

è come avere un sito internet off-line, un catalogo interattivo, una presentazione aziendale, un sistema di calcolo, (e molto altro…) in un unico file distribuibile gratuitamente

Se non avete ancora mai visto dei pdf interattivi, mi chiedo come mai stiate leggendo questa pagina (forse un corso?). In ogni caso per farvi capire le potenzialità dello strumento ecco una lista di quello che si può fare e integrare in un file iDf

Molto probabilmente, quello che preme di più soprattutto ai non programmatori (che sono la maggioranza), è riuscire a capire semplicemente come aggiungere ai propri documenti pdf alcune funzionalità e caratteristiche interattive di base. In particolare le richieste più tipiche sono:

  • Calcolare la somma di certi campi editabili
  • Verificare se è stata inserita o meno una determinata informazione obbligatoria nel modulo
  • Mostrare o nascondere contenuti in risposta a determinate azioni dell’utente
  • Creare una interfaccia di navigazione del documento

E’ da qui che partiremo. Posso assicurarvi che a mano a mano che procederemo in questo progetto, chi di voi metterà in pratica quanto appreso, diventerà estremamente entusiasta e rapito dalle potenzialità dei PDF interattivi.

Non ci resta che cominciare quindi!

Usare gli script di altri documenti

Taglia e incolla di codice Javascript.

Nel web, molte delle meravigliose funzionalità e caratteristiche incredibili (ma anche quelle ordinarie) che potete trovare sono implementate con script personalizzati e realizzati in Javascript. Il modo più usuale e semplice per acquisire tali caratteristiche e funzionalità è di copiarle da altri file HTML già realizzati o da tutorials appositamente scritti e inserirle nei vostri.

[fancy_box]

Allo stesso modo, se trovate un Pdf che ha qualche funzionalità che vi piace, o se qualcuno pubblica uno script in qualche forum o qualche articolo in siti web che, come PowerDocs, parlano di Acrobat Javascript, copiate semplicemente lo script e incollatelo nel vostro PDF e il gioco è fatto. Nessun problema, nessun fastidio, solo successo immediato…

…sfortunatamente, non funziona proprio così!

[/fancy_box]

La maggior parte delle richieste di aiuto nei forum legati ad Acrobat Javascript sono relative a insuccessi nel far funzionare gli script copiati da altre fonti e inseriti in contesti apparentemente uguali ma…diversi.

A meno che non siate adeguatamente formati e oculati, tentare di copiare il codice di qualcun’altro, soprattutto se quest’ultimo non vuole che questo avvenga, può rivelarsi una sfida ardua, lunga, dolorosa e talvolta inconcludente per gli scopi per cui si è intrapresa.

Ma non tutte le speranze sono perdute. Copiare gli scripts può essere comunque una strada percorribile per inserire, nei vostri documenti, funzionalità e caratteristiche che vanno ben oltre le vostre attuali capacità e conoscenze di programmazione.

Per far funzionare uno script avete bisogno di avere solo pochi consigli e indicazioni. Seguitele attentamente e pian piano otterrete le chiavi e i metodi per raggiungere gli scopi, il successo, e la fortuna che può derivare dall’implementazione di script efficaci ed evoluti.

Le informazioni di base per copiare uno Script PDF.

Il linguaggio di script di Acrobat è Javascript. Questo perchè il Javascript è un linguaggio di programmazione specificamente disegnato per essere utilizzato come linguaggio di automazione di Applicazioni (cioè in grado di istruire una determinata applicazione su quali azioni eseguire). Per questo motivo, ogni applicazione utilizza una sua speciale versione di Javascript. Per questo un Javascript per pagine web non ha nulla a che spartire con uno script per Acrobat e i PDF.

[dropcap1]1[/dropcap1]Non è possibile utilizzare nei PDF script che non siano stati espressamente creati e scritti per tale contesto.

Non solo. Acrobat gestisce contemporaneamente due diverse tecnologie:

  • Acroforms
  • moduli XFA (liveCycle)

Queste due tecnologie sono talmente differenti tra di loro che sembrano essere state sviluppate in epoche diverse, in nazioni diverse, da aziende diverse e per applicazioni diverse. Ed infatti è stato così. Usare script sviluppati per una tecnologia nel contesto dell’altra è come chiedere al proprio cane di miagolare e al vostro gatto di abbiare… ci potreste riuscire ma forse non otterreste proprio il risultato desiderato.

[dropcap1]2[/dropcap1]Assicuratevi sempre di copiare script per la giusta tecnologia

Un’altra informazione importante che dovete capire è che normalmente tutti gli script funzionano solamente in uno specifico file PDF dove sono presenti determinati elementi, contesti e impostazioni. Senza queste condizioni molto probabilmente lo script non funzionerà, in tutto o in parte. Molto probabilmente per riuscire a farlo funzionare dovrete sostituire almeno alcuno dei riferimenti a campi, allegati, funzioni, risorse, ecc. Per poter individuare quali sono gli elementi da cui dipende lo script e modificarli bisogna saper leggere quali sono, trovarne il nome originale e sostituirlo con il nome del nostro documento. Quello che sto per rivelarvi è ovviamente ciò che nessun “copiatore si script professionista” vorrebbe sentirsi dire e cioè:

[dropcap1]3[/dropcap1]Dovete conoscere i contenuti della Acrobat JavaScript Reference e quali sono gli oggetti che posso usare in Acrobat

Non è necessario capire o conoscere l’intera reference, quello che vi serve è riuscire a cercare il nome dell’oggetto o proprietà che vi sembra possa avere a che fare con la funzionalità o elemento che dovete modificare e quindi leggere almeno la corrispondente parte introduttiva che vi consenta di avere sufficienti informazioni per decidere se e cosa è necessario modificare.

Tutti i linguaggi di programmazione (non solamente javascript) sono notoriamente molto puntigliosi ed esigenti per quanto riguarda dettagli apparentemente insignificanti come virgole dimenticate, punteggiatura errata, lettere maiuscole omesse o non richieste, errori nella corrispondenza tra parentesi aperte e chiuse, mancanza di quegli “inutili” punti e virgola alla fine di una riga di istruzione. Gli interpreti di comandi non sono in grado di interpretare le intenzioni del programmatore, si limitano ad eseguire quello che scrivete.

[dropcap1]4[/dropcap1]Fate attenzione ai particolari, non modificate parti del codice che non conoscete e non fate copie parziali degli script.

Se vi accingete a modificare gli script, è una buona idea entrare nel giusto stato mentale. I programmatori sono ossessionati da simboli criptici e da strutture non intuitive, infatti linguaggi di programmazione sono molto adatti ad essere resi indecifrabili. Questo è una modalità per assicurarsi il lavoro e pertanto è piuttosto improbabile che le cose cambino a breve.

[dropcap1]5[/dropcap1]Abituatevi a pensare come farebbe un programmatore (cercate di trovare una spiegazione semplice a quello che sembra incomprensibile)

Infine, è piuttosto raro che uno script sia una entità a sè separata dal mondo esterno. Un PDF è un ambiente piuttosto variegato di posti dove possono essere nascosti ed utilizzati gli script. E’ piuttosto normale che ci siano script che dipendano da altri script ed è vero ancor di più nei moduli pdf. Infatti gli script in questo caso possono essere collegati/associati a diverse posizioni: esistono script a livello di campo, a livello di documento, a livello di cartella ecc.

[dropcap1]6[/dropcap1]Dovete identificare tutte le relazioni tra script in modo da copiare tutti gli elementi di codice necessari a farli funzionare

Ecco un link dove poter approfondire questo aspetto:

http://www.acrobatusers.com/tutorials/2006/where_js_goes

Probabilmente la situazione più comune è uno script principale che utilizza funzioni, variabili e informazioni che vengono definite nella così detta area globale. In Acroform quest’area è chiamata “Document Level Script” cioè script a livello di documento ma gli script “figli” possono annidiarsi un po’ ovunque in tutti gli oggetti del form e per tutti gli eventi ad esso collegati (Click, Calcolo, Formattazione, Focus, ecc.).

Ora siete un po’ meglio preparati ad affrontare le complessità della copia di script. Buona fortuna e non fativi scoraggiare dalle difficoltà che sono commisurate alla soddisfazione che vi può dare l’utilizzo con successo di script complessi e strutturati.

Contenuto liberamente tradotto e rielaborato da un articolo di Thom Parker Acrobat Javascript guru su come utilizzare le sue funzioni e script divulgate attraverso il suo sito web pdfscripting.com, sicuramente una risorsa da tenere in considerazione anche se purtroppo a pagamento per i contenuti più succulenti.

Menu e pulsanti di navigazione nel catalogo pdf

Come creare un menu di navigazione interattivo nei cataloghi pdf.

Uno dei quesiti maggiormente richiesti durante i miei incontri con clienti e colleghi riguarda la possibilità di rendere più facilmente navigabile un documento pdf esistente. Cosa fare per rendere il mio catalogo pdf più usabile, navigabile, interattivo e soprattutto più interessante (e quindi efficace)?

Cosa rende la versione web più interessante di un catalogo cartaceo anche se questo è riccamente realizzato e concepito? Molte cose ma io penso che i motivi siano quelli che sto per elencare, i contenuti concepiti per il web rispetto ai cataloghi si caratterizzano per:

  • esistenza di collegamenti che mi consentono una consultazione non sequenziale dalla prima all’ultima pagina.
  • esistenza di strumenti di ricerca
  • informazioni organizzate (strutturate) con dettagli
  • interattività e multimedialità
  • distribuibilità e trasportabilità
  • costi di consultazione e distribuzione non legati al numero di destinari
  • altri che conoscete voi meglio di me…

Ora, quali di queste belle caratteristiche non sono tipiche dei vostri cataloghi in formato pdf tanto da farveli ritenete sostituti inadeguati del vostro contenuto web? Vediamo:

Collegamenti, pulsanti e link: normalmente questi non sono tipici dei file PDF ma… in realtà sono possibili e facilmente inseribili. I collegamenti web vengono automaticamente generati in fase di creazione del pdf per i testi che contengono un indirizzo come ad esempio www.powerdocs.it o info@powerdocs.it .
I collegamenti possono essere inseriti con appositi comandi di acrobat e associati a testo o immagini. I collegamenti possono essere associati ad azioni di pulsanti appositamente inseriti nel documento e questi possono essere collegamenti sia esterni (verso indirizzi web), sia a documenti e risorse esterne (ad esempio un’altro file pdf) oppure interni cioè in grado di far raggiungere una determinata pagina, vista o contenuto esistente nel nostro documento pdf.

Strumenti di ricerca: sono integrati normalmente nei migliori siti e cataloghi online e in quasi tutti gli strumenti di consultazione dei file pdf come ad esempio Adobe Reader ma raramente sono utilizzati perchè sconosciuti ai più o perchè ritenuti troppo complessi o imprecisi. Ma sarebbero molto più efficaci se le ricerche fossero semplificate e rese più immediatamente accessibili. I file pdf possono, con l’implementazione di apposite funzionalità, effettuare ricerche nei così detti bookmark, negli indici strutturati e, ovviamente, nel testo di tutto il documento.

Informazioni organizzate in indici: i documenti cartacei sono normalmente dotati di indici, i siti web di menu, i documenti pdf possono avere infiniti tipi di indici interattivi: quello alfabetico del catalogo, quello grafico/visuale tipico del web, quello interattivo con menu strutturato ad albero, quello che raggruppa i prodotti per… prezzo, colore, dimensione, linea, designer, eccetera. Tutti questi indici possono essere costruiti o resi interattivi sulla base dei contenuti del vostro catalogo.

Interattività e multimedialità: normalmente nessun catalogo pdf possiede video, filmati, animazioni in flash, pulsanti interattivi, ecc. Quelle che pochi conoscono è che tutto quello che consideriamo multimediale e interattivo può essere incorporato in un documento pdf ed essere mostrato e visualizzato solamente con Adobe Reader e null’altro su qualsiasi sistema operativo senza preoccuparsi di quali “plug-in” sono installati o meno nel sistema operativo.

I vostri documenti statici possono diventare navigabili, ricercabili, indicizzati, interattivi e multimediali, ecc.

Volete sapere come? CLICCATE QUI