Τι είναι ένα αρχείο WOFF;
Ένα αρχείο με επέκταση .woff είναι ένα αρχείο γραμματοσειράς ιστού που βασίζεται στη μορφή ανοιχτής γραμματοσειράς Web (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’ |
UIint32 | γεύση | Η “έκδοση sfnt” της γραμματοσειράς εισόδου. |
UIint32 | μήκος | Συνολικό μέγεθος του αρχείου WOFF. |
UIint16 | numTables | Αριθμός καταχωρήσεων στον κατάλογο πινάκων γραμματοσειρών. |
UIint16 | δεσμευμένο | Δέσμευση; ορίζεται στο μηδέν. |
UIint32 | totalSfntSize | Συνολικό μέγεθος που απαιτείται για τα ασυμπίεστα δεδομένα γραμματοσειράς, συμπεριλαμβανομένης της κεφαλίδας, του καταλόγου και των πινάκων γραμματοσειρών sfnt (συμπεριλαμβανομένου του padding). |
UIint16 | majorVersion | Κύρια έκδοση του αρχείου WOFF. |
UIint16 | minorVersion | Μικρή έκδοση του αρχείου WOFF. |
UIint32 | metaOffset | Μετατόπιση στο μπλοκ μεταδεδομένων, από την αρχή του αρχείου WOFF. |
UIint32 | metaLength | Μήκος συμπιεσμένου μπλοκ μεταδεδομένων. |
UIint32 | metaOrigLength | Μη συμπιεσμένο μέγεθος μπλοκ μεταδεδομένων. |
UIint32 | privOffset | Μετατόπιση σε μπλοκ ιδιωτικών δεδομένων, από την αρχή του αρχείου WOFF. |
UIint32 | privLength | Μήκος μπλοκ ιδιωτικών δεδομένων. |