Blog
9 min readMoreFreeTools Team

Come Funzionano Davvero i File PDF: Il Formato Che Ha Cambiato la Condivisione dei Documenti

Scopri gli interni tecnici del formato PDF: struttura, modello a oggetti, font, tabella xref e perché alcuni PDF non sono ricercabili. 900+ parole.

come funzionano i file PDFformato PDF spiegatounire file PDFstruttura file PDFcome unire i PDF

PDF Merge & Split

Lo strumento gratuito citato in questo articolo — provalo direttamente nel browser.

Apri lo strumento

Come Funzionano Davvero i File PDF: Il Formato Che Ha Cambiato la Condivisione dei Documenti

Apri un PDF su Windows, su Mac, su un telefono Android e su un server Linux, e su tutti e quattro appare esattamente uguale. Questa riproducibilità era una volta un risultato ingegneristico straordinario e non è casuale. Il Portable Document Format è stato progettato fin dall'inizio per far sembrare i documenti identici su qualsiasi dispositivo, ovunque. Ma cos'è davvero un PDF? Questo articolo svela gli interni tecnici: il database di oggetti, i content stream, la tabella di riferimento incrociato, le ragioni per cui alcuni PDF non sono ricercabili e perché unire due PDF può a volte raddoppiare la dimensione del file.


Una Breve Storia: Da Camelot allo Standard ISO

Nel 1991, John Warnock, co-fondatore di Adobe Systems, scrisse un memo interno chiamato "The Camelot Project." Il suo obiettivo era ambizioso: creare un formato di file universale che permettesse a chiunque di inviare qualsiasi documento a qualsiasi computer e farlo stampare esattamente come previsto, indipendentemente dal software o dai font installati sul computer del destinatario.

La prima versione pubblica di PDF apparve nel 1993 insieme ad Adobe Acrobat 1.0. L'adozione iniziale fu lenta perché Acrobat Reader non era ancora gratuito e il formato richiedeva una potenza di elaborazione significativa. Adobe rese Reader gratuito nel 1994 e l'adozione iniziò ad accelerare.

Per i primi 15 anni, il PDF fu un formato proprietario Adobe. Questo cambiò il 1° luglio 2008, quando PDF 1.7 fu pubblicato come ISO 32000-1, uno standard internazionale aperto. Una seconda edizione, ISO 32000-2 (PDF 2.0), seguì nel 2017 con nuove funzionalità tra cui metadati di accessibilità migliori, crittografia migliorata e una deprecazione più pulita dei costrutti legacy.


Strumento correlato

PDF Merge & Split

Usalo direttamente nel browser. Nessuna registrazione, nessun download, nessun dato salvato.

Usa lo strumento

Cosa È Davvero un PDF: Un Database di Oggetti Gerarchico

La maggior parte delle persone pensa a un PDF come a un documento o a un'immagine elaborata. Nessuna delle due è del tutto corretta. Un file PDF è un database di oggetti gerarchico memorizzato in un file di testo piatto (o binario). Il file contiene un albero di oggetti numerati e il documento viene assemblato seguendo i riferimenti tra questi oggetti.

I tipi di oggetto all'interno di un PDF includono:

Tipo di Oggetto Scopo
Dizionario Coppie chiave-valore, il blocco base della maggior parte delle strutture
Array Elenco ordinato di oggetti
Stream Blocco di dati binari o compressi (immagini, font, contenuto)
Stringa Dati di testo, letterali o codificati in esadecimale
Numero Valori interi o reali per coordinate e dimensioni
Booleano Flag vero/falso
Nome Identificatori simbolici come /Font o /Page
Null Segnaposto per valori assenti

Ogni pagina, font, immagine, annotazione e campo modulo in un PDF è composto da uno o più di questi oggetti. Quando un visualizzatore PDF apre un file, non lo legge sequenzialmente dall'inizio alla fine. Invece, salta alla fine del file, legge il trailer, individua la tabella di riferimento incrociato (xref) e utilizza quella tabella come indice per trovare esattamente gli oggetti di cui ha bisogno.


Le Quattro Sezioni di Ogni File PDF

Ogni PDF valido ha quattro sezioni, in questo ordine:

%PDF-1.7              ← Intestazione
1 0 obj ... endobj    ← Corpo (molti oggetti)
xref                  ← Tabella di riferimento incrociato
trailer               ← Trailer
%%EOF                 ← Marcatore di fine file

Intestazione: La prima riga di qualsiasi PDF è %PDF-x.y, dove x.y è il numero di versione (ad esempio 1.7 o 2.0).

Corpo: Il corpo è una sequenza di oggetti numerati. Ogni oggetto inizia con N G obj e termina con endobj. Un oggetto pagina, ad esempio, è un dizionario che elenca le dimensioni della pagina, le sue risorse (font e immagini) e un riferimento al suo content stream.

