Какво е TTF файл?
Файл с разширение .ttf представлява файлове с шрифтове, базирани на технологията за шрифтове със спецификации TrueType. Първоначално е проектиран и пуснат от Apple Computer, Inc за Mac OS и по-късно е приет от Microsoft за Windows OS. Шрифтовете TrueType осигуряват най-високо качество на дисплея на компютърни екрани и принтери, без да зависят от разделителната способност. Всички съвременни приложения, използващи шрифтове, могат да работят с TTF файлове. Файловете с TTF шрифтове са свободно достъпни в интернет и могат също да бъдат конвертирани в други файлови формати на шрифтове, като OTF и WOFF.
Кратка история
Проектиран от Apply Computer, Inc през 1980 г. за MacOS, форматът на шрифта TTF имаше за цел да разреши някои технически ограничения от формата Type 1 на Adobe. Apple включи поддръжка за TrueType шрифтове в Mac през 1991 г. Целта на дизайна зад TTF шрифтовете беше ефективност при съхранение и обработка и разширяемост. Въз основа на тази разширяемост съществуващите шрифтове могат да бъдат конвертирани във формат TrueType.
Microsoft за първи път използва шрифтовете TrueType в Windows 3.1 през април 1992 г., след като Apple се съгласи да лицензира TrueType на Microsoft. Той подобри механизма за растеризация и подобри неговата ефективност и производителност.
Спецификации на файловия формат True Type
Файлът с шрифт TrueType е двоичен файл, който се състои от поредица от свързани таблици. Всяка таблица е поредица от думи и има име, известно като „Етикет“. Всеки таг е от тип данни uint32 и се състои от четири знака. Първата таблица във файла е директория с шрифтове, която дава достъп до други таблици във файла с шрифтове. Данните за шрифтове се съдържат в други таблици, следвани след таблицата с директорията на шрифтовете. Тъй като всяка таблица е достъпна чрез своя таг, таблиците могат да се появяват в произволен ред във файла.
Необходимите таблици и техните имена на етикети са показани в следващата таблица.
Етикет | Таблица |
---|---|
‘cmap’ | съпоставяне на знак към глиф |
‘глиф’ | данни за глифове |
‘глава’ | заглавка на шрифта |
‘ххе’ | хоризонтална заглавка |
‘hmtx’ | хоризонтални показатели |
’loca' | индекс към местоположение |
‘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 | входен селектор | log2(максимална мощност от 2 <= numTables) |
uint16 | rangeShift | numTables*16-searchRange |
Директория с таблици
Директорията на таблицата идва веднага след отместената подтаблица. Структурата му е както е показано в следващата таблица.
Тип | Име | Описание |
---|---|---|
uint32 | етикет | 4-байтов идентификатор |
uint32 | контролна сума | контролна сума за тази таблица |
uint32 | отместване | отместване от началото на sfnt |
uint32 | дължина | дължина на тази таблица в байтове (действителна дължина без подплатена дължина) |
Всяка таблица във файл с шрифт трябва да има свой собствен запис в директорията на таблицата. Записите в таблица трябва да бъдат сортирани във възходящ ред по етикет.