Lucrarea cu fonturi CFF
Lucrarea cu fonturi CFF
Acest ghid arată cum să încărcați și să inspectați fonturile interne CFF seturi de caractere, tabele de codificare, dicţionare și structuri indexare ?? folosind Aspose.Font FOSS pentru Python .
Fontele Compact Font Format (CFF) stochează contoarele glifului ca programe de tip 2 charstring. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff spațiu de nume pentru citirea caracterelor CFF, a tabelurilor de codificare, dicționarilor și indexelor.
CFF Charset
CffCharset mapă identificatorii de glife la numele de glyphe PostScript. Apel CffCharset.standard() pentru a obține setul de caractere Adobe ISO integrat, apoi utilizați name_for() și de: gid_for() pentru a traduce între identificatorii de glifoane și nume.
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"Codarea CFF
CffEncoding codurile de caractere sunt înlocuite cu ID-uri de glifoane. Codarea standard acoperă setul de caracteristici Adobe Latin; utilizare unicode_to_gid() pentru a căuta puncte de cod individuale și get_all_codepoints() să listeze fiecare valoare cartografiată.
from aspose_font.cff.encoding import CffEncoding
enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()Parsarea dicționarului CFF
CffDict.from_bytes() Parsează un blob CFF DICT brut într-o cartografiere cu cheie operator. Fiecare cheia operatorului cartografează o listă de valori numerice care configurează fontul, cum ar fi lățimea implicită sau offsetele subroutine.
from aspose_font.cff.dict_ import CffDict
d = CffDict.from_bytes(raw_bytes)
vals = d.get(21) # retrieve values for operator 21Indicele CFF
CffIndex.from_reader() analizează o structură de date CFF INDEX dintr-un flux binar. Structurile INTEX sunt matrițe de datele cu lungime variabilă utilizate pentru tabele de nume, tabelele string și stocarea charstring în fonturi CFC.
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)}")Interpretarea tipului 2 Charstring
Type2Interpreter.interpret() execută un charstring de tip 2 și returnează o GlyphPath.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)Sfaturi şi cele mai bune practici
- Utilizare:
CffEncoding.standard()ca o linie de bază; să se suprime cu:from_reader()pentru codificări încorporate CffDict.to_bytes()permite re-serializarea dicționarilor modificați- Interpretarea de tip Charstring este necesară numai pentru extracția conturului greșit al glifului;
GlyphAccessoracoperă majoritatea cazurilor de utilizare la un nivel mai înalt;
Rezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
CffCharset.standard() | Standard ISO Adobe caracterizator set |
CffCharset.name_for(gid) | Numele PostScript pentru un identificator de glifoane |
CffCharset.gid_for(name) | Glyph ID pentru un nume PostScript |
CffEncoding.standard() | Tabelul standard de codificare CFF |
CffEncoding.unicode_to_gid(cp) | Codul de pe hartă pentru GID |
CffDict.from_bytes(data) | Analiza unui CFF DICT brut |
CffDict.get(operator) | Obțineți valori pentru un operator DICT |
CffIndex.from_reader(reader) | Analiza un CFF INDEX |
Type2Interpreter.interpret(cs, pd) | Executați o serie de caracteristici tip 2 |