O que é COS?
COS (Carousel Object Syntax) é a sintaxe utilizada por PDF e arquivos FDF, amplamente documentada em ISO 32000-2:2020. Ao explorar a estrutura interna de um arquivo PDF, é o COS que você encontra.
"Carousel" era o codinome do Acrobat 1.0 quando essa sintaxe foi apresentada pela primeira vez.
Os oito tipos de objetos COS
COS é uma sintaxe simples, e quase tudo em um PDF é um de oito tipos básicos de objeto. Depois que você consegue reconhecê-los, o interior de um PDF deixa de parecer ruído:
- Booleanos e números, escritos de forma simples.
- Strings, entre parênteses ou como hexadecimal entre colchetes angulares.
- Nomes, escritos com uma barra no início, como \/Type ou \/Page.
- Arrays, entre colchetes, e dicionários, entre duplos colchetes angulares.
- Streams, um dicionário seguido de um bloco de bytes brutos ou comprimidos.
- O objeto null.
Conteúdo de página, fontes, imagens e metadados são todos construídos a partir dessas partes. Um stream contém a maior parte dos dados de um arquivo, pois guarda descrições de página compactadas e imagens incorporadas.
Como os objetos são encontrados novamente
Os objetos são numerados, e uma tabela de referência cruzada no final do arquivo registra o deslocamento em bytes de cada um. Um leitor começa pelo final, lê o trailer, encontra a tabela de referência cruzada e então pula diretamente para o objeto de que precisa. É por isso que um PDF pode ser aberto sem ser analisado do começo ao fim. Versões posteriores podem armazenar essa tabela como um object stream comprimido, e uma atualização incremental incremental update acrescenta uma segunda tabela em vez de reescrever a primeira.