עבודה עם 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 של קרסטרינג

ראה גם

 עברית