.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 | длина | Общий размер файла 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 | Длина закрытого блока данных. |