כיצד לעבוד עם WOFF Fonts ב- Python
מדריך זה מראה כיצד להעלות, לבדוק ולהמיר טקסטים WOFF ו- Woff2 באמצעות Aspose.Font FOSS עבור Python.WOFf (Web Open Font Format) הוא הסטנדרט של משלוח טפטים ברשת. WIFF 1 משתמש בלחץ Zlib ו WEF 2 משתמשים בלחיצה Brotli, הן על ידי חיתוך טופס TrueType או CFF הבסיסי.
הדרכה שלב אחר צעד
שלב 1: התקנת החבילה
התקנת חבילת Aspose.Font FOSS מ-PyPI באמצעות הפקודה Pip למטה:
pip install "aspose-font>=1.0.0"שלב 2: ייבוא שיעורים נדרשים
ייבוא FontLoader, FontConverter, ו FontType כדי להעלות ולהמיר אותיות WOFF:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypeשלב 3: הטעינה והבדקה של חותם WOFF
להעלות קובץ WOFF עם FontLoader.open() קראו את המאפיינים הבסיסיים כגון שם, משפחה ומספר גליף:
from aspose_font.loader import FontLoader
woff_font = FontLoader.open("MyFont.woff")
print(f"Name: {woff_font.font_name}")
print(f"Family: {woff_font.font_family}")
print(f"Glyphs: {woff_font.num_glyphs}")
print(f"Type: {woff_font.font_type}")שלב 4: קרא את הנתונים המוטאטיים WOFF
קבצי WOFF עשויים להכיל בלוק נתונים XML עם רישיון, אשראי ו- XML. תגית: גישה דרך metadata_xml רכוש .
from aspose_font.loader import FontLoader
font = FontLoader.open("MyFont.woff")
# WOFF fonts may include an XML metadata block
xml = getattr(font, "metadata_xml", None)
if xml:
print(xml)
else:
print("No metadata in this WOFF file")שלב 5: גישה לתא TTF פנימי
שניהם WoffFont ו Woff2Font להציג א inner_font רכוש שמספק אתה הבסיס TtfFont.באמצעות זה אתה יכול לגשת לכל סטנדרטים. פתיחת טבלאות.
from aspose_font.loader import FontLoader
font = FontLoader.open("MyFont.woff")
# WOFF wraps a TrueType font; access its tables via inner_font
inner = getattr(font, "inner_font")
tables = inner.ttf_tables
print(f"Units/em: {tables.head.units_per_em}")
print(f"Family name: {tables.name.best_name(1)}")שלב 6: להפוך TTF ל- WOFF
להעלות טופס TTF ולהמיר אותו לתבנית WOFF על ידי העברת FontType.WOFF ל FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
ttf_font = FontLoader.open("MyFont.ttf")
woff_font = FontConverter.convert(ttf_font, FontType.WOFF)
woff_bytes = woff_font.to_bytes()
from pathlib import Path
Path("MyFont.woff").write_bytes(woff_bytes)שלב 7: להפוך TTF ל- WOFF2
להעלות טקסט TTF ולהמיר אותו לתבנית WOFF2 על ידי העברת FontType.WOFF2 ל FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
ttf_font = FontLoader.open("MyFont.ttf")
woff2_font = FontConverter.convert(ttf_font, FontType.WOFF2)
woff2_bytes = woff2_font.to_bytes()
from pathlib import Path
Path("MyFont.woff2").write_bytes(woff2_bytes)שלב 8: הפוך בין WOFF ו- WofF2
להפוך את קובץ WOFF המופעל ל- WofF2 (או להיפך) על ידי העברת המטרה. FontType ל FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
# WOFF -> WOFF2
woff_font = FontLoader.open("MyFont.woff")
woff2_font = FontConverter.convert(woff_font, FontType.WOFF2)
# WOFF2 -> WOFF
woff2_font = FontLoader.open("MyFont.woff2")
woff_font = FontConverter.convert(woff2_font, FontType.WOFF)בעיות נפוצות ותקנות
FontParseException: Invalid WOFF signature הקובץ אינו WOFF. בדוק את הקובץ אינו שבור ומתחיל עם ה-WOFF Magic Bytes.
FontParseException: WOFF table decompression failed שולחן דחיסה בתוך הקובץ WOFF הוא שבור.נסה להוריד מחדש את קובצי האותיות.
תוצאות WOFF2 WOFF2 משתמשת בלוטת Brotli המייצרת קטנים יותר. אם היציאה שלך WOFF2 היא גדולה באופן בלתי צפוי, להבטיח כי אתה מתחיל ממקור TTF אופטימי.
שאלות נפוצות שואלים
מה ההבדל בין WOFF ו-WOFf2?
WOFF 1 משתמש בלחץ Zlib ו- Woff 2 משתמשת בלחיץ Brotli.WOF F2 בדרך כלל משיג 20-30% טוב יותר בלוחץ מאשר WIF 1.
האם אני יכול לגשת לגרפיים מתוך קובץ WOFF?
כן, השתמשו ב inner_font רכוש כדי לקבל את הבסיס TtfFont,ואז טבלת גישה דרך inner_font.ttf_tables.
האם הספרייה תומכת במתא-נתונים של WOFF?
כן, שניהם WoffFont ו Woff2Font להציג A metadata_xml נכסים מכיל את בלוק הנתונים המוטא-דאו XML האופציונלי.