Что такое формат файла WOFF?
WOFF (Web Open Font Format) - это открытый формат для хранения веб-шрифтов, разработанный в 2009 году. Файлы .woff содержат шрифты, сжатые с помощью zlib, упаковывая контуры TrueType (.ttf) и OpenType (.otf) в компактный бинарный контейнер. Формат поддерживает встроенные метаданные лицензирования шрифтов, которые требуются многим коммерческим шрифтам для легального использования в вебе.
Файлы .woff используются для внедрения пользовательских шрифтов на веб-сайты. WOFF является наиболее распространенным форматом шрифтов, используемым веб-дизайнерами, а статус открытого стандарта в сочетании с полной поддержкой во всех современных браузерах являются основными причинами его широкого распространения.
Формат WOFF был разработан с двумя целями. Первая цель заключалась в том, чтобы отличить шрифты для веб-сайтов от шрифтов, используемых локально установленными приложениями. Вторая цель - уменьшить задержку при передаче шрифтов от сервера к клиенту.
- На файлы
.woffссылаются внутри CSS-файлов с помощью правила@font-face. - Позже на смену формату пришел WOFF2, в котором zlib заменен на сжатие Brotli, что обеспечивает примерно на 30% меньший размер файлов.
Безопасность и защита
РИСК: LOWФайл WOFF содержит данные шрифта, а не исполняемый код, поэтому он безопасен в обращении. Реальный риск представляют уязвимости в парсерах шрифтов (движки рендеринга шрифтов в ОС/браузерах имеют историю CVE), поэтому обновляйте браузер и систему и получайте шрифты из надежных источников. Также помните о лицензировании: многие веб-шрифты лицензированы только для встраивания в веб - конвертация WOFF в TTF и его установка для десктопного использования может нарушить лицензию, даже если это технически просто. Остерегайтесь сомнительных сайтов с «бесплатными шрифтами», которые встраивают рекламное ПО в свои загрузчики; используйте конвертер напрямую, а не установщик.
Детали формата
в двух словахПрограммы, открывающие файлы WOFF
@font-face автоматически; не является средством просмотра, но подтверждает отрисовку шрифта в вебе. pip install fonttools brotli). Технические подробности
глубокая спецификация| Тип формата | Бинарный контейнер, переупаковывающий сжатые таблицы шрифтов sfnt (TrueType/OpenType) |
| MIME-тип | font/woff |
| Сигнатура файла | ASCII `wOFF` (hex `77 4F 46 46`) со смещением 0 |
| Алгоритм сжатия | zlib (DEFLATE); каждая таблица sfnt сжимается независимо |
| Варианты упакованных шрифтов | На базе TrueType (sfnt flavor `00 01 00 00`) или на базе CFF/OpenType (`OTTO`) |
| Размер заголовка WOFF | Фиксированный 44-байтовый заголовок, хранящий сигнатуру, тип sfnt, длину файла и количество таблиц |
| Каталог таблиц | Каждая запись хранит сжатый размер, исходный несжатый размер и смещение в файле |
| Метаданные лицензирования | Необязательный блок сжатых метаданных XML для указания автора, авторских прав и лицензии |
| Блок частных данных | Необязательный неструктурированный бинарный блок в конце файла, зарезервированный для создателя шрифта |
| Интеграция с CSS | Объявляется через правило `@font-face`; браузер загружает и кэширует файл автоматически |
| Целостность данных глифов | Переупаковывает существующие таблицы шрифтов без изменения контуров глифов или данных хинтинга |
| Поддержка браузерами | Универсально поддерживается в Chrome, Firefox, Safari и Edge с 2012 года |
| Формат-преемник | Заменен на `.woff2`, который использует сжатие Brotli для уменьшения файлов примерно на 30% |
| Инструментарий | Конвертируется с помощью `fonttools` (Python), FontForge или веб-сервисов, таких как Transfonter |
| Выпущен | 2009; W3C Recommendation December 2012 (WOFF 1.0) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.w3.org |
Конвертации WOFF
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах WOFF.
Часто задаваемые вопросы
Как открыть файл WOFF?
Как конвертировать WOFF в TTF?
В чем разница между WOFF и WOFF2?
Можно ли установить шрифт WOFF в Windows или Mac?
Почему сайты используют WOFF вместо TTF?
@font-face. Необработанный TTF/OTF будет больше по размеру и не оптимизирован для доставки по сети.