Portable Document Format (abbreviato PDF) è un formato di file documentale sviluppato da Adobe. Evoluzione del Camelot Project di John Warnock, lo scopo del formato è quello di distribuire e scambiare documenti mantenendo invariati font, immagini e layout in maniera indipendente dal software e dall'hardware.
Storia PDF viene sviluppato nel 1993 da Adobe come formato proprietario basato su PostScript. Da allora è oggetto di continui miglioramenti. Nel 2005 viene definito il formato derivato PDF/A, ottimizzato per l'archiviazione e la preservazione a lungo termine dei documenti.
Nel 2007 Adobe decide di trasformare PDF in un formato standard ISO,; intraprendendo un percorso che porta nel luglio 2008 alla pubblicazione della norma ISO 32000,; basato sulla versione 1.7 della specifica originale. Il comitato ISO TC-171 ha successivamente prodotto una revisione del formato PDF, riportata nella norma ISO 32000-2 e corrispondente a PDF 2.0.
Descrizione PDF è un formato aperto, nel senso che chiunque può creare applicazioni che leggano e scrivano file PDF senza pagare i diritti (Royalty) ad Adobe. Adobe ha un numero elevato di brevetti relativamente al formato PDF, ma le licenze associate non includono il pagamento di diritti per la creazione di programmi associati.
Un file PDF può descrivere documenti che contengono testo e/o immagini in qualsiasi risoluzione. Ogni documento PDF contiene una completa descrizione del documento bidimensionale (e, con la comparsa di Acrobat 3D, documenti 3D incorporati) composta da proprietà (Titolo, Autore, ecc.), testo, tipo di carattere (font), immagini e oggetti di grafica vettoriale 2D che compongono il documento.
Il documento PDF non dovrebbe includere informazioni specifiche per software, hardware e sistema operativo usato. Ciò permetterebbe al documento di venire visualizzato e renderizzato nella stessa esatta maniera indipendentemente dalla piattaforma e/o dispositivo utilizzato per leggerlo. Anche questo fatto ha contribuito a farlo diventare un formato standard de facto molto diffuso per la condivisione immediata dei documenti. In realtà il PDF nella sua forma standard è un formato che non può essere considerato compatibile con un processo di conservazione digitale (l'archiviazione digitale dei documenti al fine di eliminare o ridurre l'uso della carta), in quanto non è in grado di garantire la riproducibilità a lungo termine e neanche la conservazione dell'aspetto visivo. Questo aspetto dipende da vari fattori come, ad esempio, il fatto che i file PDF standard non sono necessariamente auto-contenuti, ma possono presentare dipendenze dai font utilizzati o da oggetti esterni al file stesso. Pertanto, se si cerca di visualizzare questi file su sistemi informatici diversi da quelli sui quali sono stati creati, non è garantita la loro riproduzione in maniera coerente, da cui consegue che il loro utilizzo a lungo termine non è pensabile se non associato ad uno standard preciso iged.it online 02 2010 - pag. 11.
La stampa di documenti in formato .pdf può dare dei problemi se si usano dei caratteri locali (ad esempio le vocali italiane accentate) e se chi stampa ha il proprio PC impostato su una lingua diversa.
Formato file Un file PDF contiene caratteri ASCII a 7 bit, ad eccezione di alcuni elementi che possono avere contenuto binario. Il file inizia con un'intestazione contenente un numero magico (come una stringa leggibile) e la versione del formato, ad esempio %PDF-1.7. Il formato è un sottoinsieme di un formato COS ("Carousel" Object Structure). Un file albero COS consiste principalmente di oggetti, di cui esistono otto tipiAdobe Systems, PDF Reference, p. 51.:
Valori booleani, che rappresentano vero o falso Numeri Stringhe, racchiuse tra parentesi ((...)). Le stringhe possono contenere caratteri a 8 bit. Nomi, che iniziano con una barra (/) Matrici, raccolte ordinate di oggetti racchiusi tra parentesi quadre ([...]) Dizionari, raccolte di oggetti indicizzati da nomi racchiusi tra doppie parentesi angolari (<<...>>) Flussi, solitamente contenenti grandi quantità di dati binari opzionalmente compressi, preceduti da un dizionario e racchiusi tra le parole chiave streame endstream. L'oggetto "null"
Inoltre, potrebbero essere presenti commenti, introdotti con il segno di percentuale (%). I commenti possono contenere caratteri a 8 bit.
Gli oggetti possono essere diretti (incorporati in un altro oggetto) o indiretti. Gli oggetti indiretti sono numerati con un numero di oggetto e un numero di generazione e definiti tra le parole chiave obje endobjse risiedono nella radice del documento. A partire dalla versione PDF 1.5, gli oggetti indiretti (ad eccezione di altri flussi) possono anche essere posizionati in flussi speciali noti come flussi di oggetti (contrassegnati /Type /ObjStm). Questa tecnica consente agli oggetti non flusso di applicare filtri di flusso standard, riduce le dimensioni dei file che hanno un numero elevato di piccoli oggetti indiretti ed è particolarmente utile per PDF con tag. I flussi di oggetti non supportano la specifica di un oggetto numero di generazione (diverso da 0).
Una tabella indice, chiamata anche tabella dei riferimenti incrociati, si trova in genere vicino alla fine del file e fornisce l'offset di byte di ogni oggetto indiretto dall'inizio del fileAdobe Systems, PDF Reference, pp. 39–40.. Questo design consente un accesso casuale efficiente agli oggetti nel file e consente anche di apportare piccole modifiche senza riscrivere l'intero file (aggiornamento incrementale). Prima della versione PDF 1.5, la tabella sarebbe sempre stata in uno speciale formato ASCII, sarebbe stata contrassegnata con la xrefparola chiave e avrebbe seguito il corpo principale composto da oggetti indiretti. La versione 1.5 ha introdotto flussi di riferimento incrociato opzionali, che hanno la forma di un oggetto stream standard, eventualmente con filtri applicati. Tale flusso può essere utilizzato al posto della tabella dei riferimenti incrociati ASCII e contiene gli offset e altre informazioni in formato binario. Il formato è flessibile in quanto consente la specifica della larghezza intera (utilizzando /Warray), in modo che, ad esempio, un documento di dimensioni non superiori a 64 KiB possa dedicare solo 2 byte per gli offset degli oggetti.
Alla fine di un file PDF c'è un piè di pagina contenente:
La parola chiave startxref seguita da un offset all'inizio della tabella dei riferimenti incrociati (che inizia con la parola chiave xref) o l'oggetto flusso di riferimenti incrociati L'indicatore di fine-file %%EOF.
Se non viene utilizzato un flusso di riferimenti incrociati, il piè di pagina è preceduto dalla parola chiave trailerseguita da un dizionario contenente informazioni che altrimenti sarebbero contenute nel flusso di riferimenti incrociati del dizionario dell'oggetto:
Un riferimento all'oggetto radice della struttura ad albero, noto anche come catalog (/Root) Il conteggio degli oggetti indiretti nella tabella dei riferimenti incrociati (/Size) Altre informazioni facoltative
Ci sono due layout per i file PDF: non lineare (non "ottimizzato") e lineare ("ottimizzato"). I file PDF non lineari possono essere più piccoli delle loro controparti lineari, sebbene l'accesso sia più lento perché parti dei dati necessari per assemblare le pagine del documento sono sparse in tutto il file PDF. I file PDF lineari (chiamati anche file PDF "ottimizzati" o "ottimizzati per il Web") sono costruiti in modo da consentirne la lettura in un plug-in del browser Web senza attendere il download dell'intero file, poiché vengono generati in modo lineare (come nell'ordine delle pagine). I file PDF possono essere ottimizzati utilizzando il software Adobe Acrobat o QPDF.
Differenze rispetto a PostScript
Il PDF eredita molte delle funzionalità del PostScript, un linguaggio di descrizione della pagina anch'esso sviluppato da Adobe. Postscript permette di descrivere una pagina come il risultato di un'esecuzione di un programma, che contiene istruzioni su come e dove disegnare linee, punti, lettere dell'alfabeto e altri elementi grafici. In questo modo, ogni apparecchio capace di eseguire il programma (ossia, che abbia un interprete Postscript), sarà in grado di riprodurre tale immagine al meglio delle sue capacità. Questo processo, tuttavia, richiede grandi risorse da parte del terminale.
PDF, invece, è un formato, non un linguaggio di programmazione, e per questo motivo non ha bisogno di essere interpretato (per i dettagli vedi Linguaggio compilato e Linguaggio interpretato). Per esempio, il controllo di flusso esercitato dai comandi come if e loop è stato rimosso, mentre comandi grafici come lineto rimangono.
Questo significa che il processo di creare o trasformare un PDF nella sua immagine grafica è semplicemente dato dalla lettura delle descrizioni, invece che dall'esecuzione di un programma con l'interprete PostScript. Tutte le funzionalità del PostScript come i caratteri, layout e misure rimangono invariate.
Spesso il codice PDF è generato da un file sorgente PostScript. I comandi grafici che vengono generati dal codice PostScript vengono raccolti così come tutti i file, risorse grafiche e riferimenti di caratteri nel documento e, finalmente, tutto viene compresso in un singolo file.
Come linguaggio di documenti, il PDF ha molti vantaggi rispetto al PostScript: Un singolo file: Un documento PDF consta di un singolo file, mentre in PostScript un documento può necessitare di essere rappresentato da molti file (grafica ecc.) che probabilmente occupano più spazio. Già interpretato: PDF ha un contenuto già interpretato, cosicché richiede meno costi computazionali e la sua apertura è più veloce, oltre al fatto che c'è una corrispondenza diretta tra i cambiamenti degli oggetti nella descrizione della pagina PDF e cambiamenti nel rendering risultante. Trasparenza degli oggetti: Il PDF (a partire dalla versione 1.4) supporta la trasparenza reale degli oggetti, caratteristica che invece non è supportata nel formato PostScript. Sostituzione dei caratteri: Se viene visualizzato con Adobe Reader, una strategia di sostituzione dei caratteri assicura che il documento sia leggibile nonostante l'assenza sul sistema dell'utente dei font "corretti". PDF garantisce che vengano visualizzati font sostitutivi affini a quello mancante. Mentre questo è possibile con PostScript, questi file non possono essere normalmente distribuiti per accordi di licenza dei font. Pagine indipendenti: PostScript è un linguaggio di programmazione, così le istruzioni su una pagina possono influenzare la visualizzazione di pagine seguenti. È pertanto necessario interpretare tutte le pagine precedenti per determinare l'aspetto di ogni pagina data. In PDF, invece, ogni pagina del documento non viene influenzata dalle altre.
Caratteristiche
Può contenere qualsiasi combinazione di testo, elementi multimediali come video o audio, elementi ipertestuali come collegamenti e segnalibri, collegamenti e miniature di pagine. I file PDF non perdono la formattazione quando vengono inviati ad altri utenti, come nel caso dell'invio di documenti di testo (pagine disordinate, paragrafi ingombranti, ecc.). È uno dei formati più diffusi su Internet per lo scambio di documenti. Pertanto, è ampiamente utilizzato da aziende, governi e istituzioni educative. È una specifica aperta, per la quale sono stati adattati strumenti software commerciali come Microsoft Office e WordPerfect Office suite e altri creati in software gratuito che consentono di creare, visualizzare o modificare documenti in formato PDF, come Openoffice.org, LibreOffice e Calligra Suite e il sistema di composizione del testo LaTeX. Può essere crittografato per proteggere il suo contenuto e persino firmarlo digitalmente. Un file PDF può essere creato da diverse applicazioni esportando il file, come Openoffice.org e Microsoft Office (a partire dal 2007, se aggiornato a SP2).