עבודה עם CFF Fonts
עבודה עם CFF Fonts
מדריך זה מראה כיצד להעלות ולבדוק את הפונקציות של טקסט CFF – צ’רסטים, טבלאות קוד, מילונים ומבנים אינדיקטורים – באמצעות Aspose.Font FOSS עבור Python.
פורמט טקסט קומפקטי (CFF) טפטים אחסון גליף תוצאות כמו סוג 2 תוכניות צ’ארסטרינג. Aspose.Font FOSS for Python provides dedicated classes in the aspose_font.cff שם מקום כדי לקרוא צ’רצ’טים CFF, קוד טבלאות, מילונים ואינדקסים.
CFF צ’ארס
CffCharset מפות Glyph IDs PostScript שמות Glif. CffCharset.standard() כדי לקבל את ISO Adobe Charget מובנה, אז להשתמש 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() כל מפעיל מפתח מפות לרשימה של ערכים דיגיטליים המגדירים את האותיות, כגון רוחב ברירת מחדל או תת-רוטין.
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) | שם פוסטסקריפט עבור 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 של קרסטרינג |