.TTF вариант №
Файл с расширением .ttf представляет собой файлы шрифтов, основанные на технологии шрифтов спецификаций TrueType. Первоначально он был разработан и запущен Apple Computer, Inc для Mac OS, а затем был принят Microsoft для ОС Windows. Шрифты TrueType обеспечивают высочайшее качество отображения на экранах компьютеров и принтерах независимо от разрешения. Все современные приложения, использующие шрифты, умеют работать с файлами TTF. Файлы шрифтов TTF находятся в свободном доступе в Интернете, а также могут быть преобразованы в другие форматы файлов шрифтов, такие как OTF и WOFF.
Краткая история
Разработанный Apply Computer, Inc в 1980-х годах для MacOS, формат шрифта TTF был направлен на устранение некоторых технических ограничений формата Adobe Type 1. Apple включила поддержку шрифтов TrueType в Mac в 1991 году. Целью разработки шрифтов TTF была эффективность хранения и обработки, а также расширяемость. На основе этой расширяемости существующие шрифты могут быть преобразованы в формат TrueType.
Microsoft впервые использовала шрифты TrueType в Windows 3.1 в апреле 1992 года, после того как Apple согласилась предоставить Microsoft лицензию на использование TrueType. Это улучшило механизм растеризации, повысило его эффективность и производительность.
Спецификации формата файлов True Type
Файл шрифта TrueType — это двоичный файл, состоящий из последовательности соединенных таблиц. Каждая таблица представляет собой последовательность слов и имеет имя, известное как «тег». Каждый тег имеет тип данных uint32 и состоит из четырех символов. Первая таблица в файле — это каталог шрифтов, который дает доступ к другим таблицам в файле шрифтов. Данные шрифта содержатся в других таблицах, следующих за таблицей каталогов шрифтов. Поскольку каждая таблица доступна по своему тегу, таблицы могут располагаться в файле в любом порядке.
Необходимые таблицы и имена их тегов показаны в следующей таблице.
Тег | Таблица |
---|---|
‘смап’ | сопоставление символов с глифами |
‘глиф’ | данные глифов |
‘голова’ | заголовок шрифта |
‘hhea’ | горизонтальный заголовок |
‘hmtx’ | горизонтальные метрики |
‘лока’ | индексировать место |
‘maxp’ | максимальный профиль |
‘имя’ | именование |
‘пост’ | Постскриптум |
Типы данных
Шрифты TrueType используют стандартные целочисленные и дополнительные типы данных, перечисленные в следующей таблице.
Тип данных | Описание |
---|---|
короткий разрыв | 16-битная дробь со знаком |
Фиксированный | 16,16-битное число с фиксированной точкой со знаком |
FWord | 16-разрядное целое число со знаком, описывающее величину в FUnits, наименьшее измеримое расстояние в пространстве em. |
uFWord | 16-разрядное целое число без знака, описывающее величину в FUnits, наименьшее измеримое расстояние в пространстве em. |
F2точка14 | 16-битное фиксированное число со знаком, где младшие 14 бит представляют собой дробь. |
longDateTime | Длинный внутренний формат даты в секундах с полуночи 1 января 1904 года. Он представлен в виде 64-разрядного целого числа со знаком. |
Каталог шрифтов
Первая таблица в шрифте TrueType — это каталог шрифтов, обеспечивающий доступ к информации, необходимой для доступа к данным в других таблицах. Он дополнительно состоит из:
Подтаблица смещения
- ведет учет таблиц в шрифте и предоставляет информацию о смещении для доступа к каждой таблице в каталоге.Table Directory
- Содержит записи для каждой таблицы в шрифте
Подтаблица смещения
Подтаблица смещения показана ниже.
Тип | Имя | Описание |
---|---|---|
uint32 | тип скейлера | Тег, указывающий масштабатор OFA, который будет использоваться для растеризации этого шрифта; см. примечание о типе скейлера ниже для получения дополнительной информации. |
uint16 | количество таблиц | количество столов |
uint16 | диапазон поиска | (максимальная мощность 2 <= numTables)*16 |
uint16 | селектор записей | log2(максимальная мощность 2 <= numTables) |
uint16 | диапазонShift | numTables*16-диапазон_поиска |
Каталог таблиц
Каталог таблицы идет сразу после подтаблицы смещения. Его структура показана в следующей таблице.
Тип | Имя | Описание |
---|---|---|
uint32 | тег | 4-байтовый идентификатор |
uint32 | контрольная сумма | контрольная сумма для этой таблицы |
uint32 | смещение | смещение от начала sfnt |
uint32 | длина | длина этой таблицы в байтах (фактическая длина без дополнений) |
Каждая таблица в файле шрифтов должна иметь свою собственную запись каталога таблицы. Записи в таблице должны быть отсортированы в порядке возрастания по тегу.