Εργασία με τα Fonts του CFF

Εργασία με τα 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

Δείτε επίσης

 Ελληνικά