Въведение
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.