Tabella xref: La tabella xref è un indice a offset di byte a dimensione fissa di ogni oggetto nel file. Poiché gli offset di byte hanno dimensione fissa, un visualizzatore PDF può accedere direttamente a qualsiasi oggetto in microsecondi, anche in un file da 500 MB. Ecco perché i PDF di grandi dimensioni si aprono rapidamente.

Trailer: Il dizionario trailer punta alla tabella xref e all'oggetto catalogo del documento, che è la radice dell'albero degli oggetti.


Perché i PDF Sembrano Uguali Ovunque: L'Eredità PostScript e i Font Incorporati

Il PDF è un discendente diretto di PostScript, il linguaggio di descrizione di pagina di Adobe del 1982. PostScript descrive le pagine come programmi: sequenze di istruzioni che disegnano linee, riempiono forme e posizionano testo a coordinate precise. Il PDF eredita questo modello basato sulle coordinate e indipendente dal dispositivo.

Quando un visualizzatore PDF esegue il rendering del testo, non si basa sui font installati sul computer. Invece, il file PDF stesso contiene un descrittore di font e, di solito, una copia completa o parziale dei dati del font incorporata. Una tipica sequenza di disegno del testo in un content stream PDF si presenta così:

BT
  /F1 12 Tf
  100 700 Td
  (Ciao, mondo) Tj
ET

BT inizia un blocco di testo. /F1 12 Tf seleziona il font F1 a 12 punti. 100 700 Td sposta il cursore del testo alle coordinate (100, 700). (Ciao, mondo) Tj disegna la stringa. ET termina il blocco di testo. Tutte le coordinate sono in punti (1/72 di pollice), misurate dall'angolo in basso a sinistra della pagina.


Perché Alcuni PDF Non Sono Ricercabili: Documenti Scansionati e OCR

Uno scanner non produce testo. Produce un'immagine di una pagina. Quando quell'immagine viene inserita in un contenitore PDF, il file risultante è un PDF che sembra un documento ma contiene zero dati di testo. Ogni "parola" che vedi è solo una raccolta di pixel scuri in un'immagine raster.

Ecco perché non puoi selezionare, copiare o cercare testo in un PDF scansionato. La struttura PDF esiste (intestazione, corpo, xref, trailer), ma il corpo contiene solo oggetti stream immagine, non content stream con operatori di testo.

Per rendere ricercabile un PDF scansionato, è necessario il Riconoscimento Ottico dei Caratteri (OCR). Il software OCR analizza i pattern di pixel nell'immagine, deduce le forme dei caratteri e produce un livello di testo nascosto che viene posizionato dietro l'immagine visibile. La qualità dell'OCR dipende dalla risoluzione della scansione (300 DPI è un minimo comune), dalla chiarezza del font e dall'eventuale inclinazione della pagina durante la scansione.


Versioni PDF e Principali Tappe delle Funzionalità

La specifica PDF si è evoluta significativamente attraverso le versioni:

Versione Anno Aggiunta Principale
PDF 1.0 1993 Versione iniziale con Acrobat 1.0
PDF 1.2 1996 Moduli interattivi (AcroForms)
PDF 1.4 2001 Supporto trasparenza e canale alfa
PDF 1.5 2003 Object stream (compressione migliore), stream xref
PDF 1.6 2004 Contenuto 3D, chiavi di crittografia più grandi
PDF 1.7 2006 Diventato ISO 32000-1 nel 2008
PDF 2.0 2017 ISO 32000-2: accessibilità migliorata, nuova crittografia

PDF 1.4 ha introdotto il modello di trasparenza, permettendo agli oggetti di essere resi con opacità e modalità di fusione. PDF 1.5 ha introdotto gli object stream, che raggruppano molti piccoli oggetti in un singolo stream compresso, riducendo spesso la dimensione del file del 40-60%.


PDF Linearizzati: Visualizzazione Web Rapida

Un PDF standard deve essere scaricato completamente prima che un browser possa visualizzare qualsiasi pagina, perché la tabella di riferimento incrociato è alla fine del file. I PDF linearizzati (chiamati anche "Fast Web View" in Adobe Acrobat) risolvono questo problema ristrutturando il file in modo che tutti gli oggetti necessari per visualizzare la prima pagina appaiano all'inizio.

Un PDF linearizzato ha una speciale tabella di suggerimenti vicino all'inizio del file. Un server web può iniziare a trasmettere il file in streaming, e il browser può eseguire il rendering della pagina 1 prima che sia arrivato il resto del file. Puoi verificare se un PDF è linearizzato cercando il dizionario /Linearized nei primi centinaia di byte del file.


