Introduction

Aspose.Font FOSS for Python provides a coherent set of classes for every common yazı tipi yönetimi görevi: çoklu biçimlerde yazı tipleri yükleme, metadata okuma ve Glif verileri, formattılar arasında dönüştürme, web teslimat için alt ayarlama ve temizleme optimum dosya boyutu için ikili tablolar. bu rehber her çekirdek kapasitesini geçiyor Kütüphanenin doğrulanmış API’sinden alınan çalışma kodları örnekleri ile.

Paketleme (aspose-font• MIT lisansı, Python 3.10+ gerektirir ve hiçbir OS düzeyinde yazı tipi kütüphanesi bağımlılıkları. yükleme ile pip install aspose-font>=1.0.0.


Ana Özellikler

FontLoader ile yazı yazma

FontLoader tüm yazı tipi yükleme işlemleri için tek giriş noktasıdır. statik open() Metod bir dosya yolu (str veya Path) kabul eder ve otomatik olarak biçimi tespit eder. load() Metoda, anıdaki çalışma akışları için ham byte kabul eder. her ikisi de bir FontTipi Hemen kontrol edebileceğiniz bir ürün.

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 Base Sınıfı ile Metadata Okuma

Bir kez yüklendiğinde, Font baz sınıfı standart metadata özelliklerini ortaya çıkarır İhtiyacınız olan biner yazı tipi tabloları. özellikleri font_name, font_family, font_style,ve num_glyphs En yaygın metadata ihtiyaçlarını karşılamak.

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}")


### Glyph Kodlama ve Erişim

`FontEncoding` Unicode kod noktaları haritalar glyph ID'ler. kullanın `unicode_to_gid()` için Tek kod noktaları veya `get_all_codepoints()` Tüm kapakları listelemek için Fonksiyonu için. `GlyphAccessor` Glyph nesneleri ID ile geri alır. `get_glyph_by_id()`, Unicode üzerinden `get_glyph_by_unicode()`,veya bir metin çubuğu aracılığıyla `get_glyphs_for_text()`.

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 ile yazı tipi dönüştürme

FontConverter.convert() Desteklenen formatlar arasında yüklü bir yazı tipi dönüştürür. kaynak yazı tipi ve hedef format tanımlayıcısı, hedefte yeni bir yazı tipleri elde etmek için Metoda CFF, TTF, WOFF ve Woff2, EOT ve Type 1’i hem kaynak olarak kullanır. Hedef için.

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

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

Web Optimizasyonu FontCleaner ile

FontCleaner.clean_for_web() Web için gereksiz olan biner tabloları kaldırır yazı tipi teslimatı – özellikle DSIG, FFTM ve meta – ve Mac platformu çubukları (platform_id=1) Ad tablosundan isim kayıtları. sonuç ağını azaltan daha zayıf bir ikili -Kaynaklar veya metrikler dokunmadan ödeme yükü. seçmeli anahtar kelime argümanları size izin verir Gerekirse özel tablo türlerini koruyun.

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 Path İncelemesi

Every Glyph nesne, çıkışını bir GlyphPath Kimin commands Süreli Bu tür örnekler içerir MoveTo, LineTo, QuadraticTo, CurveTo,ve ClosePath.Her komut ilgili koordinat atribüllerini taşıyor - örneğin, CurveTo Hatta x1, y1, x2, y2, x, y -Kuru Bézier’i çıkarmanıza izin verin Rendering, SVG veya çarpışma geometri için veriler.

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)}")

Hızlı Başlangıç

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")

Desteklenen Formatlar

FormatExtensionReadWrite
TTF.TFK
OTF.OTP
CFF.CFF
TYPE1.pfb / pfa için
WOFF.Wooff
WOFF2.YÜK 2
EOT.EOT

Açık Kaynak & Lisans

Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at aspose-font-foss/Aspose.Font-FOSS-for-Python için Piyasada olduğu gibi PIP’de de aspose-font.


Başlamaya başlar

İlgili Kaynaklar