Arbeta med CFF Fonts
Arbeta med CFF Fonts
Denna guide visar hur man laddar och inspekterar CFF-fonternalerna – charsets, kodningstabeller, ordböcker och indexstrukturer – med Aspose.Font FOSS för Python.
Compact Font Format (CFF) fonts lagrar glyph outlines som typ 2 charstring program. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff Namnplats för att läsa CFF-charsets, kodning av tabeller, ordböcker och index.
CFF Charset för
CffCharset kartor glyph IDs till PostScript glyf namn. ringa CffCharset.standard() för att få den inbyggda ISO-charset Adobe, använd sedan name_for() och gid_for() Översätt mellan glyph-ID och namn.
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 kodning
CffEncoding kartor teckenkoder till glyph ID. Standard kodning täcker Adobe Latin teckensnitt; använd unicode_to_gid() att se upp individuella kodpunkter och get_all_codepoints() för att lista varje mappad värde.
from aspose_font.cff.encoding import CffEncoding
enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()CFF ordbok Parsing
CffDict.from_bytes() Pars en rå CFF DICT blob i en operatör-nyckel kartläggning. Varje operatörer nyckelkort till en lista med numeriska värden som konfigurerar fontten, såsom standardbredd eller subroutin offset.
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() INDEX-strukturer är rader av variabel längddata som används för namntabeller, strängtabell och charstring lagring inom CFF fonts.
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)}")Typ 2 Charstring tolkning
Type2Interpreter.interpret() kör en typ 2 charstring och returnerar en GlyphPath.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)Tips och bästa praxis
- Användning
CffEncoding.standard()som en baslinje; överrida medfrom_reader()För inbyggda kodningar CffDict.to_bytes()Låt dig åter-serialisera modifierade ordböcker- Charstring tolkning behövs endast för rå glyph outline extraktion;
GlyphAccessortäcker de flesta användningsområden på en högre nivå
API Referens sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
CffCharset.standard() | ISO-standard för Adobe Charset |
CffCharset.name_for(gid) | PostScript namn för en glyph ID |
CffCharset.gid_for(name) | Glyph ID för PostScript-namn |
CffEncoding.standard() | Standard CFF kodningsbord |
CffEncoding.unicode_to_gid(cp) | Kartkod punkt till GID |
CffDict.from_bytes(data) | Föregående inlägg: Parse a raw CFF DICT |
CffDict.get(operator) | Få värden för en DICT-operatör |
CffIndex.from_reader(reader) | Försök att använda CFF Index |
Type2Interpreter.interpret(cs, pd) | Utför en typ 2-chartring |