Що таке файл TTC?
TTC скорочено називається TrueType Collection — це розширення формату True Type. Файл TTC може об’єднати в нього декілька файлів шрифтів. Ці файли корисні для комбінування кількох шрифтів, які мають багато спільних гліфів. До Windows 2000 файли TTC використовувалися в китайській, японській і корейській версіях Windows, але пізніше підтримка була доступна для всіх регіонів.
Структура файлу колекції шрифтів
Файл TTC складається з таблиці заголовків TTC, каталогів таблиць і кількох таблиць OpenType. Заголовок TTC має знаходитися на початку файлу. Повинен існувати повний каталог таблиць для кожного шрифту. Формат TableDirectory має бути подібним до того, який існував у файлі без колекції. Кількість таблиць у всіх каталогах у файлі TTC обчислюється від початку файлу TTC. Посилання на таблиці у файлі TTC здійснюється через каталог таблиць із відповідними шрифтами. Кілька таблиць OpenType мають з’являтися кілька разів, один раз для кожного шрифту, доданого в TTC. Тоді як інші таблиці можуть бути спільними для кількох шрифтів у файлі TTC.
Заголовок TTC
Наразі доступні дві версії таблиці заголовків TTC: — Версія 1.0 використовується для файлів TTC без цифрових підписів. — Версія 2.0 може використовуватися для файлів TTC з цифровими підписами або без них. Ось таблиці заголовків TTC обох версій:
TTC Header Version 1.0:
Тип | Найменування | Опис |
---|---|---|
TAG | ttcTag | Ідентифікатор колекції шрифтів: ’ttcf’ (використовується для шрифтів із контурами CFF або CFF2, а також контурів TrueType) |
uint16 | majorVersion | Основна версія заголовка TTC, = 1. |
uint16 | minorVersion | Додаткова версія заголовка TTC, = 0. |
uint32 | numFonts | Кількість шрифтів у TTC |
Offset32 | tableDirectoryOffsets[numFonts] | Масив зсувів до TableDirectory для кожного шрифту від початку файлу |
TTC Header Version 2.0:
Тип | Найменування | Опис |
---|---|---|
TAG | ttcTag | Рядок ID колекції шрифтів: ’ttcf' |
uint16 | majorVersion | Основна версія заголовка TTC, = 2. |
uint16 | minorVersion | Додаткова версія заголовка TTC, = 0. |
uint32 | numFonts | Кількість шрифтів у TTC |
Зміщення32 | tableDirectoryOffsets[numFonts] | Масив зсувів до TableDirectory для кожного шрифту від початку файлу |
uint32 | dsigTag | Тег, що вказує на існування таблиці DSIG, 0x44534947 (‘DSIG’) (null, якщо немає підпису) |
uint32 | dsigLength | Довжина (у байтах) таблиці DSIG (нульова, якщо немає підпису) |
uint32 | dsigOffset | Зсув (у байтах) таблиці DSIG від початку файлу TTC (null, якщо немає підпису) |