כיצד לעבוד עם WOFF Fonts ב- Python

כיצד לעבוד עם 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 האופציונלי.

ראה גם

 עברית