.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, версия 1.0:
Тип | Имя | Описание |
---|---|---|
TAG | ttcTag | Строка идентификатора коллекции шрифтов: ’ttcf’ (используется для шрифтов с контурами CFF или CFF2, а также контурами TrueType) |
uint16 | majorVersion | Основная версия заголовка TTC, = 1. |
uint16 | minorVersion | Дополнительная версия заголовка TTC, = 0. |
uint32 | numFonts | Количество шрифтов в TTC |
Offset32 | tableDirectoryOffsets[numFonts] | Массив смещений в TableDirectory для каждого шрифта от начала файла |
Заголовок TTC версии 2.0:
Тип | Имя | Описание |
---|---|---|
TAG | ttcTag | Строка идентификатора коллекции шрифтов: ’ttcf' |
uint16 | majorVersion | Основная версия заголовка TTC, = 2. |
uint16 | minorVersion | Дополнительная версия заголовка TTC, = 0. |
uint32 | numFonts | Количество шрифтов в TTC |
Смещение32 | tableDirectoryOffsets[numFonts] | Массив смещений в TableDirectory для каждого шрифта от начала файла |
uint32 | dsigTag | Тег, указывающий, что таблица DSIG существует, 0x44534947 (‘DSIG’) (нуль, если нет подписи) |
uint32 | dsigLength | Длина (в байтах) таблицы DSIG (нулевая, если нет подписи) |
uint32 | dsigOffset | Смещение (в байтах) таблицы DSIG от начала файла TTC (пусто, если нет подписи) |