CFF-fontokkal való munka
CFF-fontokkal való munka
Ez a kézikönyv bemutatja, hogyan lehet betölteni és ellenőrizni CFF-font belső részeit karakterkészleteket, kódoló táblákat, szótárakat és indexstruktúrákat ?? az Aspose.Font FOSS Python használatával.
A Compact Font Format (CFF) betűtípusok a glyph-kontúrákat 2. típusú charstring programként tárolják. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff névterület CFF karakterek, kódoló táblázatok, szótárok és indexek olvasására.
CFF Charset
CffCharset a PostScript-i jelképek nevéhez. Hívás CffCharset.standard() a beépített ISO Adobe karakterkészlethez, majd használja az alábbi funkciókat: name_for() és a következők: gid_for() a jelölőjelző és név közötti fordításra.
from aspose_font.cff.charset import CffCharset
charset = CffCharset.standard()
name = charset.name_for(1) # PostScript name for GID 1
gid = charset.gid_for("A") # GID for PostScript name "A"CFF kódolás
CffEncoding a karakterkódokat jelölő kódokhoz. A szabványos kódolás az Adobe Latin karakterkészletét foglalja magában; unicode_to_gid() az egyes kódpontok keresésére és a get_all_codepoints() Minden feltérképezett érték listáját.
from aspose_font.cff.encoding import CffEncoding
enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()CFF szótár elemzése
CffDict.from_bytes() A CFF DICT-blobot egy operátor kulcsa által jelöltetett mappingbe alakítja. Minden egyes operator kulcs a betűtípus konfigurálására szolgáló számértékek listájába mutat, például az alapértelmezett szélesség vagy alprogramok elfordításaihoz.
from aspose_font.cff.dict_ import CffDict
d = CffDict.from_bytes(raw_bytes)
vals = d.get(21) # retrieve values for operator 21CFF index
CffIndex.from_reader() A CFF INDEX adatstruktúra egy bináris áramlással párszázódik. Az INDEX struktúrák változóhosszú adatok táblázatát, a szalagasztalokat és a CFC betűtípusok tárolását szolgálják.
from aspose_font.cff.index import CffIndex
from aspose_font._io import BinaryReader # internal API — may change between releases
import io
reader = BinaryReader(io.BytesIO(raw_index_bytes))
index = CffIndex.from_reader(reader)
print(f"INDEX entries: {len(index)}")2. típusú Charstring értelmezés
Type2Interpreter.interpret() egy 2. típusú charstring-t hajt végre és visszaadja a GlyphPath.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)Tippek és legjobb gyakorlatok
- Használat
CffEncoding.standard()alapvonalként; felülírni afrom_reader()beágyazott kódoláshoz CffDict.to_bytes()Újra sorozatosíthatja a módosított szótárakat.- A Charstring értelmezés csak a nyers glif-összevonat kivonjásához szükséges;
GlyphAccessora legtöbb felhasználási esetet magasabb szinten fedezi.
API-referencia összefoglaló
| Rendszer / módszer | Leírás |
|---|---|
CffCharset.standard() | Standard ISO Adobe karakterkészlet |
CffCharset.name_for(gid) | PostScript név egy glyph ID-nek |
CffCharset.gid_for(name) | PostScript név Glyph ID-je |
CffEncoding.standard() | Standard CFF kódoló táblázat |
CffEncoding.unicode_to_gid(cp) | A térkép kódpontja a GID-hez |
CffDict.from_bytes(data) | A CFF-DICT nyers elemzése |
CffDict.get(operator) | A DICT-üzemeltető értékeinek megszerzése |
CffIndex.from_reader(reader) | A CFF INDEKSZÁSA elemzése |
Type2Interpreter.interpret(cs, pd) | 2. típusú charstring végrehajtása |