הכניסה
תגיות קשורות טקסט (.ttfועם כל הכתבות המלאות (.otf• הם המקור הדומיננטי שני פורמטים חולקים את אותה מבנה שולחן בינארי. שורש בספרות OpenType. Aspose.Font FOSS for Python חושף את המבנה הזה דרך TtfFont, נותן גישה ישירה ל- OpenType טבלאות בודדות, נתוני זוג הליבה, שורות צבע משתנות, ו- Glyph outlines.
The TtfFont המעמד מתרחב Font שיטת הבסיס עם שיטות ספציפיות TTF כולל: get_blob, get_table_bytes, set_table_bytes, ו instantiate עבור צבע משתנה סגור אסיס - The TtfTableSet רכוש (ttf_tables• מספק גישה טופס ל- הטבלאות הנפוצות ביותר של OpenType: head, hhea, maxp, os2, name, post.
הספרייה פורסמה ב-PIPI כ aspose-font והיא מורשית על פי רישיון MIT. אין לה תלויות מסחריות חובה.
תכונות מרכזיות
טופס TTF ו- OTF
שימוש FontLoader.open כדי להעלות כל קובץ טקסט TrueType או OpenTYpe:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open מצא את פורמט הטקסט מתוך כותרת הקובץ. .ttf (התמונה האמיתית ) ו .otf (OpenType CFF) קבצים נתמכים ושניהם חוזרים ל- TtfFont דוגמה .
גישה ל- OpenType Tables באמצעות TtfTableSet
The ttf_tables רכוש חוזר א TtfTableSet עם ציוד מסומן עבור כללי כל נכס מחזיר את האובייקט של הטבלה או None אם לא:
The ttf_tables נכסים על TtfFont חוזר א TtfTableSet זמין - זמינה שולחן תוספים :
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
כל נכס מחזיר את האובייקט של השולחן או None אם לא נמצא שם את השולחן הזה, קובץ גישה - Access TtfTableSet תכונות לבדוק עבור טבלאות ספציפיות לפני קריאה עבור טבלאות שאינן מכוסות על ידי תוספים, להשתמש TtfTableSet.get_raw(tag) ל קבלו את ה-Bit עם תגית OpenType ארבע תכונות.
קראו את המגוון של שולחנות ירוקים
get_table_bytes(tag) החזיר את ה-Bytes היבשים לכל טבלת OpenType. get_blob(tag) עבור לא בטוח שונה אשר חוזר None כאשר השולחן נעלם:
TtfFont ישנן שתי שיטות גישה לשולחן ירוק:
get_table_bytes(tag) -> bytes- מחזיר את הוויטות היבדות עבור שולחן שנקרא (גדל אם לא)get_blob(tag) -> bytes | Noneחזרה →Noneאם השולחן נעלם (התאמה בטוחה)
שתי השיטות מקבלות תווית לוח OpenType ארבע תכונות כגון: "cmap", "GDEF",או "GPOS".שימוש get_blob כאשר שולחן הוא אופציונלי כך שאתה יכול לבדוק עבור None לפני עיבוד .
זוגות גרעין
get_kern_pairs() החזיר את כל זוגות הליבה הקודמים בכתב העת.כל אחד מהם KernPair יש left (התמונה של גליף ), right (התמ"ג של גלאי) ו value (הוא מופיע בקטגוריות של יחידות):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
מטריית צבע
הסטנדרטים של המדיניות זמינים דרך metrics רכוש :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
תמיכה ב- Variable Font
עבור מילים משתנות, TtfFont תצוגה is_variable, variable_axes, ו named_instances.שימוש get_axis(tag) כדי לקבל אסיס ספציפי על ידי ארבע אותיות שלה תגית :
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
The get_axis(tag) שיטת על TtfFont קבלת A VariableAxis על ידי ארבעת המכתבים שלה תגית: ג. "wght" על משקל , "wdth" חזר (החזיר את זה) None אם המערה היא לא נוכח בפינת ה-FONT fvar שולחן.
הפוך את החוטים
to_bytes(font_type) הפוך את האותיות לתבנית אחרת. FontType ENUM כדי להגדיר את המטרה:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
מהיר התחלה
הקמת הספרייה:
.venv/bin/pip install aspose-font
להעלות טופס TTF ולבדוק אותו:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
פורמט תומך
| פורמט | הרחבה | קראו | כתוב |
|---|---|---|---|
| TTF | .טטפ | ✓ | — |
| OTF | .אוטו | ✓ | — |
| EOT | .EOT | ✓ | — |
| CFF | .קפ | ✓ | — |
| TYPE1 | .pf / pfa | ✓ | — |
| WOFF | .ווק | ✓ | — |
| WOFF2 | .WOW2 | ✓ | — |
כל הפורמטים מחוברים דרך FontLoader.open.TTF/OTF חוזרים ל- A TtfFont דוגמה .
קוד פתוח & רישיון
Aspose.Font FOSS for Python is released under the MIT License. You can use it in פרויקטים אישיים, מסחריים ופתוחים ללא תשלום.הקוד המקור הוא זמין ב- GitHub והחבילה מופצה דרך PyPI כ aspose-font.