Въведение

Aspose.Font FOSS for Python provides a coherent set of classes for every common задача за управление на шрифтовете: зареждане на файлове с много формати, четене на метаданни и данни с глифи, конвертиране между формати, поднастройка за доставка в уеб и почистване на файлове; Бинарни таблици за оптимален размер на файла. Това ръководство се разглежда чрез всеки основен капацитет с примери за работен код, извлечени от проверения API на библиотеката.

Пакетът (aspose-font) е с лиценз на MIT, изисква Python 3.10+, и няма Осигуряване на зависимости от библиотека за шрифтове. Инсталирайте с pip install aspose-font>=1.0.0.


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

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

FontLoader е единната входна точка за всички операции по зареждане на шрифтовете. open() Method приема път на файла (str или Path) и автоматично открива формата. load() Методът приема сурови байтове за работните потоци в паметта. И двамата връщат a Font- с тип Предмет, който можете да прегледате незабавно.

from aspose_font.loader import FontLoader

# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")

# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
    font_bytes = f.read()
font = FontLoader.load(font_bytes)

Четене на метаданни от шрифт чрез клас “база” на шрифтовете

След зареждане, Font базови клас излага стандартни свойства на метаданните без: Изисква да анализираш бинарни таблици с шрифтове. font_name, font_family, font_style, и num_glyphs покриват най-често срещаните потребности от метаданни.

from aspose_font.loader import FontLoader

font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name:   {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

Кодиране на глифи и достъп

FontEncoding Картите с код на Unicode сочат към идентификатори за глифи. Използвайте unicode_to_gid() за: единични кодови точки или get_all_codepoints() да се изброят всички обхватни данни за Фонт. GlyphAccessor след това извлича обекти с глифи по ID чрез get_glyph_by_id(), чрез Unicode get_glyph_by_unicode(), или за текстови нишки чрез: get_glyphs_for_text().

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")

# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41)  # 'A'
print(f"Glyph ID for 'A': {glyph_id}")

# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

# Inspect path commands
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Преобразуване на шрифтове с FontConverter

FontConverter.convert() преобразува заредения шрифт между поддържани формати. Прехвърлете източник шрифт и идентификатор на формата за цел, за да получите нов обект от шрифтовете в целта Методът обработва CFF, TTF, WOFF , WOff2, EOT и Type 1 като източник и тип. Цели.

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter

source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")

Оптимизация на уебсайта с FontCleaner

FontCleaner.clean_for_web() премахва бинарните таблици, които не са необходими за уеб. доставка на шрифтове специално DSIG, FFTM и meta ?? и ленти Mac платформа (platform_id=1) Резултатът е по-слаба двоична, която намалява мрежата. Допълнителни аргументи за ключови думи ви позволяват да използвате тези функции, без да се докосвате към контузи или метрики. запазване на специфични типове таблици, ако е необходимо.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

font = FontLoader.open("Roboto-Regular.ttf")

# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)

# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
    font,
    drop_metadata_tables=False,
    drop_legacy_tables=True,
    drop_mac_names=True,
)

Инспекция на пътя на глифата

Всяка година. Glyph обектът излага своята очертание като GlyphPath чиито commands последователност съдържа типизирани инстанции на: MoveTo, LineTo, QuadraticTo, CurveTo, и ClosePath.Всяка команда носи съответните атрибути на координатите например, CurveTo има: x1, y1, x2, y2, x, y позволяващ добив на сурови Безиер данни за рендеринг, генериране на SVG или геометрия на сблъсъка.

from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")

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

pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")

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

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

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

Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at Aspose-font-foss/Aspose.Font-FOSS-for-Python (Фонт за Python) Пакетът е на PyPI като aspose-font.


Започваме

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