Въведение

Embedded OpenType (EOT) е компактен формат на шрифтове, разработен първоначално за вграждане на TrueTyme шрифт във уеб страници. EOT файлът обгръща TTF или OTF шрипт с фиксиран размер на надпис, съдържащ метаданни полета, които описват размерите на фонтите, версията, серия от символи и разрешения за включване. Въпреки че съвременното уелпром развитие до голяма степен се премести към WOFF/WOFF2, Eot файловете остават в обращение в стари документи и корпоративни приложения.

Aspose.Font FOSS for Python provides direct access to EOT font internals through the EotFont клас и неговия спътник, EotHeader.Можете да заредите EOT файл с FontLoader.open, четете полетата заглавие, преминаване през вътрешния TtfFont, и сериализиране на резултат обратно на байтове или към файл, използвайки Font.save.

Библиотеката е публикувана на PyPI като: aspose-font и лицензиран под MIT лиценз. Той няма задължителни търговски зависимости и работи със стандартното Python 3 изпълнително време.


Ключови характеристики

Зареждане на EOT шрифтове

Използване на: FontLoader.open за зареждане на EOT файл от път или обект байт. Методът връща един EotFont при случай, когато открие EOT-сигнатурата:

from aspose_font import FontLoader, EotFont

font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)

print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # number of glyphs in the inner font

FontLoader.open чете разширението на файла и магията заглавие, за да открие формата. - Самостоятелно. font_type argument е необходим за общи файлове с шрифт.


Четене на метаданните от EotHeader

EotFont излага полетата заглавие директно като свойства на класа. Тези съответстват на полетата, определени в двоичната спецификация за EOT:

from aspose_font import FontLoader, EotFont, EotSerializer

# Load EOT — FontLoader returns an EotFont instance for .eot files
loaded = FontLoader.open("fonts/sample.eot")

# Serialize back to bytes to confirm the font loaded correctly
eot_bytes = EotSerializer.serialize(loaded)
print(f"EOT data loaded: {len(eot_bytes)} bytes")

# Base Font properties work on any loaded font
print("Font name:", loaded.font_name)
print("Glyphs   :", loaded.num_glyphs)

Съветът на ЕС EotFont класът излага следните метаданни на заглавието като свойства:

  • eot_version (int) версия в формат EOT (напр. 0x00020002)
  • flags (int) вграждане на знаци за разрешение
  • charset (int) идентификатор на комплект от символи (0 = ANSI, 1 = DEFAULT)
  • italic (int) курсивно знаме (0 или 1)
  • weight (int) тегло на шрифта (напр. 400 за обикновен, 700 за дебели)
  • fs_type (int) OS/2 fsType вграждащи битове

Използване на: flags и в) fs_type да се определи дали шрифта позволява поднастройка или вграждане, което е от значение при обработка на шрифтове за преразпределителни тръбопроводи.


Достъп до вътрешния код на Фонт

Всяка година. EotFont Облича стандартен шрифт на TrueType. inner_font Доклади за собственост в) от TtfFont например, което ви дава достъп до пълния набор от TrueType таблици:

from aspose_font import FontLoader, EotFont

loaded = FontLoader.open("fonts/sample.eot")

# Metrics are accessible directly from the loaded font
metrics = loaded.metrics
print("Units per em :", metrics.units_per_em)
print("Ascender     :", metrics.ascender)
print("Descender    :", metrics.descender)
print("Line gap     :", metrics.line_gap)

Съветът на ЕС inner_font имот на EotFont Връща опакованото. TtfFont В този случай, като се предвиди: достъп до пълния набор от таблици TrueType, двойки ядра и таблиците за кодиране.


Сериализиране на EOT в байтове

EotSerializer.serialize преобразува всякакви Font обект към сурови EOT байтови нишки:

from aspose_font import FontLoader, EotFont, EotSerializer

font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)

eot_bytes = EotSerializer.serialize(font)
with open("output/sample_copy.eot", "wb") as fh:
    fh.write(eot_bytes)

print(f"Serialized {len(eot_bytes)} bytes")

Преобразуване на TTF в EOT

EotSerializer.serialize приема всякакви Font например, така че можете да заредите TTF и Сериализирайте го директно в EOT байтове:

from aspose_font import FontLoader, EotFont, EotSerializer

ttf = FontLoader.open("fonts/Roboto-Regular.ttf")
eot_bytes = EotSerializer.serialize(ttf)

with open("output/Roboto-Regular.eot", "wb") as fh:
    fh.write(eot_bytes)

reloaded = FontLoader.open("output/Roboto-Regular.eot")
assert isinstance(reloaded, EotFont)
print("Converted and verified:", reloaded.font_name)

Метрични шрифтове и двойки ядра

Съветът на ЕС EotFont наследява пълния дял. Font интерфейс, така че метриките и кодирането са достъпни директно без преминаване през inner_font:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/sample.eot")

metrics = loaded.metrics
print(f"Ascender : {metrics.ascender}")
print(f"Descender: {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline: {metrics.underline_position}")

for pair in loaded.get_kern_pairs():
    print(f"  Kern: {pair}")

Бързо стартиране

Инсталирайте библиотеката:

.venv/bin/pip install aspose-font

Зареждане и проверка на EOT шрифт:

from aspose_font import FontLoader, EotFont, EotSerializer

loaded = FontLoader.open("sample.eot")

# Base font info
print(f"Font name : {loaded.font_name}")
print(f"Glyphs    : {loaded.num_glyphs}")

# Metrics
metrics = loaded.metrics
print(f"UPM       : {metrics.units_per_em}")
print(f"Ascender  : {metrics.ascender}")

# Serialize the loaded font back to EOT bytes
eot_bytes = EotSerializer.serialize(loaded)
print(f"Serialized: {len(eot_bytes)} bytes")

Подкрепени формати

Формат на изображениетоРазширяване на срокаПрочети.Напиши.
TTF.ttf (на английски)
OTF.отв.
EOT.- Не съм.
CFF.cff (включително счетоводни)
TYPE1.pfb/.pfa
WOFF.- Да, добре.
WOFF2.Wowf2 (включително вж.

Всички формати, изброени по-горе са поддържани за зареждане чрез FontLoader.open.- Писане. към конкретен формат използва Font.save или с други: EotSerializer.serialize за ЕОТ.


Отворени източници и лицензиране

Aspose.Font FOSS for Python is released under the MIT License. You can use it in Лични, търговски и с отворен код проекти без никакви разходи. Източният код е Пакетът се разпространява чрез PyPI като: aspose-font.


Започваме

Свързани ресурси