Che cos'è COS?
COS (Carousel Object Syntax) è la sintassi utilizzata dai PDF e dai file FDF, ampiamente documentata in ISO 32000-2:2020. Quando esplori la struttura interna di un file PDF, incontri COS.
"Carousel" era il nome in codice di Acrobat 1.0 quando questa sintassi fu introdotta per la prima volta.
I otto tipi di oggetti COS
COS è una sintassi semplice e quasi tutto in un PDF è uno di otto tipi di oggetti di base. Una volta che impari a riconoscerli, l'interno di un PDF smette di sembrare rumore:
- Booleani e numeri, scritti in forma diretta.
- Stringhe, tra parentesi tonde o come esadecimali tra parentesi angolari.
- Nomi, scritti con una barra iniziale, ad esempio \/Type o \/Page.
- Array, tra parentesi quadre, e dizionari, tra doppie parentesi angolari.
- Stream, un dizionario seguito da un blocco di byte grezzi o compressi.
- L'oggetto null.
I contenuti di pagina, i font, le immagini e i metadati sono tutti costruiti a partire da questi elementi. Uno stream contiene la maggior parte dei dati di un file, perché racchiude le descrizioni di pagina compresse e le immagini incorporate.
Come vengono ritrovati gli oggetti
Gli oggetti sono numerati e una tabella dei riferimenti incrociati alla fine del file registra l'offset in byte di ciascuno. Un lettore parte dalla fine, legge il trailer, trova la tabella dei riferimenti incrociati e poi salta direttamente all'oggetto di cui ha bisogno. Per questo un PDF può essere aperto senza analizzarlo dall'inizio alla fine. Le versioni successive possono memorizzare quella tabella come object stream compresso, oppure un aggiornamento incrementale aggiunge una seconda tabella invece di riscrivere la prima.