Che cos'è davvero un PDF, e perché non sempre puoi copiarne il testo
Un PDF è un elenco di istruzioni di disegno. Dice metti questo glifo in questa coordinata, con questo font, a questa dimensione, poi spostati qui e disegna il prossimo. Non dice questo è un titolo, questo è un paragrafo, questa colonna viene prima di quella. Tutto ciò che un lettore sembra sapere della struttura di una pagina è stato ricostruito a posteriori misurando gli spazi fra i segni, il che spiega quasi tutto ciò che nei PDF è frustrante.
Che cosa memorizza davvero un PDF
Il testo di una pagina vive in un content stream, una breve sequenza di operatori:
BT
/F1 11 Tf
72 708 Td
[(In) -18 (v) 22 (oice)] TJ
180 0 Td
(2026-08-25) Tj
ET
Tf sceglie un font e una dimensione, Td sposta il cursore del testo, e TJ disegna i glifi con fra l'uno e l'altro degli scostamenti di crenatura. Nota che cosa manca: non c'è alcun carattere di spazio da nessuna parte. Lo stacco prima della data è un salto di 180 unità, e chi estrae il testo deve decidere se ogni salto sia uno spazio, una tabulazione, un confine di colonna oppure niente del tutto. Una soglia leggermente fuori misura ti dà Invoice2026-08-25 oppure I n v o i c e.
L'ordine di lettura ha lo stesso problema: i glifi escono nell'ordine in cui sono stati disegnati. Un'impaginazione a due colonne spesso disegna la colonna di sinistra scendendo lungo la pagina e poi quella di destra, e in quel caso la copia funziona; se chi ha generato il file ha disegnato riga per riga attraversando il foglio, la copia intreccia le colonne in un risultato senza senso.
Distinguere un PDF di testo da una scansione
Un documento scansionato non contiene alcun testo: è la fotografia di una pagina avvolta in un PDF. Il riconoscimento ottico dei caratteri aggiunge sopra all'immagine un livello di testo invisibile, che rende il file ricercabile, ma quel livello è un'ipotesi, quindi i suoi errori affiorano come ricerche che falliscono e copie storpiate.
| Verifica | PDF di testo | PDF scansionato |
|---|---|---|
| Seleziona una parola | Si evidenzia carattere per carattere | Non si seleziona nulla, oppure si seleziona l'intera pagina |
| Zoom al 400% | Le lettere restano nitide | Le lettere diventano morbide o a blocchi |
| Dimensione per pagina | Spesso da 20 a 100 KB | Spesso da 300 KB a diversi MB |
| Estrai immagini da PDF | Restituisce le immagini vere, oppure niente | Restituisce un'immagine a pagina piena per ogni pagina |
Font, incorporamento e sottoinsiemi
Un font o è incorporato, cioè il programma del font sta dentro il file, oppure è referenziato per nome e metriche, così che il lettore trovi qualcosa di simile sulla macchina che lo mostra. I font referenziati sono il motivo per cui un documento appare corretto dove è stato creato e sbagliato altrove: il sostituto ha larghezze dei caratteri diverse, quindi le righe vanno a capo in altri punti, le tabelle traboccano e una lettera di una pagina ne diventa due.
I font incorporati sono quasi sempre ridotti a un sottoinsieme. Vengono inclusi solo i glifi effettivamente usati, e spesso vengono rinumerati, quindi il glifo della A può trovarsi al codice 3. La mappatura di ritorno ai caratteri reali sta in una tabella ToUnicode separata, e quando manca o è sbagliata la pagina si disegna perfettamente mentre il testo copiato arriva come una sequenza incomprensibile, perché ti vengono consegnati codici di glifo interni invece di caratteri. Risalvare il file non lo ripara; le vie d'uscita sono il documento di partenza oppure il riconoscimento eseguito sulle pagine renderizzate.
Dimensione della pagina, riquadri e rotazione
Le coordinate sono in punti, 72 per pollice, e ogni pagina porta con sé diversi rettangoli. Il MediaBox è il foglio intero; il CropBox è la regione effettivamente mostrata, che può essere più piccola.
| Formato | Punti | Millimetri |
|---|---|---|
| A4 | 595 x 842 | 210 x 297 |
| Letter | 612 x 792 | 216 x 279 |
| Legal | 612 x 1008 | 216 x 356 |
A4 e Letter sembrano identici a schermo e differiscono sulla carta, quindi unire un report europeo con uno americano dà pagine di dimensione alternata.
Ogni pagina porta anche un flag di rotazione di 0, 90, 180 o 270 gradi, così che un contenuto memorizzato di traverso possa essere mostrato dritto. Ruota PDF imposta quel flag invece di ridisegnare qualcosa, il che lo rende istantaneo e senza perdita, ma le coordinate sottostanti restano invariate: uno strumento che ignora il flag estrae il testo di traverso, e unire pagine con flag diversi dà un documento che sembra coerente mentre il suo contenuto sta su più orientamenti.
Unire, dividere e le parti che si rompono
Le pagine vivono in un albero delle pagine. Unisci PDF copia gli oggetti pagina e tutto ciò a cui fanno riferimento dentro un unico file e ricostruisce quell'albero; Dividi PDF ne prende un ramo. Le pagine arrivano intatte, ciò che è attaccato al documento non sempre.
- I segnalibri sono uno schema separato che punta agli oggetti pagina. Molti strumenti di unione lo buttano via del tutto, e la divisione lascia voci che puntano a pagine che non ci sono più.
- I campi dei moduli hanno un nome a livello di documento, non di pagina, quindi unire due copie dello stesso modulo dà due campi chiamati
name, che molti lettori trattano come un unico campo con un valore condiviso: compilarne uno compila anche l'altro. Appiattiscili o rinominali prima. - Le annotazioni come i link e i commenti viaggiano insieme alle loro pagine, ma un link interno la cui pagina di destinazione è rimasta fuori da una divisione non ha più dove andare.
Un file unito è spesso più grande delle sue parti perché le risorse condivise vengono duplicate: quattro sorgenti che hanno incorporato ciascuna un sottoinsieme dello stesso font danno quattro sottoinsiemi, più quattro profili colore e quattro blocchi di metadati. Può anche uscirne più piccolo, perché la riscrittura scarta gli oggetti inutilizzati e la cronologia dei salvataggi: un documento salvato trenta volte si porta appresso ogni revisione precedente accodata.
Password, permessi e tag
Ci sono due tipi di password e non sono paragonabili. Una password utente serve per aprire il documento: il contenuto è davvero cifrato con una chiave derivata da essa, quindi senza non c'è nulla da leggere. I file moderni usano AES-256, quelli molto vecchi RC4 a 40 bit, che è debole.
Una password proprietario imposta flag di permesso come vietata la stampa, vietata la copia e vietata la modifica. Il file è comunque cifrato, ma con una chiave che qualsiasi lettore può ricavare da solo, perché la password utente è vuota. I flag sono una richiesta, rispettata da alcuni lettori e ignorata da altri: se un file si apre senza chiedere nulla, le sue restrizioni sono un consiglio, qualsiasi cosa dica la finestra delle proprietà.
La marcatura con i tag è un livello diverso: un albero di struttura facoltativo che segna titoli, elenchi, celle di tabella e descrizioni delle figure, e fissa un ordine di lettura. Uno screen reader su un PDF con i tag legge il documento; su uno senza tag tira a indovinare dalle coordinate, producendo lo stesso risultato scomposto del copia e incolla. Le scansioni sono senza tag per definizione, il riconoscimento aggiunge testo ma non struttura, e il risultato di Immagini in PDF o di Da PDF a immagini non ha né l'uno né l'altra.
Dove sta il peso, e quanto ne regge il browser
La dimensione di un file è quasi sempre fatta di immagini. Una pagina A4 richiede grossomodo 1240 per 1754 pixel a 150 dpi e 2480 per 3508 a 300 dpi, quindi una fotografia inserita a 12 megapixel porta con sé molti più dati di quanti la stampa possa usarne, e ridurre la risoluzione è l'unica modifica che rimpicciolisce un documento in modo affidabile. Risalvare un PDF di solo testo guadagna pochissimo, perché i suoi content stream sono già compressi; quando uno è inaspettatamente grande, guarda i font incorporati, la cronologia dei salvataggi o gli allegati.
Tutto questo avviene localmente nel browser, quindi non viene caricato nulla e il limite è la memoria, non la dimensione del file. La parte costosa è il rendering: una pagina A4 a scala 4x è circa 2380 per 3368 pixel, all'incirca 32 MB di bitmap non compressa per una sola pagina, quindi cinquanta pagine a quella scala esauriscono una scheda del browser molto prima di dare fastidio alla macchina. Dividi prima un documento molto grande, poi lavora a blocchi.