Formato di documento portatile

Il Portable Document Format ( PDF ) è un formato di file utilizzato per presentare i documenti in modo indipendente dal software applicativo , dall’hardware e dai sistemi operativi . [3]Ogni file PDF racchiude una descrizione completa di un documento piatto a layout fisso, inclusi testo, caratteri , grafica e altre informazioni necessarie per visualizzarlo.

Storia e standardizzazione

Articolo principale: Storia e standardizzazione del Portable Document Format

Il PDF è stato sviluppato all’inizio degli anni ’90 [4] come un modo per condividere documenti informatici, tra cui la formattazione del testo e le immagini in linea. [5] E ‘stato tra un certo numero di formati concorrenti quali DjVu , Envoy , Carta Common Ground digitale, Farallon Replica e anche Adobe proprio s’ PostScript formato. In quei primi anni prima dell’ascesa del World Wide Web e dei documenti HTML , il PDF era popolare soprattutto nei flussi di lavoro di desktop publishing . Adobe Systems ha reso le specifiche PDF disponibili gratuitamente nel 1993. Il PDF era un formato proprietario controllato da Adobe, fino a quando non è stato ufficialmente rilasciato comestandard aperto il 1 luglio 2008 e pubblicato dall’Organizzazione internazionale per la standardizzazione come ISO 32000-1: 2008, [6] [7], momento in cui il controllo delle specifiche è passato a un comitato ISO di esperti del settore volontario. Nel 2008, Adobe ha pubblicato una Licenza di Brevetto Pubblico alla ISO 32000-1 che concede diritti di royalty per tutti i brevetti di proprietà di Adobe necessari per creare, utilizzare, vendere e distribuire implementazioni conformi a PDF. [8]

PDF 1.7 include alcune tecnologie proprietarie definite solo da Adobe, come Adobe XML Forms Architecture (XFA) e l’ estensione JavaScript per Acrobat, che sono referenziate da ISO 32000-1 come normative e indispensabili per l’applicazione della specifica ISO 32000-1. Queste tecnologie proprietarie non sono standardizzate e le loro specifiche sono pubblicate solo sul sito Web di Adobe. [9] [10] [11] [12] [13] Molti di questi non sono supportati dalle popolari implementazioni di PDF di terze parti.

Il 28 luglio 2017, ISO 32000-2 è stato pubblicato dall’ISO. ISO 32000-2 non include tecnologie proprietarie come riferimenti normativi. [14]

Fondamenti tecnici

Il PDF combina tre tecnologie:

  • Un sottoinsieme del linguaggio di programmazione della descrizione della pagina PostScript , per generare il layout e la grafica.
  • Un sistema di inserimento / sostituzione di font per consentire ai caratteri di viaggiare con i documenti.
  • Un sistema di archiviazione strutturato per raggruppare questi elementi e qualsiasi contenuto associato in un singolo file, con la compressione dei dati laddove appropriato.

PostScript

PostScript è un linguaggio di descrizione della pagina eseguito in un interprete per generare un’immagine, un processo che richiede molte risorse. Può gestire grafica e funzioni standard di linguaggi di programmazione come ifloopcomandi. Il PDF è in gran parte basato su PostScript, ma semplificato per rimuovere funzionalità di controllo del flusso come queste, mentre i comandi grafici come linetorimangono.

Spesso, il codice PDF simile a PostScript viene generato da un file PostScript di origine. I comandi grafici che vengono generati dal codice PostScript vengono raccolti e tokenizzati . Vengono raccolti tutti i file, i grafici o i caratteri a cui si riferisce il documento. Quindi, tutto viene compresso in un singolo file. Pertanto, l’intero mondo PostScript (tipi di carattere, layout, misure) rimane intatto.

Come formato di documento, PDF presenta diversi vantaggi rispetto a PostScript:

  • PDF contiene risultati tokenizzati e interpretati del codice sorgente PostScript, per la corrispondenza diretta tra le modifiche agli elementi nella descrizione della pagina PDF e le modifiche all’aspetto della pagina risultante.
  • PDF (dalla versione 1.4) supporta la trasparenza grafica ; PostScript no.
  • PostScript è un linguaggio di programmazione interpretato con uno stato globale implicito, pertanto le istruzioni che accompagnano la descrizione di una pagina possono influire sull’aspetto di qualsiasi pagina successiva. Pertanto, tutte le pagine precedenti in un documento PostScript devono essere elaborate per determinare l’aspetto corretto di una determinata pagina, mentre ciascuna pagina in un documento PDF non è influenzata dalle altre. Di conseguenza, i visualizzatori di PDF consentono all’utente di passare velocemente alle pagine finali di un documento lungo, mentre un visualizzatore PostScript deve elaborare tutte le pagine in sequenza prima di poter visualizzare la pagina di destinazione (a meno che le convenzioni di strutturazione del documento PostScript opzionali siano state attentamente rispettato).

Panoramica tecnica

Struttura del file

Un file PDF è un file ASCII a 7 bit , ad eccezione di alcuni elementi che possono avere contenuti binari. Un file PDF inizia con un’intestazione contenente il numero magico e la versione del formato come %PDF-1.7. Il formato è un sottoinsieme di un formato COS (“Struttura a carosello”). [15] Un file dell’albero COS consiste principalmente di oggetti , di cui esistono otto tipi: [16]

  • Valori booleani , che rappresentano vero o falso
  • Numeri
  • Le stringhe , racchiuse tra parentesi ( (...)), possono contenere caratteri a 8 bit.
  • Nomi, iniziando con una barra ( /)
  • Array , raccolte ordinate di oggetti racchiusi tra parentesi quadre ( [...])
  • Dizionari , raccolte di oggetti indicizzati da nomi racchiusi tra parentesi doppie ( <<...>>)
  • Stream , solitamente contenenti grandi quantità di dati, che possono essere compressi e binari
  • L’ oggetto nullo

