מהו קובץ WOFF?
קובץ עם סיומת .woff הוא קובץ גופן אינטרנט המבוסס על Web Open Font Format (WOFF). יש לו מיכל דחוס ספציפי לפורמט המבוסס על סוגי גופנים TrueType (.TTF) או OpenType (.OTT). WOFF הוצג במטרה להבדיל בין גופני אינטרנט מקבצי גופנים המשמשים ביישומי שולחן עבודה. בנוסף, הפורמט נועד להפחית את זמן ההשהיה של העברת גופנים משרת למחשב הלקוח דרך הרשת. מספר כלים זמינים שיכולים להמיר קבצי WOFF ל-TTF ופורמטים אחרים של קבצי גופנים.
פורמט קובץ WOFF
פורמט גופן WOFF דוחס טבלאות נתוני גופנים של מבני sfnt מבוססי טבלה המשמשים בסוגי גופנים שונים כגון TrueType, OpenType ו-Open Font Format. זה כמו קונטיינר לסוגי הפונטים האלה ויש לו גם מקום לכלול את המטא נתונים של הפונט ונתוני שימוש פרטי שייכללו במיכל. ממירים משתמשים בקבצי sfnt לקובץ בפורמט WOFF וסוכני משתמשים משחזרים את הקובץ המקודד לשימוש עם מסמך האינטרנט. יש לציין כי נתוני הגופן המשוחזרים תואמים בדיוק את פורמט הגופן הקלט מכל ההיבטים.
כלי עזר לקבצי WOFF מכילים לעתים קרובות תכונות נוספות כגון תת-הגדרת גליפים, אימות או תוספות של תכונות גופנים, אך אין בכך צורך. גם היוצר וגם סוכני השימוש חייבים להבטיח שהתוקף של נתוני הגופן הבסיסיים נשמר.
מבנה קובץ WOFF
מבנה קובץ WOFF דומה לזה של גופני sfnt. הוא מבוסס על ספריית טבלאות המכילה את האורכים וההיסטים לטבלאות נתוני גופן. כל הטבלאות עוקבות אחרי המידע הראשוני הזה. הקובץ מכיל מסד נתונים של גופנים זהים לגופנים המקוריים. גם סדר הטבלאות זהה אך כל אחד מהם עשוי להיות דחוס. עם זאת, ספריית הטבלה WOFF מחליפה את ספריית הטבלה המקורית.
קובץ WOFF מורכב מהבאים:
- WOFFHeader - כותרת קובץ עם סוג וגרסה בסיסית של גופן, יחד עם קיזוזים למטא נתונים ובלוקי נתונים פרטיים.
- TableDirectory - ספריית טבלאות גופנים, המציינת את הגודל המקורי, הגודל הדחוס והמיקום של כל טבלה בתוך קובץ ה-WOFF.
- FontTables - טבלאות נתוני הגופנים מגופן הקלט sfnt, דחוסים כדי להפחית את דרישות רוחב הפס.
- ExtendedMetadata - בלוק אופציונלי של מטא נתונים מורחבים, המיוצגים בפורמט XML ודחוסים לאחסון בקובץ WOFF.
- PrivateData- בלוק אופציונלי של נתונים פרטיים לשימוש מעצב הגופנים, היציקה או הספק.
כותרת WOFF
כותרת WOFF מורכבת מחתימה מזהה שמציינת את סוג הנתונים הכלולים בקובץ. כותרת WOFF יחד עם השדות שלה היא כדלקמן.
הקלד | שם השדה | תיאור |
---|---|---|
UInt32 | חתימה | 0x774F4646 ‘wOFF’ |
UInt32 | flavor | “גרסת sfnt” של גופן הקלט. |
UInt32 | אורך | גודל כולל של קובץ WOFF. |
UInt16 | numTables | מספר ערכים בספריית טבלאות גופנים. |
UInt16 | שמור | שמורה; מוגדר לאפס. |
UInt32 | totalSfntSize | גודל כולל הדרוש לנתוני הגופן הלא דחוסים, כולל הכותרת, הספריה וטבלאות הגופנים sfnt (כולל ריפוד). |
UInt16 | majorVersion | גרסה מרכזית של קובץ WOFF. |
UInt16 | minorVersion | גרסה מינורית של קובץ WOFF. |
UInt32 | metaOffset | היסט לבלוק מטא נתונים, מתחילת קובץ WOFF. |
UInt32 | metaLength | אורך של בלוק מטא נתונים דחוס. |
UInt32 | metaOrigLength | גודל לא דחוס של בלוק מטא נתונים. |
UInt32 | privOffset | היסט לבלוק נתונים פרטי, מתחילת קובץ WOFF. |
UInt32 | privLength | אורך של חסימת נתונים פרטית. |