Aggiornamenti Incrementali: Come Funziona la Modifica dei PDF Senza Riscrivere il File

Quando apri un PDF, aggiungi un commento e lo salvi, un'implementazione naive riscriverebbe l'intero file. I PDF utilizzano invece un modello di aggiornamento incrementale. Gli oggetti nuovi e modificati vengono aggiunti alla fine del file, seguiti da una nuova sezione xref e da un nuovo trailer che punta a questi cambiamenti. Il corpo del file originale rimane intatto.

Questo ha due conseguenze. Primo, il salvataggio è veloce: scrivi solo gli oggetti modificati, non l'intero documento. Secondo, il file cresce con ogni modifica perché le versioni precedenti degli oggetti non vengono mai eliminate (a meno che non si esegua un "salva con nome" e riscrittura completa).

Gli aggiornamenti incrementali sono anche il meccanismo alla base delle firme digitali: la firma firma un intervallo di byte specifico del file e qualsiasi modifica successiva al di fuori di quell'intervallo invalida la firma.


Perché Unire i PDF Può Cambiare Inaspettatamente la Dimensione del File

Quando unisci due file PDF, potresti aspettarti che l'output sia approssimativamente la somma delle due dimensioni di input. In pratica, il risultato può essere più grande o più piccolo.

Più grande del previsto è comune quando entrambi i PDF di origine incorporano lo stesso font. Un font da 500 KB incorporato nel file A e lo stesso font da 500 KB incorporato nel file B appariranno entrambi nell'output unito se il programma di unione non deduplica le risorse font. L'output è quindi 1 MB più pesante del necessario.

Più piccolo del previsto può accadere quando entrambi i PDF condividono risorse comuni di grandi dimensioni (come un'immagine di sfondo o un logo aziendale) che possono essere deduplicate, o quando il programma di unione applica una compressione che i file originali non avevano.


Domande Frequenti

Perché alcuni PDF sono così grandi?

La dimensione del PDF dipende dai font incorporati, dalla risoluzione delle immagini, dal numero di pagine e dal fatto che venga utilizzata la compressione degli object stream. Una singola fotografia ad alta risoluzione incorporata a 300 DPI può essere da sola 5-10 MB. I PDF salvati da Microsoft Word o Google Docs includono a volte immagini di anteprima di grandi dimensioni non compresse o dati ridondanti.

Perché non riesco a copiare il testo da alcuni PDF?

Ci sono due motivi. Primo, il PDF può essere un documento scansionato contenente solo immagini raster senza livello di testo. È necessario OCR per estrarre il testo. Secondo, l'autore del PDF potrebbe aver impostato una password di autorizzazione che limita la copia.

Cos'è un PDF/A?

PDF/A è uno standard ISO (ISO 19005) progettato per l'archiviazione a lungo termine. Un file PDF/A deve incorporare tutti i font, non può fare riferimento a risorse esterne, non può utilizzare crittografia, non può utilizzare JavaScript e deve includere metadati specifici. L'obiettivo è che un file PDF/A sia completamente autosufficiente e renderizzabile da software scritto decenni nel futuro, senza dipendenze esterne.

Perché il mio PDF sembra diverso su computer diversi?

La causa più comune è la sostituzione dei font. Se un PDF non incorpora i propri font, il visualizzatore sostituisce il font più simile disponibile. Diverse scelte di sostituzione su sistemi operativi diversi producono diverse interruzioni di riga e diversi layout di pagina. Una seconda causa è l'incompatibilità della versione PDF: un visualizzatore molto vecchio potrebbe non supportare la trasparenza (PDF 1.4) o gli object stream (PDF 1.5).

Qual è la differenza tra la tabella xref e i cross-reference stream?

PDF 1.4 e versioni precedenti utilizzavano una tabella xref in testo normale. PDF 1.5 ha introdotto i cross-reference stream, che memorizzano gli stessi dati di offset di byte in un oggetto stream binario compresso. I cross-reference stream sono più piccoli e possono essere compressi insieme ad altri object stream. I visualizzatori più vecchi che comprendono solo PDF 1.4 non possono leggere i cross-reference stream.


Ora che capisci come sono costruiti i file PDF, puoi lavorarci con maggiore sicurezza. Che tu abbia bisogno di combinare capitoli in un singolo report o di dividere un file di grandi dimensioni in sezioni più piccole, lo strumento PDF Merge & Split su MoreFreeTools gestisce entrambe le operazioni in modo pulito, senza duplicazione imprevista di font o riferimenti incrociati interrotti.

Strumento correlato

PDF Merge & Split

Usalo direttamente nel browser. Nessuna registrazione, nessun download, nessun dato salvato.

Usa lo strumento