Inoltre, potrebbero esserci 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 objendobj. Una tabella indice, detta anche tabella di riferimenti incrociati e contrassegnata con la xrefparola chiave, segue il corpo principale e fornisce l’offset di byte di ciascun oggetto indiretto dall’inizio del file. [17] 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). A partire dalla versione 1.5 del PDF, gli oggetti indiretti possono anche trovarsi in flussi speciali noti come flussi di oggetti . Questa tecnica riduce la dimensione dei file che hanno un grande numero di piccoli oggetti indiretti ed è particolarmente utile per Tagged PDF .

Alla fine di un file PDF è un trailer introdotto con la trailerparola chiave. Contiene

  • Un dizionario
  • Un offset all’inizio della tabella dei riferimenti incrociati (la tabella che inizia con la xrefparola chiave)
  • E il marker di %%EOF fine del file .

Il dizionario contiene

  • Un riferimento all’oggetto root della struttura ad albero, noto anche come catalogo
  • Il conteggio degli oggetti indiretti nella tabella dei riferimenti incrociati
  • E altre informazioni opzionali.

Ci sono due layout per i file PDF: non lineare (non “ottimizzato”) e lineare (“ottimizzato”). I file PDF non lineari consumano meno spazio su disco rispetto alle loro controparti lineari, sebbene siano più lenti da accedere perché le 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 essere letti in un plug-in del browser Web senza attendere che l’intero file venga scaricato, poiché vengono scritti su disco in un moda lineare (come in ordine di pagina). [18] I file PDF possono essere ottimizzati utilizzando Adobe Acrobat o QPDF .

Modello di imaging

Il design di base di come la grafica è rappresentata in PDF è molto simile a quella di PostScript, fatta eccezione per l’uso della trasparenza , che è stato aggiunto in PDF 1.4.

La grafica PDF utilizza un sistema di coordinate cartesiane indipendente dal dispositivo per descrivere la superficie di una pagina. Una descrizione di una pagina PDF può utilizzare una matrice per ridimensionare , ruotare o inclinare gli elementi grafici. Un concetto chiave in PDF è quello dello stato grafico , che è una raccolta di parametri grafici che possono essere modificati, salvati e ripristinati da una descrizione di pagina . PDF ha (a partire dalla versione 1.6) 24 proprietà dello stato grafico, di cui alcune delle più importanti sono:

  • L’ attuale matrice di trasformazione (CTM), che determina il sistema di coordinate
  • Il tracciato di ritaglio
  • Lo spazio colore
  • La costante alfa , che è un componente chiave della trasparenza

Grafica vettoriale

Come in PostScript, la grafica vettoriale in PDF è costruita con percorsi . I tracciati di solito sono composti da linee e curve cubiche di Bézier , ma possono anche essere costruiti a partire dai contorni del testo. A differenza di PostScript, PDF non consente un singolo percorso per mescolare i contorni di testo con linee e curve. I percorsi possono essere accarezzati, riempiti, ritagliati . Tratti e riempimenti possono utilizzare qualsiasi set di colori nello stato grafico, inclusi i motivi .

PDF supporta diversi tipi di modelli. Il più semplice è il modello di piastrellatura in cui è specificato che un disegno viene disegnato ripetutamente. Può trattarsi di un motivo di affiancamento colorato , con i colori specificati nell’oggetto del motivo o un motivo di affiancamento non colorato , che rimanda le specifiche del colore al momento in cui viene disegnato il disegno. A partire dal PDF 1.3 c’è anche un pattern di ombreggiatura , che disegna continuamente colori variabili. Esistono sette tipi di pattern di ombreggiatura di cui i più semplici sono la tonalità assiale (Tipo 2) e la tonalità radiale (Tipo 3).

Immagini raster

Le immagini raster in PDF (chiamate Image XObjects ) sono rappresentate da dizionari con uno stream associato. Il dizionario descrive le proprietà dell’immagine e il flusso contiene i dati dell’immagine. (Meno comunemente, un’immagine raster può essere incorporata direttamente nella descrizione di una pagina come immagine in linea .) Le immagini vengono generalmente filtrate a scopo di compressione. I filtri di immagine supportati in PDF includono i filtri generici

  • ASCII85Decode un filtro usato per mettere lo stream in ASCII a 7 bit
  • ASCIIHexDecode simile a ASCII85Decode ma meno compatto
  • FlateDecode un filtro comunemente usato basato sull’algoritmo di deflate definito in RFC 1951 (lo sdoppiamento viene utilizzato anche nei formati di file gzip , PNG e zip tra gli altri); introdotto in PDF 1.2; può utilizzare uno dei due gruppi di funzioni predittive per una compressione zlib / deflate più compatta: Predictor 2 dalla specifica TIFF 6.0 e predittori (filtri) dalla specifica PNG ( RFC 2083 )
  • LZWDice un filtro basato sulla compressione LZW ; può utilizzare uno dei due gruppi di funzioni predittive per una compressione LZW più compatta: Predictor 2 dalla specifica TIFF 6.0 e predittori (filtri) dalle specifiche PNG
  • RunLengthDecode un metodo di compressione semplice per flussi con dati ripetitivi utilizzando l’ algoritmo di codifica run-length e i filtri specifici per l’immagine
  • DCTDecode un filtro lossy basato sullo standard JPEG
  • CCITTFaxDecode un filtro a due livelli senza perdita (nero / bianco) basato sullo standard di compressione fax CCITT (ITU-T) Gruppo 3 o Gruppo 4 definito in ITU-T T.4 e T.6
  • JBIG2Decode un filtro bi-level (nero / bianco) a perdita o senza perdita basato sullo standard JBIG2 , introdotto in PDF 1.4
  • JPXDecode un filtro lossy o lossless basato sullo standard JPEG 2000 , introdotto in PDF 1.5

