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 21

CFF 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 med from_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; GlyphAccessor täcker de flesta användningsområden på en högre nivå

API Referens sammanfattning

Klass / MetodBeskrivning
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

Se även

 Svenska