Файл woff2 чем открыть

Расширение файла WOFF2

Web Open Font Format 2.0 Package Format

Что такое файл WOFF2?

Программы, которые поддерживают WOFF2 расширение файла

Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают WOFF2 файлы. Файлы с суффиксом WOFF2 могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.

Программы, обслуживающие файл WOFF2

Как открыть файл WOFF2?

Причин, по которым у вас возникают проблемы с открытием файлов WOFF2 в данной системе, может быть несколько. Что важно, все распространенные проблемы, связанные с файлами с расширением WOFF2, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.

Шаг 1. Получить ttf to woff2 converter

Файл woff2 чем открытьПроблемы с открытием и работой с файлами WOFF2, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами WOFF2 на вашем компьютере. Эта проблема может быть решена путем загрузки и установки # РЕКОМЕНДОВАННОЙ # или другой совместимой программы, такой как Google Chrome, Opera browser, Online font converter. В верхней части страницы находится список всех программ, сгруппированных по поддерживаемым операционным системам. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт ttf to woff2 converter и загрузите установщик.

Шаг 2. Обновите ttf to woff2 converter до последней версии

Файл woff2 чем открытьЕсли проблемы с открытием файлов WOFF2 по-прежнему возникают даже после установки ttf to woff2 converter, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия ttf to woff2 converter. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Это может быть одной из причин, по которой WOFF2 файлы не совместимы с ttf to woff2 converter. Последняя версия ttf to woff2 converter должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Свяжите файлы Web Open Font Format 2.0 Package Format с ttf to woff2 converter

Если проблема не была решена на предыдущем шаге, вам следует связать WOFF2 файлы с последней версией ttf to woff2 converter, установленной на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.

Файл woff2 чем открыть

Изменить приложение по умолчанию в Windows

Изменить приложение по умолчанию в Mac OS

Шаг 4. Проверьте WOFF2 на наличие ошибок

Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл WOFF2, о котором идет речь. Отсутствие доступа к файлу может быть связано с различными проблемами.

Файл woff2 чем открыть

1. Убедитесь, что WOFF2 не заражен компьютерным вирусом

Если случится так, что WOFF2 инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Сканируйте файл WOFF2 и ваш компьютер на наличие вредоносных программ или вирусов. WOFF2 файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.

2. Убедитесь, что файл с расширением WOFF2 завершен и не содержит ошибок

Если вы получили проблемный файл WOFF2 от третьего лица, попросите его предоставить вам еще одну копию. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Если файл WOFF2 был загружен из Интернета только частично, попробуйте загрузить его заново.

3. Проверьте, есть ли у вашей учетной записи административные права

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.

4. Проверьте, может ли ваша система обрабатывать ttf to woff2 converter

Если система перегружена, она может не справиться с программой, которую вы используете для открытия файлов с расширением WOFF2. В этом случае закройте другие приложения.

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Web Open Font Format 2.0 Package Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, файлы WOFF2 работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла WOFF2 мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле WOFF2.

Источник

Расширение файла WOFF

Web Open Font Format

Что такое файл WOFF?

Популярность файлов WOFF

Дизайн формата WOFF

Формат WOFF был разработан с двумя целями. Первая цель состояла в том, чтобы отличить шрифты для веб-сайтов от тех, которые используются локально установленными приложениями, которые используют шрифты, установленные на локальном диске. Вторая цель состояла в том, чтобы уменьшить задержку веб-шрифтов при передаче шрифтов с сервера клиенту.

Дополнительная информация

Программы, которые поддерживают WOFF расширение файла

В следующем списке перечислены программы, совместимые с файлами WOFF, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. WOFF файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.

Программы, обслуживающие файл WOFF

Как открыть файл WOFF?

Проблемы с доступом к WOFF могут быть вызваны разными причинами. К счастью, наиболее распространенные проблемы с файлами WOFF могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Мы подготовили список, который поможет вам решить ваши проблемы с файлами WOFF.

Шаг 1. Получить Microsoft Internet Explorer

Файл woff2 чем открытьОсновная и наиболее частая причина, препятствующая открытию пользователями файлов WOFF, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы WOFF. Этот легкий. Выберите Microsoft Internet Explorer или одну из рекомендованных программ (например, Opera, Mozilla Firefox, Google Chrome) и загрузите ее из соответствующего источника и установите в своей системе. Выше вы найдете полный список программ, которые поддерживают WOFF файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт Microsoft Internet Explorer и загрузите установщик.