Normalmente tutto il contenuto dell’immagine in un PDF è incorporato nel file. Ma il PDF consente di archiviare i dati delle immagini in file esterni mediante l’uso di flussi esterni o immagini alternative . Sottoinsiemi di PDF standardizzati, tra cui PDF / A e PDF / X , vietano queste funzionalità.

Testo

Il testo in PDF è rappresentato da elementi di testo nei flussi di contenuto della pagina. Un elemento di testo specifica che i caratteri devono essere disegnati in determinate posizioni. I caratteri vengono specificati utilizzando la codifica di una risorsa font selezionata .

Caratteri

Un oggetto font in PDF è una descrizione di un carattere tipografico digitale . Può descrivere le caratteristiche di un carattere tipografico oppure può includere un file di carattere incorporato . Il secondo caso è chiamato carattere incorporato mentre il primo è chiamato carattere non incorporato . I file di font che possono essere incorporati sono basati su formati di font digitali standard ampiamente utilizzati: Type 1 (e la sua variante CFF compresso ), TrueType e (a partire da PDF 1.6) OpenType . Inoltre, PDF supporta la variante di tipo 3 in cui i componenti del carattere sono descritti dagli operatori grafici PDF.

Caratteri standard tipo 1 (caratteri standard 14)

Quattordici caratteri tipografici, noti come 14 caratteri standard , hanno un significato speciale nei documenti PDF:

  • Times (v3) (in corsivo normale, corsivo, grassetto e grassetto)
  • Corriere (in obliquo regolare, obliquo, grassetto e audace)
  • Helvetica (v3) (in obliquo regolare, obliquo, grassetto e grassetto)
  • Simbolo
  • Zapf Dingbats

Questi tipi di carattere sono talvolta chiamati i quattordici caratteri di base . [19] Questi font, o caratteri sostitutivi adatti con le stesse metriche, dovrebbero essere disponibili nella maggior parte dei lettori PDF, ma non sono garantiti per essere disponibili nel lettore e possono essere visualizzati correttamente solo se il sistema li ha installati. [20] I caratteri possono essere sostituiti se non sono incorporati in un PDF.

Codifiche

All’interno delle stringhe di testo, i caratteri sono mostrati usando i codici carattere (interi) che si associano ai glifi nel carattere corrente usando una codifica . Esistono numerose codifiche predefinite, tra cui WinAnsi , MacRomane un gran numero di codifiche per le lingue dell’Asia orientale, e un font può avere la propria codifica incorporata. (Sebbene le codifiche WinAnsi e MacRoman derivino dalle proprietà storiche di Windows e Macintoshi sistemi operativi, i font che utilizzano queste codifiche funzionano altrettanto bene su qualsiasi piattaforma.) PDF può specificare una codifica predefinita da usare, la codifica incorporata del font o fornire una tabella di ricerca delle differenze con una codifica predefinita o incorporata (non consigliato con TrueType font). [21] I meccanismi di codifica in PDF sono stati progettati per i font Type 1 e le regole per applicarli ai font TrueType sono complessi.

Per caratteri grandi o tipi di carattere con glifi non standard, vengono utilizzate le codifiche speciali Identity-H (per la scrittura orizzontale) e Identity-V (per la verticale). Con tali caratteri è necessario fornire una tabella ToUnicodese le informazioni semantiche sui caratteri devono essere conservate.

Trasparenza

Il modello di imaging originale del PDF era, come PostScript, opaco : ogni oggetto disegnato sulla pagina sostituiva completamente qualsiasi cosa precedentemente marcata nella stessa posizione. Nel PDF 1.4 il modello di imaging è stato esteso per consentire la trasparenza. Quando si utilizza la trasparenza, i nuovi oggetti interagiscono con oggetti precedentemente contrassegnati per produrre effetti di fusione. L’aggiunta della trasparenza al PDF è stata effettuata mediante nuove estensioni progettate per essere ignorate nei prodotti scritti in PDF 1.3 e nelle specifiche precedenti. Di conseguenza, i file che utilizzano una piccola quantità di trasparenza potrebbero visualizzarli in modo accettabile nei visualizzatori precedenti, ma i file che fanno ampio uso della trasparenza potrebbero essere visualizzati in modo errato in un vecchio visualizzatore senza preavviso.

Le estensioni della trasparenza si basano sui concetti chiave dei gruppi di trasparenza , i metodi di fusione , la forma e l’ alfa . Il modello è strettamente allineato con le caratteristiche di Adobe Illustrator versione 9. Le modalità di fusione erano basate su quelle utilizzate da Adobe Photoshop al momento. Quando è stata pubblicata la specifica PDF 1.4, le formule per il calcolo delle modalità di fusione sono state mantenute segrete da Adobe. Da allora sono stati pubblicati. [22]

