Ano ang COS?
Ang COS (Carousel Object Syntax) ay ang syntax na ginagamit ng PDF at ng mga FDF file, na detalyadong nakadokumento sa ISO 32000-2:2020. Kapag in-explore mo ang internal na bahagi ng isang PDF file, COS ang makikita mo.
Ang "Carousel" ang codename para sa Acrobat 1.0 noong unang ipinakilala ang syntax na ito.
Ang walong uri ng COS objects
Maliit lang ang syntax ng COS, at halos lahat sa isang PDF ay isa sa walong pangunahing uri ng object. Kapag nakikilala mo na ang mga ito, hindi na parang ingay ang loob ng isang PDF:
- Booleans at mga numero, nakasulat nang direkta.
- Strings, nasa bilog na panaklong o bilang hexadecimal sa tatsulok na panaklong.
- Names, may nauunang slash, gaya ng \/Type o \/Page.
- Arrays, nasa square brackets, at dictionaries, nasa double angle brackets.
- Streams, isang dictionary na sinusundan ng bloke ng raw o compressed bytes.
- Ang null object.
Nilalaman ng page, mga font, mga larawan, at metadata ay pawang binubuo mula sa mga piyesang iyon. Sa stream nakapaloob ang karamihan ng data ng file, dahil dito nakaimbak ang compressed na mga page description at naka-embed na mga larawan.
Paano muling hinahanap ang mga object
May numero ang mga object, at isang cross-reference table sa dulo ng file ang nagtatala ng byte offset ng bawat isa. Nagsisimula ang reader sa dulo, binabasa ang trailer, hinahanap ang cross-reference table, at saka tumatalon diretso sa object na kailangan nito. Ito ang dahilan kung bakit mabubuksan ang isang PDF nang hindi kinakailangang i-parse mula umpisa hanggang dulo. Maaaring i-store ng mga mas bagong bersyon ang talagang iyon bilang isang compressed object stream kapalit, at ang isang incremental update ay nagdadagdag ng pangalawang table sa halip na isulat muli ang nauna.