CFF-fontokkal való munka

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 21

CFF 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 a from_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; GlyphAccessor a legtöbb felhasználási esetet magasabb szinten fedezi.

API-referencia összefoglaló

Rendszer / módszerLeí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

Lásd még:

 Magyar