aspose.info
RU

EOT — формат файла шрифта TrueType

Обновлено

.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 longEOTSizeОбщая длина структуры в байтах (включая данные строки и шрифта)
unsigned longFontDataSizeДлина шрифта OpenType (FontData) в байтах
unsigned longВерсияНомер версии этого формата — 0x00020002
unsigned longФлагиФлаги обработки
byte[10]FontPANOSEЗначение PANOSE для этого шрифта — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#pan
byteCharsetВ Windows это производное от TEXTMETRIC.tmCharSet. Это значение определяет набор символов шрифта. DEFAULT_CHARSET (0x01) указывает отсутствие предпочтения. - См. https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-textmetrica
byteItalicЕсли в OS/2.fsSelection установлен бит для ITALIC, значение будет 0x01 — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fss
unsigned longWeightЗначение веса для этого шрифта — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#wtc
unsigned shortfsTypeТиповые флаги, предоставляющие информацию о разрешениях на встраивание — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fst
unsigned shortMagicNumberMagic number для файла EOT — 0x504C. Используется для проверки на повреждение данных.
unsigned longUnicodeRange1os/2.UnicodeRange1 (биты 0–31) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur
unsigned longUnicodeRange2os/2.UnicodeRange2 (биты 32–63) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur
unsigned longUnicodeRange3os/2.UnicodeRange3 (биты 64–95) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur
unsigned longUnicodeRange4os/2.UnicodeRange4 (биты 96–127) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ur
unsigned longCodePageRange1CodePageRange1 (биты 0–31) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#cpr
unsigned longCodePageRange2CodePageRange2 (биты 32–63) — см. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#cpr
unsigned longCheckSumAdjustmenthead.CheckSumAdjustment — см. https://learn.microsoft.com/en-us/typography/opentype/spec/head
unsigned longReserved1Reserved — должно быть 0
unsigned longReserved2Reserved — должно быть 0
unsigned longReserved3Reserved — должно быть 0
unsigned longReserved4Reserved — должно быть 0
unsigned shortPadding1Padding для сохранения выравнивания по длине. Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortFamilyNameSizeЧисло байтов, используемых массивом FamilyName
byteFamilyName[FamilyNameSize]Массив символов UTF-16 длиной FamilyNameSize в байтах. Это строка семейства шрифтов для английского языка, найденная в таблице имен шрифта (идентификатор имени = 1). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name
unsigned shortPadding2Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortStyleNameSizeЧисло байтов, используемых StyleName
byteStyleName[StyleNameSize]Массив символов UTF-16 длиной StyleNameSize в байтах. Это строка подсемейства шрифтов английского языка, найденная в таблице имен шрифта (идентификатор имени = 2). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name
unsigned shortPadding3Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortVersionNameSizeЧисло байтов, используемых VersionName
bytesVersionName[VersionNameSize]Массив символов UTF-16 длиной в байтах VersionNameSize. Это строка версии на английском языке, найденная в таблице имен шрифта (идентификатор имени = 5). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name
unsigned shortPadding4Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortFullNameSizeЧисло байтов, используемых FullName
byteFullName[FullNameSize]Массив символов UTF-16 длиной FullNameSize в байтах. Это строка полного имени на английском языке, найденная в таблице имен шрифта (идентификатор имени = 4). См. https://learn.microsoft.com/en-us/typography/opentype/spec/name
unsigned shortPadding5Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortRootStringSizeЧисло байтов, используемых массивом RootString
byteRootString[RootStringSize]Массив символов UTF-16 длиной RootStringSize в байтах.
unsigned longRootStringCheckSumЗначение контрольной суммы RootString. См. алгоритм обработки RootStringChecksum ниже.
unsigned longEUDCodePageЗначение кодовой страницы, необходимое для поддержки шрифтов EUDC.
unsigned shortPadding6Значение заполнения всегда должно быть установлено на 0x0000.
unsigned shortSignatureSizeЧисло байтов, используемых массивом Signature. В настоящее время зарезервировано и должно быть установлено на 0x0000.
byteSignature[SignatureSize]В настоящее время зарезервировано. Если SignatureSize равен 0x0000, этот массив не имеет длины.
unsigned longEUDCFlagsФлаги обработки для шрифта EUDC. Типичными значениями могут быть TTEMBED_XORENCRYPTDATA и TTEMBED_TTCOMPRESSED.
unsigned longEUDCFontSizeЧисло байтов, используемых массивом подписи.
byteEUDCFontData[EUDCFontSize]Количество байтов, используемых для данных шрифта EUDC. Если EUDCFontSize равен 0x00000000, этот массив не имеет длины.
byteFontData[FontDataSize]Данные шрифта для этого файла EOT. Данные могут быть сжаты или зашифрованы XOR, как указано в флагах обработки.

использованная литература

См. также