Що таке файл WOFF?
Файл із розширенням .woff — це файл веб-шрифту на основі відкритого веб-формату шрифту (WOFF). Він має стислий контейнер для певного формату на основі типів шрифтів TrueType (.TTF) або OpenType (.OTT). WOFF було представлено з метою відрізняти веб-шрифти від файлів шрифтів, які використовуються в настільних програмах. Крім того, формат призначений для зменшення затримки передачі шрифтів із сервера на комп’ютер клієнта через мережу. Доступно кілька інструментів, які можуть конвертувати файли WOFF у TTF та інші формати файлів шрифтів.
Формат файлу WOFF
Формат шрифту WOFF стискає таблиці даних шрифтів структур sfnt на основі таблиць, які використовуються в різних типах шрифтів, таких як TrueType, OpenType і Open Font Format. Він схожий на контейнер для цих типів шрифтів, а також має місце для включення метаданих шрифту та даних приватного використання, які слід включити в контейнер. Перетворювачі використовують файли sfnt у файл у форматі WOFF, а агенти користувача відновлюють закодований файл для використання з веб-документом. Слід зазначити, що відновлені дані шрифту точно відповідають формату вхідного шрифту з усіх аспектів.
Утиліти файлів WOFF часто містять додаткові функції, такі як піднабір гліфів, перевірка або додавання функцій шрифту, але це не обов’язково. І творець, і агенти-користувачі повинні забезпечити збереження дійсності базових даних шрифту.
Структура файлу WOFF
Структура файлу WOFF подібна до структури шрифтів sfnt. Він базується на каталозі таблиць, який містить довжину та зміщення таблиць даних кожного шрифту. Після цієї початкової інформації слідують усі таблиці. Файл містить базу даних шрифтів, які є такими ж, як і в оригінальних шрифтах. Порядок таблиць також однаковий, але кожну можна стиснути. Проте каталог таблиць WOFF замінює оригінальний каталог таблиць.
Файл WOFF складається з наступного:
- WOFFHeader – заголовок файлу з основним типом і версією шрифту, а також зсуви до метаданих і приватних блоків даних.
- TableDirectory - каталог таблиць шрифтів із зазначенням оригінального розміру, стисненого розміру та розташування кожної таблиці у файлі WOFF.
- FontTables – таблиці даних шрифтів із вхідного шрифту sfnt, стиснені для зменшення вимог до пропускної здатності.
- ExtendedMetadata – додатковий блок розширених метаданих, представлений у форматі XML і стиснутий для зберігання у файлі WOFF.
- PrivateData – додатковий блок приватних даних для використання розробником шрифтів, ливарним заводом або постачальником.
Заголовок WOFF
Заголовок WOFF містить ідентифікаційний підпис, який вказує на тип даних, включених до файлу. Заголовок WOFF разом із його полями виглядає наступним чином.
Тип | Назва поля | Опис |
---|---|---|
UInt32 | підпис | 0x774F4646 ‘wOFF’ |
UInt32 | смак | “Sfnt-версія” вхідного шрифту. |
UInt32 | length | Загальний розмір файлу WOFF. |
UInt16 | numTables | Кількість записів у каталозі таблиць шрифтів. |
UInt16 | зарезервований | Зарезервований; встановити на нуль. |
UInt32 | totalSfntSize | Загальний розмір, необхідний для нестиснених даних шрифту, включаючи заголовок sfnt, каталог і таблиці шрифтів (включаючи відступи). |
UInt16 | majorVersion | Основна версія файлу WOFF. |
UInt16 | minorVersion | Молодша версія файлу WOFF. |
UInt32 | metaOffset | Зсув до блоку метаданих, від початку файлу WOFF. |
UInt32 | metaLength | Довжина стисненого блоку метаданих. |
UInt32 | metaOrigLength | Нестиснутий розмір блоку метаданих. |
UInt32 | privOffset | Зміщення до приватного блоку даних, від початку файлу WOFF. |
UInt32 | privLength | Довжина приватного блоку даних. |