Що таке COS?
COS (Carousel Object Syntax) - це синтаксис, який використовується у PDF та FDF файлах, детально задокументований у ISO 32000-2:2020. Коли ви досліджуєте внутрішню структуру PDF-файлу, ви маєте справу з COS.
«Carousel» було кодовою назвою Acrobat 1.0, коли цей синтаксис вперше було представлено.
Вісім типів об'єктів COS
COS має простий синтаксис, і майже все в PDF є одним із восьми базових типів об'єктів. Щойно ви навчитеся їх розпізнавати, вміст PDF перестане здаватися шумом:
- Булеві значення та числа, записані звичайним текстом.
- Рядки в круглих дужках або у шістнадцятковому вигляді в кутових дужках.
- Імена з початковим слешем, наприклад \/Type або \/Page.
- Масиви в квадратних дужках і словники в подвійних кутових дужках.
- Потоки: словник, за яким іде блок сирих або стиснених байтів.
- Об'єкт null.
Вміст сторінок, шрифти, зображення та метадані усі побудовані з цих елементів. Потік містить основний обсяг даних файлу, оскільки в ньому зберігаються стиснені описи сторінок і вбудовані зображення.
Як знову знаходять об'єкти
Об'єкти нумеруються, а таблиця перехресних посилань у кінці файлу зберігає байтове зміщення кожного з них. Засіб читання починає з кінця, читає трейлер, знаходить таблицю перехресних посилань і потім одразу переходить до потрібного об'єкта. Тому PDF можна відкрити, не розбираючи його від початку до кінця. У пізніших версіях цю таблицю можуть зберігати як стиснений потік об'єктів замість цього, а інкрементне оновлення додає другу таблицю замість перезапису першої.