Il concetto di un gruppo di trasparenza nelle specifiche PDF è indipendente dalle nozioni esistenti di “gruppo” o “livello” in applicazioni come Adobe Illustrator. Questi raggruppamenti riflettono le relazioni logiche tra oggetti che sono significativi quando si modificano quegli oggetti, ma non fanno parte del modello di imaging.

Elementi interattivi

I file PDF possono contenere elementi interattivi quali annotazioni, campi modulo, video, 3D e rich media.

Rich Media PDF è un termine utilizzato per descrivere un file PDF che include contenuto interattivo che può essere incorporato o collegato all’interno del file.

Interactive Forms è un meccanismo per aggiungere moduli al formato di file PDF.

PDF attualmente supporta due diversi metodi per l’integrazione di dati e moduli PDF. Entrambi i formati oggi coesistono nelle specifiche PDF: [23] [24] [25] [26]

  • AcroForms (noto anche come moduli Acrobat ), introdotto nelle specifiche del formato PDF 1.2 e incluso in tutte le specifiche PDF successive.
  • Moduli Adobe XML Forms Architecture (XFA) , introdotti nelle specifiche del formato PDF 1.5. I moduli Adobe XFA non sono compatibili con AcroForms. [27] XFA è stato ritirato dal PDF con PDF 2.0.

AcroForms

Gli AcroForms sono stati introdotti nel formato PDF 1.2. AcroForms consente di utilizzare oggetti ( ad es. Caselle di testo , pulsanti di opzione , ecc. ) E alcuni codici ( ad es. JavaScript ).

Accanto ai tipi di azione PDF standard, i moduli interattivi (AcroForms) supportano l’invio, il ripristino e l’importazione dei dati. L’azione “invia” trasmette i nomi e i valori dei campi modulo interattivi selezionati a un URL (resource resource locator) uniforme specificato. I nomi e i valori dei campi di moduli interattivi possono essere inviati in uno dei seguenti formati, (a seconda delle impostazioni dei flag ExportFormat, SubmitPDF e XFDF dell’azione): [23]

  • Formato HTML del modulo (HTML 4.01 Specifica dal PDF 1.5, HTML 2.0 dal 1.2)
  • Form Data Data Format (FDF)
  • XML Forms Data Format (XFDF) (XML esterno Formato di dati in formato XML, versione 2.0, supportato dal PDF 1.5, ha sostituito il formato di invio del modulo “XML” definito in PDF 1.4)
  • PDF (è possibile inviare l’intero documento anziché singoli campi e valori). (definito in PDF 1.4)

AcroForms può mantenere i valori dei campi modulo in file standalone esterni contenenti coppie chiave: valore. I file esterni possono utilizzare i file Form Data Format (FDF) e XML Forms Data Format (XFDF). [28] [29] [30] Le firme dei diritti di utilizzo (UR) definiscono i diritti per i file di dati del modulo di importazione nei formati FDF, XFDF e testo ( CSV / TSV ) ed esportano i file di dati dei moduli nei formati FDF e XFDF. [23]

Forms Data Format (FDF)

Il formato FDF (Forms Data Format) è basato su PDF, utilizza la stessa sintassi e ha essenzialmente la stessa struttura di file, ma è molto più semplice di PDF, poiché il corpo di un documento FDF è costituito da un solo oggetto richiesto. Il formato dei dati dei moduli è definito nelle specifiche PDF (dal PDF 1.2). Il formato dati dei moduli può essere utilizzato quando si inviano i dati del modulo a un server, si riceve la risposta e si incorpora nel modulo interattivo. Può anche essere utilizzato per esportare i dati del modulo in file autonomi che possono essere importati nuovamente nel modulo interattivo PDF corrispondente.

A partire dal PDF 1.3, FDF può essere utilizzato per definire un contenitore per annotazioni separate dal documento PDF a cui si applicano. FDF tipicamente incapsula informazioni come certificati X.509 , richieste di certificati, impostazioni di directory, impostazioni di data e ora e file PDF incorporati per la trasmissione di rete. [30] FDF usa l’applicazione del tipo di contenuto MIME / vnd.fdf, l’estensione del file .fdf e su Mac OS utilizza il tipo di file “FDF”. [23]

XML Forms Data Format (XFDF)

XML Forms Data Format (XFDF) è la versione XML di Forms Data Format, ma XFDF implementa solo un sottoinsieme di FDF contenente form e annotazioni. Non ci sono equivalenti XFDF per alcune voci nel dizionario FDF, come lo stato, la codifica, JavaScript, i tasti Pages, EmbeddedFDF, Differenze e Target. Inoltre, XFDF non consente la generazione o l’aggiunta di nuove pagine in base ai dati forniti; come si può fare quando si utilizza un file FDF. La specifica XFDF è referenziata (ma non inclusa) nelle specifiche PDF 1.5 (e nelle versioni successive). Viene descritto separatamente nella specifica del formato dati dei moduli XML . [29]Le specifiche PDF 1.4 consentivano l’invio di moduli in formato XML, ma questo è stato sostituito da presentazioni in formato XFDF nella specifica PDF 1.5. XFDF è conforme allo standard XML.

A partire da dicembre 2016, XFDF 3.0 è uno standard ISO / IEC con il nome formale ISO 19444-1: 2016 – Gestione documenti – Formato dati moduli XML – Parte 1: Uso di ISO 32000-2 (XFDF 3.0) . [34] Questo standard è un riferimento normativo ISO 32000-2.

