Introduction
Compact Font Format (CFF) OpenType içindeki kullanılan ikili glyph açıklama biçimidir. PostScript uyumlu bir çıkış motoru ile yazı tipleri. Aspose.Python için fon FOSS sergiliyor Özel bir sınıf, aşağıdaki aspose_font.cff Okuma ve okuma için bir isim CFF veri yapılarını incelemek: CffFont, CffCharset, CffEncoding, CffDict, CffIndex,ve Type2Interpreter.Bu yazı, CFF yazı tiplerini nasıl yüklediğini anlatıyor., İç tablolarını gezin ve kütüphaneyi kullanarak çarşaf programlarını yorumlayın.
Paket MIT lisanslıdır. yükleme ile birlikte pip install aspose-font>=1.0.0.
Ana Özellikler
CFF Font Yazdırma
FontLoader.open() CFF formatını otomatik olarak tespit eder - bir standalone geçirir .cff bir dosya veya bir OTF dosyası, bir CFF çıkış tablosu içerir. geri gönderilen nesne bir CffFont (Daha fazla ulaşılabilir) cff_font Mülkiyet üzerinde TtfFont OTF dosyaları için.
from aspose_font.loader import FontLoader
# Load a standalone CFF file
font = FontLoader.open("OpenSans.cff")
# Load a standalone CFF file (auto-detected from format)
font = FontLoader.open("OpenSans.cff")
print(font.font_name, font.num_glyphs)
CFF Charset - Glyph ID’leri Adlara Haritalama
CffCharset GIF (Glyph IDs) ile PostScript Glif isimleri arasındaki haritalar. standard() için ISO standart Adobe şarj veya from_reader() Bir karseti binerden ayırmak için CFF Bilgileri - The name_for() Metoda bir GID için PostScript adını iade eder ve gid_for() ters bakış açısı yapılır.
from aspose_font.cff.charset import CffCharset
charset = CffCharset.standard()
print(charset.name_for(1)) # ".notdef" or similar
print(charset.gid_for("A")) # GID for the PostScript name "A"
CFF Encoding - Unicode-to-GID Haritalama
CffEncoding CFF kodlama tablosunu yönetir, karakter kodlarını glif kimliklerine haritalır. standard() standart kodlama yaptırmak, expert() Uzman kodunu geri getirir ve from_reader() CFF biner verilerden özelleştirilmiş bir kodlama. kullanın unicode_to_gid() için Unicode kod noktası ile bir GID’i inceleyin ve get_all_codepoints() Tüm kartları listelemek için Kod noktaları.
from aspose_font.cff.encoding import CffEncoding
encoding = CffEncoding.standard()
gid = encoding.unicode_to_gid(0x41) # Unicode for 'A'
all_codepoints = encoding.get_all_codepoints()
print(f"Standard encoding covers {len(all_codepoints)} code points")
CFF Sözlük Parsing
CFF yazı tipleri, üst düzey ve özel metadata sözlüklerde depolamaktadır. CffDict.from_bytes() bir CFF DICT blob parses ve size verir get() ve set() Operatör anahtarı ile erişim. TopDict.from_dict() Bu, üst düzey CFF sözlükleri için uzmanlaşmıştır ve PrivateDict.from_dict() Özel DICT’ler için de aynı şey.
from aspose_font.cff.dict_ import CffDict
# Parse a raw CFF DICT from bytes
raw_dict_bytes = b"..." # CFF-encoded DICT bytes
d = CffDict.from_bytes(raw_dict_bytes)
vals = d.get(21) # retrieve values for operator 21 (PostScript CharstringType)
CFF Endeksi Yapıları
CffIndex CFF INDEX veri yapısını temsil eder - uzunluğun önceden belirlenmiş bir değişken aralığı. Uzunluk byte çubuklar, şarjlar için kullanılan, subrs ve isim tablolar. from_reader() Parseli Bir biner okuyucu indeksi ve sonuç tam endeks tarafından abone edilebilir.
from aspose_font.cff.index import CffIndex
from aspose_font._io import BinaryReader # internal API — may change between releases
import io
raw_index = b"..." # raw CFF INDEX bytes
reader = BinaryReader(io.BytesIO(raw_index))
index = CffIndex.from_reader(reader)
print(f"INDEX entries: {len(index)}")
Tip 2 Çerçeve Yorumları
Type2Interpreter Tip 2 charstring programı (kompak PostScript gibi) çalıştırır CFF yazı tiplerinde kullanılan formatı) ve bir GlyphPath İletişim Bilgileri - Call interpret() bu ilanı beğen Eki 14 with the charstring bytes and the associated private dictionary. (bu ilan) resim har. bu CFF çarşaflarından tam bir glif çıkışları çıkarmanıza olanak tanır. PostScript Yorumları.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)
for cmd in glyph_path.commands:
print(type(cmd).__name__, cmd)
Hızlı Başlangıç
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
# Load an OTF with embedded CFF outlines
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")
Desteklenen Formatlar
| Format | Extension | Read | Write |
|---|---|---|---|
| CFF | .CFF | ✓ | ✓ |
| OTF | .OTP | ✓ | ✓ |
| TTF | .TFK | ✓ | ✓ |
| WOFF | .Wooff | ✓ | ✓ |
| WOFF2 | .YÜK 2 | ✓ | ✓ |
| EOT | .EOT | ✓ | ✓ |
| TYPE1 | .pfb / pfa için | ✓ | ✓ |
Açık Kaynak & Lisans
Aspose.Font FOSS for Python is MIT licensed. Source code is on GitHub at aspose-font-foss/Aspose.Font-FOSS-for-Python için. Piyasadan kurulum gibi aspose-font.