הכניסה

סוג 1 הוא פורמט טקסט מקורי של Adobe, המציג את TrueType ו- OpenTYpe. סוג 1 של טופס מורכב משני קבצים: A .pfb (הדפסה של טופס בינארי) קובץ המכיל את תוכנית ה-Fort, ו- A .afm (Adobe Font Metrics) קובץ עם קרנינג ו למרות שהחומר מוחלף על ידי OpenType, טופס 1 שומרים על פרסום זרימת עבודה, צינורות PostScript וארכיון מסמכים.

Aspose.Font FOSS for Python provides direct access to Type 1 internals through Type1Font, Type1FontData, Type1Serializer, ו Type1Interpreter.אתה יכול להטעין PFB או PFA באמצעות קבצים FontLoader.open, לבדוק את נתוני התוכנית של טופס מוטב, לפרש את האותיות לדרכים גליף, ולסריאליז אותיות בחזרה לתבנית PFB או PFA.

הספרייה פורסמה ב-PIPI כ aspose-font והיא מורשית על פי רישיון MIT. אין לו תלויות מסחריות חובה והוא פועל על Python סטנדרטי 3.


תכונות מרכזיות

טופס 1 של ציטוטים

שימוש FontLoader.open כדי להעלות קובץ PFB או PFA.האובייקט החוזר מראה את שני סטנדרטים Font הפונקציונליות של סוג 1 ו-Type 1 באמצעות Type1Font שיעור :

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Courier.pfb")

print(loaded.font_name)    # e.g. "Courier"
print(loaded.font_family)  # e.g. "Courier"
print(loaded.num_glyphs)   # number of defined glyphs
print(loaded.font_style)   # style string, e.g. "Regular"

FontLoader.open זיהוי פורמט סוג 1 באופן אוטומטי מתוך כותרת הקובץ.PFB שני קבצי ה-PFA נתמכים.


טעינה AFM Metrics

סוג 1 טופסים להציב את המטריקים שלהם בנפרד .afm קובץ - The Type1Font מדרגה להציג A load_afm(path) שיטה שמחברת את נתוני AFM לאובייקט הפורט הנעלם, אפשרות ל-Kern Pair Lookups באמצעות get_kern_pairs().

ללא קובץ ה-AFM, get_kern_pairs() החזיר רשימה ריקה כי נתונים גרעיניים חיים על פי ה-FBI, לא על ידי הוועדה המקומית לביטוח. load_afm שיטת קבלת קובץ מסלול המשיכו להדגיש את השותף .afm קובץ .


גישה לנתונים Type1FontData

The Type1FontData שיעור מציג את מילון תוכנית האותיות המוטבע בסוג 1 הוא כולל מטריקה, תיבת הגבולות, קודינג וקטור, צ’רסטרים, ותת-רוטנים:

from aspose_font.type1.data import Type1FontData

# Type1FontData is the font program dictionary parsed from the PFB
# Access its properties to inspect the raw PostScript font data

Type1FontData נכסים :

  • font_name (strשם הפוסט של האותיות
  • full_name (strשם מלא אנושי קריא
  • family_name (str• משפחת צבע
  • weight (str• משקל קשת (לדוגמה,. "Medium")
  • italic_angle (float• איטלקית בגרסאות
  • is_fixed_pitch (bool• מתאים למונופול מונוסלבי
  • font_bbox (tuple[int, int, int, int]• תיבת הגבולות (llx, lly, urx, ury)
  • underline_position (int• היקף המצב ב- font units
  • underline_thickness (int• להדגיש את שומן התפרצות
  • encoding (list[str]• 256 סלטים (PostScript glyph names)
  • charstrings (dict[str, bytes]) — glyph שם → charstring bytes mapping
  • subrs (list[bytes]) - סובייקטים תת-רוטניים המשמשים על ידי מנוע הדחיסה
  • len_iv (int• מפרט ההקפדה של Lenovo

תרגום Charstrings

Type1Interpreter דפדפן מסוג 1 תוכניות לגרסה לתוך GlyphPath תגית: Pass בוטים של קרסטרינג ירוק מ Type1FontData.charstrings ל interpret:

from aspose_font.type1.interpreter import Type1Interpreter

interpreter = Type1Interpreter()
charstring = b"\x0e"  # seac or other charstring bytes

glyph_path, stack_depth = interpreter.interpret(charstring)
for cmd in glyph_path.commands:
    print(cmd)

interpret חוזר א (GlyphPath, int) טופל – The GlyphPath מכיל את הציור הפקודה היא העומק של המדרכה הסופית לאחר ביצוע, זה שימושי עבור דבוגת צ’רטרים מוטעים.


תגיות קשורות PFB ו-PFA

Type1Serializer להפוך טופס סוג 1 מחובר לתבנית PFB בינארית או טקסט PFA. שתי השיטות מקבלות כל אחד מהם. Font דוגמה וסיבוב של ביטים ירוקים:

from aspose_font import FontLoader
from aspose_font.type1.serializer import Type1Serializer

loaded = FontLoader.open("fonts/Courier.pfb")

# Serialize to PFB (binary) format
pfb_bytes = Type1Serializer.serialize_pfb(loaded)
with open("output/Courier_copy.pfb", "wb") as fh:
    fh.write(pfb_bytes)

# Serialize to PFA (text) format
pfa_bytes = Type1Serializer.serialize_pfa(loaded)
with open("output/Courier_copy.pfa", "wb") as fh:
    fh.write(pfa_bytes)

print(f"PFB: {len(pfb_bytes)} bytes")
print(f"PFA: {len(pfa_bytes)} bytes")

מטריית צבע

מטרייה וקוד ניתן באמצעות הסטנדרט. Font אינטראקציה :

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Courier.pfb")

metrics = loaded.metrics
print(f"Units per em  : {metrics.units_per_em}")
print(f"Ascender      : {metrics.ascender}")
print(f"Descender     : {metrics.descender}")
print(f"Underline pos : {metrics.underline_position}")
print(f"Underline tck : {metrics.underline_thickness}")

מהיר התחלה

הקמת הספרייה:

.venv/bin/pip install aspose-font

הורד את הפורמט PFB ולבדוק אותו:

from aspose_font import FontLoader
from aspose_font.type1.serializer import Type1Serializer

loaded = FontLoader.open("Courier.pfb")

print(f"Font name : {loaded.font_name}")
print(f"Family    : {loaded.font_family}")
print(f"Style     : {loaded.font_style}")
print(f"Glyphs    : {loaded.num_glyphs}")

metrics = loaded.metrics
print(f"UPM       : {metrics.units_per_em}")

# Round-trip: serialize back to PFB
pfb_bytes = Type1Serializer.serialize_pfb(loaded)
print(f"Serialized: {len(pfb_bytes)} bytes")

פורמט תומך

פורמטהרחבהקראוכתוב
TTF.טטפ
OTF.אוטו
EOT.EOT
CFF.קפ
TYPE1.pf / pfa
WOFF.ווק
WOFF2.WOW2

סוג 1 של טופס הונחה באמצעות FontLoader.open סדרה באמצעות Type1Serializer.


קוד פתוח & רישיון

Aspose.Font FOSS for Python is released under the MIT License. You can use it in פרויקטים אישיים, מסחריים ופתוחים ללא תשלום.הקוד המקור הוא זמין ב- GitHub והחבילה מופצה דרך PyPI כ aspose-font.


להתחיל

משאבים קשורים