aspose.info
UK

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 longVersionНомер версії цього формату - 0x00020002
unsigned longFlagsProcessing Flags
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
byteкурсивЯкщо біт для ITALIC установлено в OS/2.fsSelection, значення буде 0x01 - див. https://learn.microsoft.com/en-us/typography/opentype/spec/os2#fss
unsigned longВагаЗначення ваги для цього шрифту – див. 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 shortMagicNumberМагічне число для файлу 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 shortPadding1Заповнення для підтримки довгого вирівнювання. Значення заповнення завжди має бути 0x0000.
unsigned shortFamilyNameSizeКількість байтів, які використовуються масивом FamilyName
байтНазваРодини[РозмірРодини]Масив із символів UTF-16 довжиною в байти РозмірРодини. Це рядок сімейства шрифтів англійської мови, знайдений у таблиці імен шрифту (ідентифікатор назви = 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 longEUDCCodePageЗначення кодової сторінки, необхідне для підтримки шрифту EUDC.
unsigned shortPadding6Значення заповнення завжди має бути встановлено на 0x0000.
unsigned shortSignatureSizeКількість байтів, які використовуються масивом Signature. Наразі зарезервовано та має бути встановлено на 0x0000.
байтПідпис[SignatureSize]Наразі зарезервовано. Якщо SignatureSize дорівнює 0x0000, цей масив не має довжини.
unsigned longEUDCFlagsПрапори обробки для шрифту EUDC. Типовими значеннями можуть бути TTEMBED_XORENCRYPTDATA і TTEMBED_TTCOMPRESSED.
unsigned longEUDCFontSizeКількість байтів, які використовуються масивом Signature.
byteEUDCFontData[EUDCFontSize]Кількість байтів, що використовуються для даних шрифту EUDC. Якщо EUDCFontSize дорівнює 0x00000000, цей масив не має довжини.
byteFontData[FontDataSize]Дані шрифту для цього файлу EOT. Дані можуть бути стиснуті або зашифровані XOR, як зазначено прапорами обробки.

Список літератури

Див. також