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
| Format | Extension | Read | Write |
|---|---|---|---|
| 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.