Шаг 2. Убедитесь, что у вас установлена последняя версия Microsoft Internet Explorer

Файл woff2 чем открытьЕсли проблемы с открытием файлов WOFF по-прежнему возникают даже после установки Microsoft Internet Explorer, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Microsoft Internet Explorer. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Если у вас установлена более старая версия Microsoft Internet Explorer, она может не поддерживать формат WOFF. Последняя версия Microsoft Internet Explorer должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Свяжите файлы Web Open Font Format с Microsoft Internet Explorer

После установки Microsoft Internet Explorer (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия WOFF файлов. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.

Файл woff2 чем открыть

Процедура изменения программы по умолчанию в Windows

Процедура изменения программы по умолчанию в Mac OS

Шаг 4. Убедитесь, что файл WOFF заполнен и не содержит ошибок

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл WOFF действительным. Вероятно, файл поврежден и, следовательно, недоступен.

Файл woff2 чем открыть

1. Убедитесь, что WOFF не заражен компьютерным вирусом

Если случится так, что WOFF инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл WOFF действительно заражен, следуйте инструкциям ниже.

2. Убедитесь, что структура файла WOFF не повреждена

Если вы получили проблемный файл WOFF от третьего лица, попросите его предоставить вам еще одну копию. Возможно, что файл не был должным образом скопирован в хранилище данных и является неполным и поэтому не может быть открыт. Это может произойти, если процесс загрузки файла с расширением WOFF был прерван и данные файла повреждены. Загрузите файл снова из того же источника.

3. Убедитесь, что у вас есть соответствующие права доступа

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Web Open Font Format.

4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия Microsoft Internet Explorer

Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы WOFF. Закройте все работающие программы и попробуйте открыть файл WOFF.

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом Web Open Font Format. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов WOFF.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла WOFF мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле WOFF.

Источник

Расширение файла WOFF2

Оглавление

Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

1 расширений и 0 псевдонимы, найденных в базе данных

✅ Web Open Font Format 2.0 Font

Другие типы файлов могут также использовать расширение файла .woff2.

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

Это возможно, что расширение имени файла указано неправильно?

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:

Windows не удается открыть этот файл:

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия.

Если вы не знаете как настроить сопоставления файлов .woff2, проверьте FAQ.

🔴 Можно ли изменить расширение файлов?

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .woff2, напишите нам!

Источник

Конвертировать WOFF2 онлайн

Введение в формат:

Web Open Font Format (WOFF) — расширение формата шрифта OpenType или TrueType со сжатием и полностью совпадающим с оригиналом, что позволяет оставить неизменным механизм отрисовки. Также формат включает дополнительные метаданные, в которые производитель шрифта может включить информацию об использовании шрифта. Эта информация не влияет на то как этот шрифт будет загружен, но позволяет определить происхождение этого шрифта, так заинтересовавшийся шрифтом использованным на веб-странице может проследить какой шрифт использован. Шрифты в WOFF сжаты, но не зашифрованы, этот формат не создавался как защищённый формат для желающих жёстко контролировать использование шрифта.

Расширение.woff2
MIME-типfont/woff2
РазработчикW3C
Тип форматаКомпьютерный шрифт
Связанное программное обеспечениеFirefox, Google Chrome, Internet Explorer, Microsoft Edge, Opera, Safari
Пример файлаsample.woff2
ВикипедияWOFF2 в Википедия

В списке перечислены, какие форматы могут быть конверсированы из WOFF2 и какие форматы могут быть конверсированы в WOFF2.

Нажмите на ссылку ниже, чтобы начать конкретное преобразование.

Источник

WOFF File Format 2.0

W3C Recommendation 06 July 2021

Please check the errata for any errors or issues reported since publication.

Abstract

Based on experience with WOFF 1.0, which is widely deployed, this specification was developed to provide improved compression and thus lower use of network bandwidth, while still allowing fast decompression even on mobile devices. This is achieved by combining a content-aware preprocessing step and improved entropy coding, compared to the Flate compression used in WOFF 1.0.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

This document was published by the Web Fonts Working Group as a Recommendation. It includes candidate corrections.

A W3C Recommendation is a specification that, after extensive consensus-building, has received the endorsement of the W3C and its Members. W3C recommends the wide deployment of this specification as a standard for the Web.

The WOFF 2.0 specification is implemented in all major browsers, and is widely used on production websites. It supports the entirety of the TrueType and OpenType specifications, including Variable fonts, Chromatic fonts, and font Collections.

A complete list of changes to this document since the last publication is available.

Supporting material, including results of compression measurements, may be found in the companion WOFF 2.0 Evaluation Report. The Working Group has created tests for WOFF2 encoders, decoders, browsers, and for the format itself (a WOFF2 validator). The source to build these tests is available on GitHub.

An Implementation Report is available. Note that, for OpenType Collections (previously, TrueType Collections) while there are two tested implementations of encoding and of decoding, no user agent is yet shown to use them after decoding. Browser support for font collections is expected to improve, and once it does WOFF 2.0 already has the needed support.

Please send comments about this document as GitHub issues.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

For the Brotli compression scheme used in WOFF 2.0, Google has made an RF licensing commitment for use in this specification.

1. Introduction

This document specifies the WOFF2 font packaging format. This format was designed to provide a reasonably easy-to-implement compression of font data with significantly better compression than previous techniques, suitable for use with CSS @font-face rules. The improvement in compression rates, compared to previously developed WOFF 1.0 format [ WOFF1 ] are realized due to improved entropy coding and font data preprocessing and optimization step that reduces built-in redundancy of various font data structures. The details about WOFF 2.0 development history can be found in the WOFF 2.0 Evaluation Report [ WOFF2ER ].

1.1 Notational Conventions

The all-uppercase key words «MUST», «MUST NOT», «REQUIRED», «SHALL», «SHALL NOT», «SHOULD», «SHOULD NOT», «RECOMMENDED», «MAY», and «OPTIONAL» in this document are to be interpreted as described in RFC 2119 [ RFC2119 ]. If these words occur in lower- or mixed case, they should be interpreted in accordance with their normal English meaning.

This document includes sections of text that are called out as «Notes» and set off from the main text of the specification. These notes are intended as informative explanations or clarifications, to serve as hints or guides to implementers and users, but are not part of the normative text.

This document also uses hexadecimal numerical notation «0x. » to define the constant binary values such as magic number or tag values, bitfields / flags format and mask values used in pseudo-code bitwise operators.

2. General Requirements

The input font file may contain a number of various font data tables described in the clause 5 of the [ OFF ] specification. The order of the tables in a font file may differ and, while the entries in the table directory have to be sorted in ascending order by tags, the actual tables can be presented in a font file in arbitrary order.

When WOFF2 file is decompressed, the decoder must sort the entries in the table directory in ascending alphabetical order by table tags and should arrange the table order in a font file according to the Recommendations (subclause 8.1 «Optimized table ordering») of the [ OFF ].

3. Overall file structure and basic data types

The structure of WOFF2 files is similar to that of SFNT and WOFF 1.0 font files, in that there is a header followed by a table directory, followed by the data for those tables. The SFNT structure is described fully in the TrueType [ TrueType ], OpenType [ OpenType ], and ISO «Open Font Format» [ OFF ] specifications. However, WOFF2 differs in some important aspects from SFNT. Most notably, the data for the font tables is compressed in a single data stream comprising all the font tables. Similar to WOFF 1.0 format, the optional extended metadata and private data blocks are each presented as separate blocks of data, and are concatenated together into the WOFF 2.0 file. The compression algorithm used for both the compressed font data stream and extended metadata block is Brotli [ Brotli ].

WOFF2 File
WOFF2HeaderFile header with basic font type and version, along with offsets to metadata and private data blocks.
TableDirectoryDirectory of font tables, containing size and other info.
CollectionDirectoryAn optional table containing the font fragment descriptions of font collection entries.
CompressedFontDataContents of font tables, compressed for storage in the WOFF2 file.
ExtendedMetadataAn optional block of extended metadata, represented in XML format and compressed for storage in the WOFF2 file.
PrivateDataAn optional block of private data for the font designer, foundry, or vendor to use.

3.1. Data types

Data Types
UInt88-bit unsigned integer.
Int1616-bit signed integer in 2’s complement format, stored big-endian.
UInt1616-bit unsigned integer, stored big-endian.
255UInt16Variable-length encoding of a 16-bit unsigned integer for optimized intermediate font data storage.
UIntBase128Variable-length encoding of 32-bit unsigned integers.

255UInt16 Data Type

255UInt16 is a variable-length encoding of an unsigned integer in the range 0 to 65535 inclusive. This data type is intended to be used as intermediate representation of various font values, which are typically expressed as UInt16 but represent relatively small values. Depending on the encoded value, the length of the data field may be one to three bytes, where the value of the first byte either represents the small value itself or is treated as a code that defines the format of the additional byte(s). The «C-like» pseudo-code describing how to read the 255UInt16 format is presented below:

UIntBase128 Data Type

3.2. WOFF2 Header

The WOFF 2.0 header includes an identifying signature and provides the information about the compressed and uncompressed sizes of encapsulated font data. It also indicates the specific kind of font data included in the WOFF 2.0 file, font version number and provides offsets to additional data blocks included in the file.

WOFF2 Header
UInt32signature0x774F4632 ‘wOF2’
UInt32flavorThe «sfnt version» of the input font.
UInt32lengthTotal size of the WOFF file.
UInt16numTablesNumber of entries in directory of font tables.
UInt16reservedReserved; set to 0.
UInt32totalSfntSizeTotal size needed for the uncompressed font data, including the sfnt header,
directory, and font tables (including padding).
UInt32totalCompressedSizeTotal length of the compressed data block.
UInt16majorVersionMajor version of the WOFF file.
UInt16minorVersionMinor version of the WOFF file.
UInt32metaOffsetOffset to metadata block, from beginning of WOFF file.
UInt32metaLengthLength of compressed metadata block.
UInt32metaOrigLengthUncompressed size of metadata block.
UInt32privOffsetOffset to private data block, from beginning of WOFF file.
UInt32privLengthLength of private data block.

The «totalSfntSize» value in the WOFF2 Header is intended to be used for reference purposes only. It may represent the size of the uncompressed input font file, but if the transformed ‘glyf’ and ‘loca’ tables are present, the uncompressed size of the reconstructed tables and the total decompressed font size may differ substantially from the original total size specified in the WOFF2 Header.

4. Font directory

The font directory section consists of the table directory, containing a single entry for each unique font table in the input font file, and may also include an optional collection directory table, when the input font file is a font collection.

4.1. Table directory format

The table directory is an array of WOFF2 table directory entries, as defined below. The directory follows immediately after the WOFF2 file header; therefore, there is no explicit offset in the header pointing to this block. Its size is dependent on the exact content; thus, the best strategy for decoding is to process the file as a stream, rather than trying to access it randomly. Each table directory entry specifies the original size of a single font data table and, for those tables where an additional transform has been applied, the size of the transformed table. Transformed tables are identified by their ‘flags’ field that combines known table tags (bits 0-5, see «Known Table Tags») and transformation version number (bits 6 and 7, see the description below) defining the applied transform. The combination of the table tag and the transform version number defines the exact transform that was applied to a table, currently defined transforms are specified in details in clause 5 of this specification.

Contrary to the way how table directory entries are specified in the original input font file (where table directory entries are sorted in ascending alphabetical order), the WOFF2 table directory entries define the physical order of tables in which they have been processed and encoded as part of the compressed font data stream. It is a decoder responsibility to sort and reorder the reconstructed table directory when the font file is decompressed.

The format of each individual table directory entry is as follows:

TableDirectoryEntry
UInt8flagstable type and flags
UInt32tag4-byte tag (optional)
UIntBase128origLengthlength of original table
UIntBase128transformLengthtransformed length (if applicable)

The interpretation of the flags field is as follows. Bits [0..5] contain an index to the «known tag» table, which represents tags likely to appear in fonts. If the tag is not present in this table, then the value of this bit field is 63. Bits 6 and 7 indicate the preprocessing transformation version number (0-3) that was applied to each table. For all tables in a font, except for ‘glyf’ and ‘loca’ tables, transformation version 0 indicates the null transform where the original table data is passed directly to the Brotli compressor for inclusion in the compressed data stream. For ‘glyf’ and ‘loca’ tables, transformation version 3 indicates the null transform where the original table data was passed directly to the Brotli compressor without applying any pre-processing defined in subclause 5.1 and subclause 5.3. The transformed table formats and their associated transformation version numbers are described in details in clause 5 of this specification.

If multiple transformation versions are defined for a given table, an encoder should normally choose the transformation version that results in the smallest transformed table length, unless the reduction is so slight as to be insignificant.

Known Table Tags
FlagTagFlagTagFlagTagFlagTag
0cmap16EBLC32CBDT48gvar
1head17gasp33CBLC49hsty
2hhea18hdmx34COLR50just
3hmtx19kern35CPAL51lcar
4maxp20LTSH36SVG52mort
5name21PCLT37sbix53morx
6OS/222VDMX38acnt54opbd
7post23vhea39avar55prop
8cvt24vmtx40bdat56trak
9fpgm25BASE41bloc57Zapf
10glyf26GDEF42bsln58Silf
11loca27GPOS43cvar59Glat
12prep28GSUB44fdsc60Gloc
13CFF29EBSC45feat61Feat
14VORG30JSTF46fmtx62Sill
15EBDT31MATH47fvar63arbitrary tag follows

Please note that according to the SFNT-based font format specifications all table tags should consist of four characters. Table tags with less than four letters, such as ‘ cvt ‘ (tag value 0x63767420) are padded with trailing spaces.

The transformLength field is present in the table directory entry if, and only if, the table has been processed by a non-null transform prior to Brotli compression. For tables that are not transformed, no transformLength field is present in the directory entry.

The field containing the transformed length provides information about the transformed table size prior to it being compressed by [ Brotli ]. This field is optional and is present only for certain tables (see below the description of the «Compressed data format»). Please note that while the transformed length can be relied upon to determined the decompressed table size, the original table length of the transformed font table should be treated with caution.

The reconstruction process of transformed tables guarantees preserving the functionality of the tables but may produce binary results that are different from the original data. For example, ‘glyf’ table records may have outline point coordinates encoded using one- or two-byte format, and the repetitive values can either be explicitly duplicated in the coordinate stream or omitted (which would be indicated by the flags byte of the control point). Therefore, various representations of glyph outline points are possible that would produce identical rendering results; however, the binary data of reconstructed glyph records may differ significantly from the original data. See subclause 5.3.3 of the ISO «Open Font Format» [ OFF ] specification for details.

For this reason, the value of the origLength field of transformed table should be treated only as a reference and should not be relied upon in making memory allocation decisions when the WOFF2 data is decoded.

4.2. Collection directory format

The collection directory is present only if the input font is a collection; i.e. if the value of the WOFF2 file header «flavor» field is set to 0x74746366 (‘ttcf’). If present, the collection directory follows immediately after the table directory. The collection directory consists of a CollectionHeader and one or more CollectionFontEntry records.

If input font is a collection, the table directory contains a single entry for each unique table in the entire collection, regardless of whether a table is shared among different fonts in a collection or not. Thus, the table directory for a font collection compressed with WOFF2 comprises all tables from all fonts contained in the font collection file.

The Collection directory starts with the Collection Header followed by an array of Collection Font Entries.

CollectionHeader
UInt32versionThe Version of the TTC Header in the original font.
255UInt16numFontsThe number of fonts in the collection.

Collection font entries specify each font in the collection (defined by CollectionHeader «numFonts» field). The format of each individual collection font entry is as follows:

CollectionFontEntry
255UInt16numTablesThe number of tables in this font
UInt32flavorThe «sfnt version» of the font
255UInt16index[numTables]The index identifying an entry in the Table Directory for each table in this font (where the index of the first Table Directory entry is zero.)

5. Compressed data format

The process of decoding the table data in a WOFF2 font file can be specified by decompressing the byte-level compression of the CompressedFontData field, yielding a «table data block», then applying additional decoding steps as described below. An actual implementation is free to combine these steps or perform some of the steps in an incremental or streaming fashion, but the results must be consistent with the sequential process as specified here.

The decompressed and reconstructed table data MUST be stored in the format specified by the [ OFF ] specification. Each reconstructed table directory entry MUST contain a valid ‘checkSum’ value, the decoder MUST recalculate the checkSum value for each decoded table. Also, due to modifying transforms applied to glyf and loca tables, the decoder MUST recalculate the checkSumAdjustment value of the entire font and MUST store the updated value in the head table.

The known table flag values should not be relied upon in determining the presence of transformed tables, it is feasible that e.g. the glyf table can be represented in the table directory with either flag = 10 and no tag, or with flag = 63 and ‘glyf’ tag that follows. The combination of flags value that defines a transform version number and the table tag should be used to determine the applied transform.

CFF table processing and de-subroutinization.

Since the CFF pre-processing / de-subroutinization is considered an external step that can be implemented prior to WOFF2 encoding, it is not covered by this specification. Font producers have an opportunity to optimize their production process to either reduce the compressed font size for fastest webfont data transfer at the expense of increasing the output CFF font size (which will also improve rendering performance) or to keep subroutinized CFF data to minimize input/output font size.

The WOFF 2.0 encoders MUST also set bit 11 of the ‘flags’ field of the head table (see [ OFF ] specification) to indicate that a recreated font file was subjected to lossless modifying transform.

5.1. Transformed glyf table format

The glyf table data can be presented in the WOFF2 file in one of two formats defined by the transformation version number (encoded in the table directory flag bits, see subclause 4.1 for details). The transformation version «3» defines a null transform where the content of the glyf table is presented in its original, unmodified format. The transformation version «0», specified below, is optional and can be applied to eliminate certain redundancies in the glyf table data.

The version «0» of the glyf table transformation (as defined by the table directory flag bits, see subclause 4.1 for details) specified in this subclause is intended to reduce redundant information and provide a more efficient encoding of the actual TrueType outlines of glyphs. The modified transformation is based on a similar transformation described in MicroType Express [ MTX ] specification. The reference to MTX is informative; the details of the modified transformation are stated below and this section is normative.

While glyf table transformation preserves the functionality and fidelity of rendering for every glyph in a font, it will most likely result in producing a new set of glyph records that will not be a binary match to the original font. According to the encoding rules specified in subclause 5.3.3 of [ OFF ], there may be multiple valid reconstructions of a glyph record. It is possible that depending on the context and on the level of optimizations being applied to reconstructed glyf table data, the size of the reconstructed table may be greater than, less than, or equal to the original size of the glyf table of the input font compressed by WOFF2. Neither this specification nor the [ OFF ] standard mandate specific optimizations being applied on the font data; therefore, it is the responsibility of WOFF2 decoder implementations to make sure that an adequate amount of memory is allocated when glyph records are being reconstructed from the WOFF2 file – the original glyf table size supplied as an origLength value for the transformed glyf table can only be used as a reference point.

For greater compression effectiveness, the glyf table is split into several substreams, to group like data together. The transformed table consists of a number of fields specifying the size of each of the substreams, followed by the substreams in sequence. During the decoding process the reverse transformation takes place, where data from various separate substreams are recombined to create a complete glyph record for each entry of the original glyf table.

The bit 6 flag (OVERLAP_SIMPLE) is different, it can only be set once on the first flag of the glyph. If set, it indicates that contours of the glyph _may_ overlap. The OpenType spec doesn’t require this flag be set, and some (but not all) rasterizers would ignore this bit. Bit7 is reserved / unused.

Since flag bit6 is not required and bit 7 is reserved, in the original WOFF2 Recommendation they could simply be omitted when the source data wass encoded, and set to ‘0’ upon reconstruction of glyph data. Apparently, this has caused the loss of data for flag bit 6 in some fonts that have glyphs with overlapping contours where this optional bit 6 is set, and it’s an issue for some rasterizers that still rely on flag bit 6 setting to deal with contour overlaps.

This Candidate Correction solves the problem, firstly, by redefining the previously 32-bit version field in the transformed ‘glyf’ table to 16 bits, and adding a 16-bit new ‘optionFlags’ field in the space vacated. One of these bits has been defined to be used as a flag indicating the presence of the new data stream, which has been used to encode the presence of overlap flag (bit 6) values. Secondly, since the bit 6 flag can only be set once per glyph, a new numGlyphs-long bit array has been defined and appended to the end of the WOFF2 transformed ‘glyf’ table.

Transformed glyf Table
Data TypeSemanticDescription and value type (if applicable)
Fixedversion= 0x00000000
UInt16numGlyphsNumber of glyphs
UInt16indexFormatOffset format for loca table, should be consistent with indexToLocFormat of the original head table (see [ OFF ] specification)
UInt32nContourStreamSizeSize of nContour stream in bytes
UInt32nPointsStreamSizeSize of nPoints stream in bytes
UInt32flagStreamSizeSize of flag stream in bytes
UInt32glyphStreamSizeSize of glyph stream in bytes (a stream of variable-length encoded values, see description below)
UInt32compositeStreamSizeSize of composite stream in bytes (a stream of variable-length encoded values, see description below)
UInt32bboxStreamSizeSize of bbox data in bytes representing combined length of bboxBitmap (a packed bit array) and bboxStream (a stream of Int16 values)
UInt32instructionStreamSizeSize of instruction stream (a stream of UInt8 values)
Int16nContourStream[]Stream of Int16 values representing number of contours for each glyph record
255UInt16nPointsStream[]Stream of values representing number of outline points for each contour in glyph records
UInt8flagStream[]Stream of UInt8 values representing flag values for each outline point.
VaryglyphStream[]Stream of bytes representing point coordinate values using variable length encoding format (defined in subclause 5.2)
VarycompositeStream[]Stream of bytes representing component flag values and associated composite glyph data
UInt8bboxBitmap[]Bitmap (a numGlyphs-long bit array) indicating explicit bounding boxes
Int16bboxStream[]Stream of Int16 values representing glyph bounding box data
UInt8instructionStream[]Stream of UInt8 values representing a set of instructions for each corresponding glyph

The format is best characterized by describing the decoding process, especially indications of what are valid and invalid data. Note also that this format specifies the decoded result at the semantic level, not specific byte streams.

Upon reading the Transformed glyf Table, the decoding process iterates one glyph at a time. For each glyph, it reads zero or more bytes from each of the streams referenced in the Transformed glyf Table. Also, at the point of reconstructing a glyph, a decoder needs to store for each glyph the corresponding offset in the new reconstructed glyph table, and this data will collectively become the contents of the reconstructed loca table (see subclause 5.3 below for more information about the reconstruction of the loca table).

Reconstruction of Glyph Records

The reconstruction process begins by performing the following step to determine the encoded glyph type (simple, composite or empty glyph):

Decoding of Empty Glyphs

Decoding of Simple Glyphs

For a simple glyph (when nContour > 0), the process continues as follows:

Decoding of Composite Glyphs

1a. Read a UInt16 from compositeStream. This is interpreted as a component flag word as in the TrueType spec. Based on the flag values, there are between 4 and 14 additional argument bytes, interpreted as glyph index, arg1, arg2, and optional scale or affine matrix.

2a. Read the number of argument bytes as determined in step 2 a from the composite stream, and store these in the reconstructed glyph. If the flag word read in step 2 a has the FLAG_MORE_COMPONENTS bit (bit 5) set, go back to step 2 a.

3a. If any of the flag words had the FLAG_WE_HAVE_INSTRUCTIONS bit (bit 8) set, then read the instructions from the glyph and store them in the reconstructed glyph, using the same process as described in steps 4 and 5 above.

Finally, for both simple and composite glyphs, if the corresponding bit in the bounding box bit vector is set, then additionally read 4 Int16 values from the bbox stream, representing xMin, yMin, xMax, and yMax, respectively, and record these into the corresponding fields of the reconstructed glyph. For simple glyphs, if the corresponding bit in the bounding box bit vector is not set, then derive the bounding box by computing the minimum and maximum x and y coordinates in the outline, and storing that.

5.2. Decoding of variable-length X and Y coordinates

Simple glyph data structure defines all contours that comprise a glyph outline, which are presented by a sequence of on- and off-curve coordinate points. These point coordinates are encoded as delta values representing the incremental values between the previous and current corresponding X and Y coordinates of a point, the first point of each outline is relative to (0,0) point. To minimize the size of the dataset of point coordinate values, each point is presented as a (flag, xCoordinate, yCoordinate) triplet. The flag value is stored in a separate data stream and the coordinate values are stored as part of the glyph data stream using a variable-length encoding format consuming a total of 2-5 bytes per point.

Each of the 128 index values define the following properties and specified in details in the table below:

Please note that “Byte Count” field reflects total size of the triplet (flag, xCoordinate, yCoordinate), including ‘flag’ value that is encoded in a separate stream.

Triplet Encoding
IndexByte CountX bitsY bitsDelta XDelta YX signY sign
0208N/A0N/A
10+
2256
3256+
4512
5512+
6768
7768+
81024
91024+
102800N/AN/A
110+
12256
13256+
14512
15512+
16768
17768+
181024
191024+
2024411
211+
221+
231++
2417
2517+
2617+
2717++
2833
2933+
3033+
3133++
3249
3349+
3449+
3549++
36244171
371+
381+
391++
4017
4117+
4217+
4317++
4433
4533+
4633+
4733++
4849
4949+
5049+
5149++
52244331
531+
541+
551++
5617
5717+
5817+
5917++
6033
6133+
6233+
6333++
6449
6549+
6649+
6749++
68244491
691+
701+
711++
7217
7317+
7417+
7517++
7633
7733+
7833+
7933++
8049
8149+
8249+
8349++
8438811
851+
861+
871++
88257
89257+
90257+
91257++
92513
93513+
94513+
95513++
963882571
971+
981+
991++
100257
101257+
102257+
103257++
104513
105513+
106513+
107513++
1083885131
1091+
1101+
1111++
112257
113257+
114257+
115257++
116513
117513+
118513+
119513++
1204121200
121+
122+
123++
1245161600
125+
126+
127++

For additional information and background on the triplet encoding please see section 5.11 of the MTX proposal [ MTX ].

5.3. Transformed loca table format

The loca table data can be presented in the WOFF2 file in one of two formats defined by the transformation version number (encoded in the table directory flag bits, see subclause 4.1 for details). The transformation version «3» defines a null transform where the content of the loca table is presented in its original, unmodified format. The transformation version «0», although optional, MUST be applied to the loca table data whenever glyf table data is transformed. In other words, both glyf and loca tables must either be present in their transformed format or with null transform applied to both tables.

The version «0» of the loca table transformation (as defined by the table directory flag bits, see subclause 4.1 for details) is specified below.

5.4. Transformed hmtx table format

The hmtx table data can be presented in the WOFF2 file in one of two formats defined by the transformation version number (encoded in the table directory flag bits, see subclause 4.1 for details). The transformation version «0» defines a null transform where the content of the hmtx table is presented in its original, unmodified format. The transformation version «1», specified below, is optional and can be applied to eliminate certain redundancies in the hmtx table data.

The transformation version «1» exploits the built-in redundancy of the TrueType glyphs where the outlines of the glyphs designed according to the TrueType recommendations would likely have their left side bearing values equal to xMin value of the glyph bounding box. The hmtx table format is specified in subclause 5.2.4 of [ OFF ] and includes two arrays of left side bearing information for proportional and monospaced glyph runs. Each of these arrays can be eliminated from the original input font data and reconstructed from the glyph bounding box information if certain conditions are met.

The transformation version 1 described in this subclause is optional and can only be used when an input font is TrueType-flavoured (i.e. has a glyf table), and when the leftSideBearing values for each glyph in the proportional or monospaced glyph runs encoded in the hmtx table exactly match the corresponding xMin values in the glyf table. A special case needs to be checked when an encoded leftSideBearing value corresponds to an empty glyph, where hmtx table transform can only be applied if leftSideBearing of an empty glyph is set to zero.

5.5. Table order constraints

The following constraints on valid WOFF2 files are intended to facilitate a memory-efficient WOFF 2.0 file transfer and decoding process.

6. Extended Metadata Block

7. Private Data Block

A. Internet Media Type Registration

This appendix registers a new Internet Media type, under the font top level type [ RFC8081 ]. This appendix is in conformance with BCP 13 and W3CRegMedia.

WOFF 2.0 is an improvement on WOFF 1.0. The two formats have different Internet Media Types and may be used in parallel.

This media type registration is extracted from the WOFF 2.0 specification at W3C.

Applications that use this media type:

WOFF 2.0 is used by Web browsers, often in conjunction with HTML and CSS.

Additional information: Magic number(s): The signature field in the WOFF header MUST contain the «magic number» 0x774F4632 (‘wOF2’) File extension(s): woff2 Macintosh file type code(s): (no code specified) Macintosh Universal Type Identifier code: org.w3c.woff2 @font-face Format: woff2 Fragment Identifiers See Section 4.2 of [RFC8081] Person & email address to contact for further information:

Chris Lilley (www-font@w3.org).

Restrictions on usage:

The WOFF2 specification is a work product of the World Wide Web Consortium’s WebFonts Working Group.

The W3C has change control over this specification.

B. Changes

This appendix is informative.

Changes since the Recommendation of 01 March 2018

Changes since the Candidate Recommendation of 15 March 2016

Changes since the Working Draft of 14 April 2015

Changes since the First Public Working Draft of May 8, 2014

C. Considerations for Security and Privacy

This appendix is informative.

The W3C TAG is developing a Self-Review Questionnaire: Security and Privacy for editors of specifications to informatively answer.

No. Credit card information and the like is not stored in WOFF2.

No. Specifically, WOFF2 fonts are only available to the documents that reference them; they do not persist for use by other applications or documents on the user’s system.

No. WOFF2 fonts do not contain, or link to, scripts.

No. WOFF2 fonts are typically generated and stored on a server, and have no access to the user environment when generated. Once decompressed, they contain no active code and cannot inspect the user environment.

The Security section of the font top level type [ RFC8081 ] contains additional security-related information relevant to WOFF2.

WOFF2 uses Brotli compression. The Security Considerations section of the Brotli specification [ Brotli ] should be consulted, in addition to this appendix.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *