aspose.info
RU

TTF — формат файла шрифта TrueType

Обновлено

.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-битное число с фиксированной точкой со знаком
FWord16-разрядное целое число со знаком, описывающее величину в FUnits, наименьшее измеримое расстояние в пространстве em.
uFWord16-разрядное целое число без знака, описывающее величину в FUnits, наименьшее измеримое расстояние в пространстве em.
F2точка1416-битное фиксированное число со знаком, где младшие 14 бит представляют собой дробь.
longDateTimeДлинный внутренний формат даты в секундах с полуночи 1 января 1904 года. Он представлен в виде 64-разрядного целого числа со знаком.

Каталог шрифтов

Первая таблица в шрифте TrueType — это каталог шрифтов, обеспечивающий доступ к информации, необходимой для доступа к данным в других таблицах. Он дополнительно состоит из:

  • Подтаблица смещения - ведет учет таблиц в шрифте и предоставляет информацию о смещении для доступа к каждой таблице в каталоге.
  • Table Directory - Содержит записи для каждой таблицы в шрифте

Подтаблица смещения

Подтаблица смещения показана ниже.

ТипИмяОписание
uint32тип скейлераТег, указывающий масштабатор OFA, который будет использоваться для растеризации этого шрифта; см. примечание о типе скейлера ниже для получения дополнительной информации.
uint16количество таблицколичество столов
uint16диапазон поиска(максимальная мощность 2 <= numTables)*16
uint16селектор записейlog2(максимальная мощность 2 <= numTables)
uint16диапазонShiftnumTables*16-диапазон_поиска

Каталог таблиц

Каталог таблицы идет сразу после подтаблицы смещения. Его структура показана в следующей таблице.

ТипИмяОписание
uint32тег4-байтовый идентификатор
uint32контрольная суммаконтрольная сумма для этой таблицы
uint32смещениесмещение от начала sfnt
uint32длинадлина этой таблицы в байтах (фактическая длина без дополнений)

Каждая таблица в файле шрифтов должна иметь свою собственную запись каталога таблицы. Записи в таблице должны быть отсортированы в порядке возрастания по тегу.

использованная литература

См. также