Що таке файл TTF?
Файл із розширенням .ttf представляє файли шрифтів на основі технології шрифтів специфікацій TrueType. Спочатку він був розроблений і запущений Apple Computer, Inc для Mac OS, а пізніше був прийнятий Microsoft для ОС Windows. Шрифти TrueType забезпечують найвищу якість відображення на екранах комп’ютерів і принтерах без жодної залежності від роздільної здатності. Всі сучасні програми, що використовують шрифти, можуть працювати з файлами TTF. Файли шрифтів TTF є у вільному доступі в Інтернеті, їх також можна конвертувати в інші формати файлів шрифтів, наприклад OTF і WOFF.
Коротка історія
Формат шрифту TTF, розроблений Apply Computer, Inc у 1980-х роках для MacOS, мав на меті вирішити деякі технічні обмеження формату Adobe Type 1. Apple включила підтримку шрифтів TrueType у Mac у 1991 році. Метою дизайну шрифтів TTF була ефективність зберігання та обробки, а також можливість розширення. Завдяки цій можливості розширення існуючі шрифти можна конвертувати у формат TrueType.
Корпорація Майкрософт вперше використала шрифти TrueType у Windows 3.1 у квітні 1992 року після того, як Apple погодилася надати Microsoft ліцензію на TrueType. Він покращив механізм растеризації та покращив його ефективність і продуктивність.
Специфікації формату файлу True Type
Файл шрифту TrueType – це двійковий файл, який складається з послідовності об’єднаних таблиць. Кожна таблиця є послідовністю слів і має ім’я, відоме як «тег». Кожен тег має тип даних uint32 і складається з чотирьох символів. Перша таблиця у файлі — це каталог шрифтів, який надає доступ до інших таблиць у файлі шрифтів. Дані шрифтів містяться в інших таблицях після таблиці каталогу шрифтів. Оскільки кожна таблиця доступна за своїм тегом, таблиці можуть відображатися у файлі в будь-якому порядку.
Необхідні таблиці та назви їхніх тегів наведено в наступній таблиці.
Тег | Таблиця |
---|---|
‘cmap’ | відображення символів у гліфи |
‘гліф’ | дані гліфа |
‘голова’ | заголовок шрифту |
‘hhea’ | горизонтальний заголовок |
‘hmtx’ | горизонтальна метрика |
‘місце’ | індекс розташування |
‘maxp’ | максимальний профіль |
‘ім’я’ | найменування |
‘пост’ | PostScript |
Типи даних
Шрифти TrueType використовують стандартні цілі та додаткові типи даних, як зазначено в таблиці нижче.
Тип даних | Опис |
---|---|
shortFrac | 16-розрядний знаковий дріб |
Зафіксовано | 16,16-бітове число з фіксованою комою зі знаком |
FWord | 16-розрядне ціле число зі знаком, яке описує величину в FUnits, найменшу вимірну відстань у просторі em. |
uFWord | 16-розрядне ціле число без знаку, яке описує величину в FUnits, найменшу вимірну відстань у просторі em. |
F2Dot14 | 16-розрядне фіксоване число зі знаком із молодшими 14 бітами, які представляють частку. |
longDateTime | Довгий внутрішній формат дати в секундах з 12:00 опівночі 1 січня 1904 року. Він представлений у вигляді 64-розрядного цілого числа зі знаком. |
Каталог шрифтів
Перша таблиця у шрифті TrueType — це каталог шрифтів, який забезпечує доступ до інформації, необхідної для доступу до даних в інших таблицях. Він також складається з:
Підтаблиця зсуву
- зберігає записи таблиць у шрифті та надає інформацію про зсув для доступу до кожної таблиці в каталозіКаталог таблиць
- містить записи для кожної таблиці у шрифті
Підтаблиця зміщення
Підтаблиця зміщення показана нижче.
Тип | Назва | Опис |
---|---|---|
uint32 | тип скалера | Тег для вказівки масштабувальника OFA, який буде використовуватися для растеризації цього шрифту; див. примітку щодо типу масштабувальника нижче для отримання додаткової інформації. |
uint16 | numTables | кількість столів |
uint16 | searchRange | (максимальна потужність 2 <= numTables)*16 |
uint16 | entrySelector | log2(максимальна потужність 2 <= numTables) |
uint16 | rangeShift | numTables*16-searchRange |
Каталог таблиць
Каталог таблиці знаходиться одразу після підтаблиці зміщення. Його структура показана в наступній таблиці.
Тип | Назва | Опис |
---|---|---|
uint32 | тег | 4-байтовий ідентифікатор |
uint32 | контрольна сума | контрольна сума для цієї таблиці |
uint32 | зсув | зміщення від початку sfnt |
uint32 | довжина | довжина цієї таблиці в байтах (фактична довжина без доданої довжини) |
Кожна таблиця у файлі шрифту повинна мати власний запис каталогу таблиць. Записи в таблиці повинні бути відсортовані в порядку зростання за тегом.