XFDF può essere usato allo stesso modo di FDF; ad esempio, i dati del modulo vengono inviati a un server, vengono apportate modifiche, quindi inviate indietro e i nuovi dati del modulo vengono importati in un modulo interattivo. Può anche essere utilizzato per esportare i dati del modulo in file autonomi che possono essere importati nuovamente nel modulo interattivo PDF corrispondente.

Adobe XML Forms Architecture (XFA)

In PDF 1.5, Adobe Systems ha introdotto un formato proprietario per i moduli; Adobe XML Forms Architecture (XFA). I moduli Adobe XFA non sono compatibili con la funzionalità AcroForms di ISO 32000 e la maggior parte dei processori PDF non gestisce il contenuto XFA. La specifica XFA fa riferimento a ISO 32000-1 / PDF 1.7 come specifica proprietaria esterna ed è stata interamente deprecata dal PDF con ISO 32000-2 (PDF 2.0).

Struttura logica e accessibilità

Un PDF “taggato” (vedere la clausola 14.8 in ISO 32000) include informazioni sulla struttura del documento e sulla semantica per consentire l’estrazione e l’accessibilità del testo affidabili. Tecnicamente parlando, il PDF con tag è un uso stilizzato del formato che si basa sulla struttura della struttura logica introdotta in PDF 1.3. PDF con tag definisce un set di tipi di strutture e attributi standard che consentono di estrarre e riutilizzare il contenuto della pagina (testo, grafica e immagini) per altri scopi. [35]

PDF con tag non è richiesto in situazioni in cui un file PDF è destinato solo per la stampa. Poiché la funzione è facoltativa e poiché le regole per Tagged PDF erano relativamente vaghe in ISO 32000-1, il supporto per i PDF con tag tra i dispositivi che consumano, compresa la tecnologia di assistenza (AT), non è uniforme in questo momento. [36] ISO 32000-2, tuttavia, include una discussione migliorata sul PDF con tag, che è previsto per facilitare

Un sottoinsieme di PDF standardizzato ISO specificamente mirato all’accessibilità; PDF / UA , è stato pubblicato per la prima volta nel 2012.

Gruppi di contenuti opzionali (livelli)

Con l’introduzione della versione PDF 1.5 (2003) è nato il concetto di Layers. I livelli, o come sono OCG (Optional Content Groups) più formalmente noti, si riferiscono a sezioni di contenuto in un documento PDF che possono essere visualizzate o nascoste in modo selettivo da autori di documenti o consumatori. Questa funzionalità è utile nei disegni CAD, nei disegni a strati, nelle mappe, nei documenti multilingue ecc. Fondamentalmente, consiste in un dizionario delle proprietà del contenuto opzionale aggiunto alla radice del documento. Questo dizionario contiene una serie di gruppi di contenuti opzionali (OCG), ciascuno dei quali descrive un insieme di informazioni e ognuno dei quali può essere visualizzato o soppresso singolarmente, oltre a un set di Dizionari di configurazione del contenuto facoltativo, che forniscono lo stato (visualizzato o soppresso) del dati gli OCG.

Sicurezza e firme

Un file PDF può essere crittografato per sicurezza o firmato digitalmente per l’autenticazione. Tuttavia, da quando è stata scoperta una collisione SHA-1 facendo uso del formato PDF, le firme digitali che utilizzano SHA-1 si sono dimostrate insicure. [37]

La sicurezza standard fornita da Acrobat PDF consiste in due metodi diversi e due password diverse: una password utente , che crittografa il file e impedisce l’apertura e una password del proprietario , che specifica le operazioni che dovrebbero essere limitate anche quando il documento è decodificato, che può include la modifica, la stampa o la copia di testo e grafica dal documento, o l’aggiunta o la modifica di note di testo e campi AcroForm . La password dell’utente crittografa il file, mentre la password del proprietario non lo fa, affidandosi invece al software client per rispettare queste restrizioni. Una password del proprietario può essere facilmente rimossa dal software, inclusi alcuni servizi online gratuiti. [38]Pertanto, le restrizioni sull’uso che un autore di un documento colloca su un documento PDF non sono sicure e non possono essere garantite una volta che il file è stato distribuito; questo avviso viene visualizzato quando si applicano tali restrizioni utilizzando il software Adobe Acrobat per creare o modificare file PDF.

Anche senza rimuovere la password, la maggior parte dei lettori PDF freeware o open source ignorano l’autorizzazione “protezioni” e consentono all’utente di stampare o fare copie di estratti del testo come se il documento non fosse limitato dalla protezione tramite password. [39] [40] [41]

Esistono numerose soluzioni commerciali che offrono mezzi più solidi per la gestione dei diritti informativi . Non solo possono limitare l’accesso ai documenti ma anche implementare in modo affidabile le autorizzazioni in modi diversi dal gestore di sicurezza standard. [42]

Diritti di utilizzo

A partire dal PDF 1.5, le firme dei diritti di utilizzo (UR) vengono utilizzate per abilitare funzionalità interattive aggiuntive che non sono disponibili per impostazione predefinita in una particolare applicazione di visualizzazione PDF. La firma viene utilizzata per verificare che le autorizzazioni siano state concesse da un’autorità concedente in buona fede . Ad esempio, può essere utilizzato per consentire a un utente: [23]

  • Per salvare il documento PDF insieme al modulo modificato e / o ai dati di annotazione
  • Importa i file di dati dei moduli nei formati FDF, XFDF e testo (CSV / TSV)
  • Esportare i file di dati dei moduli nei formati FDF e XFDF
  • Invia i dati del modulo
  • Istanziare nuove pagine dai modelli di pagina con nome
  • Applica una firma digitale al campo modulo della firma digitale esistente
  • Creare, eliminare, modificare, copiare, importare ed esportare annotazioni

