Εργασία με τα Fonts του CFF
Εργασία με τα Fonts του CFF
Αυτό το εγχειρίδιο δείχνει πώς να φορτώσετε και να ελέγξετε τα εσωτερικά γραμματοσειρά του CFF - charsets, κρυπτογραφημένα τραπέζια, λεξιλόγια και δομές δεικτών - χρησιμοποιώντας Aspose.Font FOSS για Python.
Το Compact Font Format (CFF) αποθηκεύει γραμματοσειρά glyph outlines ως προγράμματα τύπου 2. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff Ονομασία Για να διαβάσετε τα γραμματοσειρά CFF, κρυπτογραφώντας πίνακες, λεξικά και δείκτες.
ΚΕΦΑΛΑΙΟ ΤΖΑΡΣΕΤ
CffCharset Χάρτες Glyph IDs σε PostScript ονόματα Glif. CffCharset.standard() Για να αποκτήσετε το ενσωματωμένο ISO Adobe charset, στη συνέχεια χρησιμοποιήστε name_for() και gid_for() Μεταφράζετε μεταξύ των αναγνωριστικών και των ονομάτων του Glyph.
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
CffEncoding χάρτες κωδικούς χαρακτήρα σε glyph IDs. Η τυποποιημένη κρυπτογράφηση καλύπτει το Adobe Λατινικό σύνολο χαρακτηρών. χρησιμοποιήστε unicode_to_gid() να εξετάσει τα μεμονωμένα σημεία κώδικα και get_all_codepoints() Να καταγράφει κάθε χαρτογράφημα.
from aspose_font.cff.encoding import CffEncoding
enc = CffEncoding.standard()
gid = enc.unicode_to_gid(0x41)
codepoints = enc.get_all_codepoints()Γράμμα του CFF Parsing
CffDict.from_bytes() Κάθε φορέας χάρτης κλειδί σε μια λίστα αριθμητικών τιμών που ρυθμίζουν τη γραμματοσειρά, όπως προεπιλεγμένη πλάτος ή υπο-ρουτίνα offset.
from aspose_font.cff.dict_ import CffDict
d = CffDict.from_bytes(raw_bytes)
vals = d.get(21) # retrieve values for operator 21Δείκτης CFF
CffIndex.from_reader() Οι δομές INDEX είναι ρίζες δεδομένων μεταβλητού μήκους που χρησιμοποιούνται για τα πίνακα ονομάτων, τους πίστες γραμμών και την αποθήκευση κλαδισμών μέσα σε γραμματοσειρές CFF.
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 Ερμηνεία
Type2Interpreter.interpret() εκτελεί ένα τύπος 2 κιρσέρ και επιστρέφει το GlyphPath.
from aspose_font.cff.type2 import Type2Interpreter
interpreter = Type2Interpreter()
glyph_path = interpreter.interpret(charstring_bytes, private_dict)Συμβουλές και βέλτιστες πρακτικές
- Χρησιμοποιήστε
CffEncoding.standard()σαν μια βάση, με την οποίαfrom_reader()Για ενσωματωμένες κωδικοποιήσεις CffDict.to_bytes()Να επανασχεδιάσετε τα τροποποιημένα λεξικά- Η ερμηνεία του χαρστρίου είναι απαραίτητη μόνο για την εκχύλιση πρώτων υλών γλυφίου.;
GlyphAccessorκαλύπτει τις περισσότερες περιπτώσεις χρήσης σε υψηλότερο επίπεδο
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
CffCharset.standard() | Προσωπικά: ISO Adobe Charse |
CffCharset.name_for(gid) | PostScript όνομα για ένα Glyph ID |
CffCharset.gid_for(name) | Glyph ID για ένα όνομα PostScript |
CffEncoding.standard() | Κανόνες CFF κρυπτογράφησης πίνακα |
CffEncoding.unicode_to_gid(cp) | Κωδικός χάρτη σημείο προς GID |
CffDict.from_bytes(data) | Πάρτε ένα καυτό CFF DICT |
CffDict.get(operator) | Κάντε αξίες για έναν διαχειριστή DICT |
CffIndex.from_reader(reader) | Εισαγωγή του CFF Index |
Type2Interpreter.interpret(cs, pd) | Εφαρμογή τύπου 2 charstring |