.EOT вариант №
Файл с расширением .eot — это шрифт OpenType, встроенный в документ. Они в основном используются в веб-файлах, таких как веб-страницы. Он был создан Microsoft и поддерживается продуктами Microsoft, включая файл презентации PowerPoint .pps. Файл не имеет основного назначения и является своего рода сопроводительным документом к основному документу или веб-странице. Подобно шрифтам OTF, EOT поддерживает контуры Postscript и TrueType для глифов. Файлы EOT имеют меньший размер по той причине, что они сжаты с использованием сжатия LZ. EOT использует инструмент Microsoft для создания шрифта из существующих шрифтов TTF/OTF.
Краткая история
Шрифт EOT был представлен W3C в 2007 году как часть CSS3, но из-за его требований к постоянной установке в удаленной системе стал причиной его отклонения. Он был повторно представлен в марте 2008 года, но W3C в конечном итоге выбрал формат веб-шрифта (WOFF), который тогда был стандартизирован.
Формат файла EOT
Подробную информацию о формате файла EOT можно найти на странице отправки W3, где подробно описана структура, используемая этим форматом шрифта. EOT состоит из одной структуры EMBEDDEDFONT, которая предоставляет достаточно базовой информации о имени шрифта и поддерживаемых символах. Упаковка этой информации позволяет агентам пользователя избежать распаковки, распаковки или установки шрифта, если он уже присутствует на машине.
Структура EMBEDDEDFONT
Структура EMBEDDEDFONT претерпела три ревизии с добавлением дополнительных данных в конце структуры с каждой ревизией. Последняя версия структуры EMBEDDEDFONT показана ниже.
Тип данных | Имя записи | Описание |
---|---|---|
unsigned long | EOTSize | Общая длина структуры в байтах (включая данные строки и шрифта) |
unsigned long | FontDataSize | Длина шрифта OpenType (FontData) в байтах |
unsigned long | Версия | Номер версии этого формата — 0x00020002 |
unsigned long | Флаги | Флаги обработки |
byte[10] | FontPANOSE | Значение PANOSE для этого шрифта — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#pan |
byte | Charset | В Windows это производное от TEXTMETRIC.tmCharSet. Это значение определяет набор символов шрифта. DEFAULT_CHARSET (0x01) указывает отсутствие предпочтения. - См. https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-textmetrica |
byte | Italic | Если в OS/2.fsSelection установлен бит для ITALIC, значение будет 0x01 — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fss |
unsigned long | Weight | Значение веса для этого шрифта — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#wtc |
unsigned short | fsType | Типовые флаги, предоставляющие информацию о разрешениях на встраивание — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fst |
unsigned short | MagicNumber | Magic number для файла EOT — 0x504C. Используется для проверки на повреждение данных. |
unsigned long | UnicodeRange1 | os/2.UnicodeRange1 (биты 0–31) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur |
unsigned long | UnicodeRange2 | os/2.UnicodeRange2 (биты 32–63) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur |
unsigned long | UnicodeRange3 | os/2.UnicodeRange3 (биты 64–95) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur |
unsigned long | UnicodeRange4 | os/2.UnicodeRange4 (биты 96–127) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur |
unsigned long | CodePageRange1 | CodePageRange1 (биты 0–31) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#cpr |
unsigned long | CodePageRange2 | CodePageRange2 (биты 32–63) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#cpr |
unsigned long | CheckSumAdjustment | head.CheckSumAdjustment — см. https://learn.microsoft.com/en-us/typography/opentype/spec/head |
unsigned long | Reserved1 | Reserved — должно быть 0 |
unsigned long | Reserved2 | Reserved — должно быть 0 |
unsigned long | Reserved3 | Reserved — должно быть 0 |
unsigned long | Reserved4 | Reserved — должно быть 0 |
unsigned short | Padding1 | Padding для сохранения выравнивания по длине. Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | FamilyNameSize | Число байтов, используемых массивом FamilyName |
byte | FamilyName[FamilyNameSize] | Массив символов UTF-16 длиной FamilyNameSize в байтах. Это строка семейства шрифтов для английского языка, найденная в таблице имен шрифта (идентификатор имени = 1). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name |
unsigned short | Padding2 | Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | StyleNameSize | Число байтов, используемых StyleName |
byte | StyleName[StyleNameSize] | Массив символов UTF-16 длиной StyleNameSize в байтах. Это строка подсемейства шрифтов английского языка, найденная в таблице имен шрифта (идентификатор имени = 2). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name |
unsigned short | Padding3 | Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | VersionNameSize | Число байтов, используемых VersionName |
bytes | VersionName[VersionNameSize] | Массив символов UTF-16 длиной в байтах VersionNameSize. Это строка версии на английском языке, найденная в таблице имен шрифта (идентификатор имени = 5). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name |
unsigned short | Padding4 | Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | FullNameSize | Число байтов, используемых FullName |
byte | FullName[FullNameSize] | Массив символов UTF-16 длиной FullNameSize в байтах. Это строка полного имени на английском языке, найденная в таблице имен шрифта (идентификатор имени = 4). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name |
unsigned short | Padding5 | Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | RootStringSize | Число байтов, используемых массивом RootString |
byte | RootString[RootStringSize] | Массив символов UTF-16 длиной RootStringSize в байтах. |
unsigned long | RootStringCheckSum | Значение контрольной суммы RootString. См. алгоритм обработки RootStringChecksum ниже. |
unsigned long | EUDCodePage | Значение кодовой страницы, необходимое для поддержки шрифтов EUDC. |
unsigned short | Padding6 | Значение заполнения всегда должно быть установлено на 0x0000. |
unsigned short | SignatureSize | Число байтов, используемых массивом Signature. В настоящее время зарезервировано и должно быть установлено на 0x0000. |
byte | Signature[SignatureSize] | В настоящее время зарезервировано. Если SignatureSize равен 0x0000, этот массив не имеет длины. |
unsigned long | EUDCFlags | Флаги обработки для шрифта EUDC. Типичными значениями могут быть TTEMBED_XORENCRYPTDATA и TTEMBED_TTCOMPRESSED. |
unsigned long | EUDCFontSize | Число байтов, используемых массивом подписи. |
byte | EUDCFontData[EUDCFontSize] | Количество байтов, используемых для данных шрифта EUDC. Если EUDCFontSize равен 0x00000000, этот массив не имеет длины. |
byte | FontData[FontDataSize] | Данные шрифта для этого файла EOT. Данные могут быть сжаты или зашифрованы XOR, как указано в флагах обработки. |