Ad esempio, Adobe Systems concede le autorizzazioni per abilitare funzionalità aggiuntive in Adobe Reader, utilizzando la crittografia a chiave pubblica . Adobe Reader verifica che la firma utilizzi un certificato di un’autorità di certificazione autorizzata da Adobe. Qualsiasi applicazione PDF può utilizzare questo stesso meccanismo per i propri scopi. [23]

File allegati

I file PDF possono avere file allegati a cui i processori possono accedere e aprire o salvare su un filesystem locale.

Metadati

I file PDF possono contenere due tipi di metadati. [43] Il primo è il dizionario delle informazioni sul documento, un insieme di campi chiave / valore come autore, titolo, soggetto, creazione e date di aggiornamento. Questo è memorizzato nel trailer Info opzionale del file. Un piccolo insieme di campi è definito e può essere esteso con valori di testo aggiuntivi, se necessario. Questo metodo è deprecato in PDF 2.0.

Nel PDF 1.4, è stato aggiunto il supporto per i flussi di metadati, utilizzando l’ XMP ( Extensible Metadata Platform ) per aggiungere metadati estensibili basati su standard XML utilizzati in altri formati di file. Ciò consente ai metadati di essere collegati a qualsiasi flusso nel documento, ad esempio informazioni sulle illustrazioni incorporate, nonché all’intero documento (allegato al catalogo documenti), utilizzando uno schema estensibile.

Proprietà intellettuale

Chiunque può creare applicazioni in grado di leggere e scrivere file PDF senza dover pagare royalties ad Adobe Systems ; Adobe detiene i brevetti in PDF, ma li concede in licenza per l’ utilizzo senza royalty nello sviluppo di software conforme alle specifiche PDF. [44]

Problemi tecnici

Accessibilità

I file PDF possono essere creati appositamente per essere accessibili ai disabili. [45] [46] [47] [48] [49] I formati di file PDF in uso a partire dal 2014 possono includere tag, equivalenti testuali, didascalie, descrizioni audio e altro. Alcuni software possono produrre automaticamente PDF con tag, ma questa funzione non è sempre abilitata per impostazione predefinita. [50] [51] I principali lettori di schermo , inclusi JAWS , Window-Eyes , Hal e Kurzweil 1000 e 3000possono leggere PDF con tag. [52] [53]Inoltre, i PDF taggati possono essere ritrasmessi e ingranditi per i lettori con disabilità visive. L’aggiunta di tag a PDF precedenti e quelli generati da documenti scansionati può presentare alcune sfide.

Una delle principali sfide con l’accessibilità PDF è che i documenti PDF hanno tre viste distinte, che, a seconda della creazione del documento, possono essere incoerenti tra loro. Le tre viste sono (i) la vista fisica, (ii) la vista dei tag e (iii) la vista del contenuto. La vista fisica viene visualizzata e stampata (ciò che la maggior parte delle persone considera un documento PDF). La visualizzazione dei tag è ciò che gli screen reader e altre tecnologie assistive utilizzano per offrire un’esperienza di navigazione e di lettura di alta qualità agli utenti con disabilità. La visualizzazione del contenuto si basa sull’ordine fisico degli oggetti all’interno del flusso di contenuti del PDF e può essere visualizzata da un software che non supporta completamente la visualizzazione dei tag, come ad esempio la funzione Ridisponi in Adobe Reader.

PDF / UA , lo standard internazionale per PDF accessibile basato su ISO 32000-1 è stato pubblicato per la prima volta come ISO 14289-1 nel 2012 e stabilisce un linguaggio normativo per la tecnologia PDF accessibile.

Virus e exploit

Vedi anche: Sicurezza di Adobe Acrobat §

Gli allegati PDF contenenti virus sono stati scoperti per la prima volta nel 2001. Il virus, denominato OUTLOOK.PDFWorm o Peachy , utilizza Microsoft Outlook per inviare se stesso come allegato a un file Adobe PDF. È stato attivato con Adobe Acrobat, ma non con Acrobat Reader. [54]

Di volta in volta, vengono scoperte nuove vulnerabilità in varie versioni di Adobe Reader, [55]inducendo la società a emettere dei fix di sicurezza. Anche altri lettori di PDF sono suscettibili. Un fattore aggravante è che un lettore PDF può essere configurato per l’avvio automatico se una pagina Web ha un file PDF incorporato, fornendo un vettore per l’attacco. Se una pagina Web dannosa contiene un file PDF infetto che sfrutta una vulnerabilità nel lettore PDF, il sistema potrebbe essere compromesso anche se il browser è sicuro. Alcune di queste vulnerabilità sono il risultato dello standard PDF che consente ai documenti PDF di essere scriptati con JavaScript. La disattivazione dell’esecuzione di JavaScript nel lettore PDF può aiutare a mitigare tali exploit futuri, sebbene non protegga dagli exploit in altre parti del software di visualizzazione PDF. Gli esperti di sicurezza dicono che JavaScript non è essenziale per un lettore PDF,[56] Un modo per evitare gli exploit di file PDF è quello di convertire i file locali in un altro formato in un altro formato prima della visualizzazione.

Il 30 marzo 2010, il ricercatore di sicurezza Didier Stevens ha segnalato un exploit di Adobe Reader e Foxit Reader che esegue un eseguibile malevolo se l’utente lo consente di avviarsi quando richiesto. [57]

Restrizioni d’uso e monitoraggio

I PDF possono essere crittografati in modo tale che sia necessaria una password per visualizzare o modificare i contenuti. PDF 2.0 definisce la crittografia AES a 256 bit come standard per i file PDF 2.0. Il Riferimento PDF definisce anche i modi in cui terze parti possono definire i propri sistemi di crittografia per PDF.

I file PDF possono essere firmati digitalmente; i dettagli completi sull’implementazione delle firme digitali in PDF sono forniti in ISO 32000-2.

I file PDF possono anche contenere restrizioni DRM incorporate che forniscono ulteriori controlli che limitano la copia, la modifica o la stampa. Queste restrizioni dipendono dal software del lettore per obbedirle, quindi la sicurezza che forniscono è limitata.

Impostazioni di visualizzazione predefinite

I documenti PDF possono contenere impostazioni di visualizzazione, incluso il layout di visualizzazione della pagina e il livello di zoom. Adobe Reader utilizza queste impostazioni per sovrascrivere le impostazioni predefinite dell’utente all’apertura del documento. [58] Adobe Reader gratuito non può rimuovere queste impostazioni.

Contenuto

Un file PDF è spesso una combinazione di grafica vettoriale , testo e grafica bitmap . I tipi base di contenuti in un PDF sono:

  • Testo memorizzato come flussi di contenuto (cioè, non testo)
  • Grafica vettoriale per illustrazioni e disegni composti da forme e linee
  • Grafica raster per fotografie e altri tipi di immagini
  • Oggetti multimediali nel documento

Nelle revisioni PDF successive, un documento PDF può anche supportare collegamenti (all’interno di documenti o pagine Web), moduli, JavaScript (inizialmente disponibili come plug-in per Acrobat 3.0) o qualsiasi altro tipo di contenuto incorporato che può essere gestito utilizzando i plug-in.

PDF 1.6 supporta documenti 3D interattivi incorporati nel PDF – I disegni 3D possono essere incorporati utilizzando U3D o PRC e vari altri formati di dati. [59] [60]

Due file PDF che sembrano simili sullo schermo di un computer possono avere dimensioni molto diverse. Ad esempio, un’immagine raster ad alta risoluzione richiede più spazio di una a bassa risoluzione. Solitamente è necessaria una risoluzione più alta per la stampa di documenti rispetto alla visualizzazione sullo schermo. Altre cose che possono aumentare le dimensioni di un file sono l’incorporamento di caratteri completi, specialmente per gli script asiatici e l’archiviazione del testo come grafica.

Software

Per ulteriori dettagli su questo argomento, vedere Elenco del software PDF .

I visualizzatori di PDF sono generalmente forniti gratuitamente e molte versioni sono disponibili da una varietà di fonti.

Esistono molte opzioni software per la creazione di PDF, incluse le funzionalità di stampa PDF integrate in macOS e molte distribuzioni Linux , LibreOffice , Microsoft Office 2007 (se aggiornato a SP2 ) e versioni successive, [61]WordPerfect 9, Scribus , numerosi driver di stampa PDF per Microsoft Windows , il sistema di composizione pdfTeX , gli strumenti DocBook PDF, le applicazioni sviluppate attorno a Ghostscript e Adobe Acrobat stesso così come Adobe InDesign , Adobe FrameMaker ,Adobe Illustrator , Adobe Photoshop . Google suite per ufficio on-line s’ Google Docs consente anche per il caricamento e il salvataggio in PDF.

I processori di immagini raster (RIP) vengono utilizzati per convertire i file PDF in un formato raster adatto per l’imaging su carta e altri supporti in stampanti, macchine da stampa digitali e prestampa in un processo noto come rasterizzazione . I RIP in grado di elaborare PDF includono direttamente Adobe PDF Print Engine [62] di Adobe Systems and Jaws [63] e Harlequin RIP di Global Graphics .

Modifica

Questa sezione ha bisogno di espansione . Puoi aiutareaggiungendo ad esso . (Luglio 2010)

Adobe Illustrator legge e scrive PDF come formato semi-nativo. Con i documenti a più pagine, si apre una finestra di dialogo che consente all’utente di selezionare una singola pagina da modificare. La modifica di paragrafi di testo disturba tipicamente la giustificazione della linea e il paragrafo, in quanto il testo multilinea viene convertito in singole righe. In un documento a più pagine, è possibile ri-salvare solo la pagina che si sta modificando.

Inkscape versione 0.46 e successive consente la modifica di PDF di una singola pagina attraverso una fase di traduzione intermedia che coinvolge Poppler , quindi il documento può essere esportato nuovamente come PDF.

Scribus consente di aprire e modificare PDF multipagina, quindi il documento può essere esportato nuovamente come PDF.

LibreOffice Draw e Apache OpenOffice Draw (utilizzando un plugin PDFimport) possono aprire e modificare PDF multipagina, quindi il documento può essere esportato nuovamente come PDF.

Serif PagePlus può aprire, modificare e salvare i documenti PDF esistenti, nonché pubblicare i documenti creati nel pacchetto.

Enfocus PitStop Pro, un plug-in per Acrobat, consente la modifica manuale e automatica dei file PDF, [64] mentre il browser Enfocus gratuito consente di modificare la struttura di basso livello di un PDF. [65]

Dochub è uno strumento di modifica PDF online gratuito che può essere utilizzato senza acquistare nulla. [66]

Annotazione

Vedi anche: Confronto tra software notetaking

Adobe Acrobat è un esempio di software proprietario che consente all’utente di annotare, evidenziare e aggiungere note ai file PDF già creati. Un’applicazione UNIX disponibile come software libero (sotto la GNU General Public License ) è PDFedit . Un’altra applicazione nativa con licenza GPL per l’ambiente unix è Xournal. Xournal consente di annotare in diversi tipi di carattere e colori, oltre a una regola per evidenziare e evidenziare rapidamente linee di testo o paragrafi. Xournal ha anche uno strumento di riconoscimento della forma per quadrati, rettangoli e cerchi. In Xournal le annotazioni possono essere spostate, copiate e incollate. Il freeware Foxit Reader , disponibile per Microsoft Windows , macOSe Linux , consente di annotare i documenti. PDF-XChange Viewer del software Tracker consente annotazioni e revisioni senza restrizioni nella sua alternativa gratuita. Di Apple ‘s MacOS visualizzatore PDF integrato’ s, Anteprima, fa anche attivare le annotazioni come fa il freeware Skim , con l’interazione di supporto quest’ultima con LaTeX , SyncTeX e pdfsync e l’integrazione con BibDesk software di gestione di riferimento. Gratuito Qiqqa può creare un rapporto di annotazione che riepiloga tutte le annotazioni e le note che si sono fatte attraverso la loro libreria di PDF.

Per l’annotazione mobile, iAnnotate PDF (da Branchfire) e GoodReader (da Aji) consentono l’annotazione dei PDF nonché l’esportazione dei riepiloghi delle annotazioni.

Esistono anche sistemi di annotazione web che supportano l’annotazione in formato PDF e altri documenti, ad esempio A.nnotate , crocodoc , WebNotes.

Nei casi in cui ci si aspetta che i PDF abbiano tutte le funzionalità dei documenti cartacei, è necessaria l’annotazione dell’inchiostro. Alcuni programmi che accettano input di input penna dal mouse potrebbero non essere abbastanza reattivi per l’input della grafia su un tablet. Le soluzioni esistenti sul PC includono PDF Annotator e Qiqqa .

Altro

Esempi di software PDF come servizi online tra cui Scribd per la visualizzazione e l’archiviazione, Pdfvue per l’editing online e Zamzar per la conversione.

Nel 1993 il processore di immagini raster Jaws di Global Graphics è diventato il primo RIP di prestampa di spedizione che ha interpretato il PDF in modo nativo senza conversione in un altro formato. La società ha rilasciato un aggiornamento al proprio RIP Harlequin con la stessa capacità nel 1997. [67]

Agfa-Gevaert ha introdotto e spedito Apogee, il primo sistema di flusso di lavoro di prestampa basato su PDF, nel 1997.

Molte stampanti offset commerciali hanno accettato la presentazione di file PDF pronti per la stampa come fonte di stampa, in particolare il sottoinsieme PDF / X-1a e le varianti degli stessi. [68] La presentazione di file PDF pronti per la stampa sostituisce la necessità problematica di ricevere file di lavoro nativi raccolti.

PDF è stato selezionato come formato metafile “nativo” per Mac OS X , sostituendo il formato PICT del precedente Mac OS classico . Il modello di imaging del livello grafico Quartz si basa sul modello comune per visualizzare PostScript e PDF, che porta al nickname Visualizza PDF . L’applicazione Anteprima può visualizzare i file PDF, così come la versione 2.0 e successive di Safariprogramma di navigazione in rete. Il supporto a livello di sistema per PDF consente alle applicazioni Mac OS X di creare automaticamente documenti PDF, a condizione che supportino l’architettura di stampa standard del sistema operativo. I file vengono quindi esportati nel formato PDF 1.3 in base all’intestazione del file. Quando si acquisisce uno screenshot in Mac OS X dalla 10.0 alla 10.3, l’immagine è stata anche acquisita come PDF; le versioni successive salvano le catture dello schermo come file PNG , anche se questo comportamento può essere reimpostato su PDF se lo si desidera.

Nel 2006 il PDF è stato ampiamente accettato come formato di lavoro di stampa standard nel Summit di stampa Open Source Development Labs . È supportato come formato di lavoro di stampa dal Common Unix Printing Systeme progetti di applicazioni desktop come GNOME , KDE , Firefox , Thunderbird , LibreOffice e OpenOffice sono passati a emettere lavori di stampa in PDF. [69]

Alcune stampanti desktop supportano anche la stampa PDF diretta, che può interpretare i dati PDF senza aiuto esterno. Attualmente, tutte le stampanti compatibili con PDF supportano anche PostScript, ma la maggior parte delle stampanti PostScript non supporta la stampa PDF diretta.

La Free Software Foundation una volta considerava uno dei loro progetti ad alta priorità “sviluppare un set di librerie e programmi liberi, di alta qualità e completamente funzionali che implementano il formato di file PDF e le tecnologie associate allo standard ISO 32000”. [70] [71] Nel 2011, tuttavia, il progetto GNU PDF è stato rimosso dall’elenco di “progetti ad alta priorità” a causa della maturazione della libreria Poppler , [72] che ha goduto di un uso più ampio in applicazioni come Evince con il Ambiente desktop GNOME . Poppler è basato su Xpdf [73] [74]codice base. Ci sono anche librerie di sviluppo commerciale disponibili come elencate in Elenco dei software PDF .

Il progetto Apache PDFBox di Apache Software Foundation è una libreria Java open source per lavorare con i documenti PDF. PDFBox è concesso in licenza con la licenza Apache . [75]