Πώς να εργαστείτε με WOFF Fonts στο Python

Πώς να εργαστείτε με WOFF Fonts στο Python

Αυτό το εγχειρίδιο δείχνει πώς να φορτώσετε, να ελέγξετε και να μετατρέψετε τα WOFF και WofF2 web fonts χρησιμοποιώντας Aspose.Font FOSS για Python.WOFf (Web Open Font Format) είναι ο προτύπου για την παράδοση των γραμματοσειρών στο Web. WIFF 1 χρησιμοποιεί συμπίεση zlib και wIFM 2 χρησιμοποιείται συμπιέσεις Brotli, τόσο βάζοντας μια υποκείμενο TrueType ή CFF font.

Βήμα προς βήμα οδηγός

Βήμα 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 Font

Κατεβάστε ένα αρχείο 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 με άδεια, πιστώσεις και Ετικέτες: Διαθέσιμο μέσω της 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.Μέσω αυτού μπορείτε να έχετε πρόσβαση σε όλα τα πρότυπα. Πίνακας OpenType.

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. Ελέγξτε το αρχείο δεν είναι κακοποιηθεί και ξεκινά με τα μαγικά byte WOFF.

FontParseException: WOFF table decompression failed - Ένα συμπιεσμένο τραπέζι μέσα στο αρχείο WOFF είναι διασπάσιμο. δοκιμάστε να κατεβάσετε ξανά το αρχικό γράμμα.

Μεγάλη παραγωγή WOFF2 — Το WOFF2 χρησιμοποιεί συμπίεση Brotli που παράγει μικρότερη αρχεία από το WOFF 1 (zlib).Εάν η έκδοση του Woff2 είναι απροσδόκητα μεγάλη, διασφαλίστε ότι Ξεκινάτε από μια βελτιστοποιημένη πηγή TTF.

Συχνές ερωτήσεις

Ποια είναι η διαφορά μεταξύ WOFF και WofF2;?

Το WOFF 1 χρησιμοποιεί συμπίεση zlib και το Woff 2 χρησιμοποιείται συμπιέσεις Brotli. το wofF2 συνήθως επιτυγχάνει 20-30% καλύτερη συμπύκνωση από το ρούφ 1.

Μπορώ να αποκτήσω πρόσβαση σε πίνακες γραμματοσειρών από ένα αρχείο WOFF;?

Ναι, χρησιμοποιήστε το inner_font Το κτίριο για να πάρει το υποκείμενο TtfFont,Στη συνέχεια, Πίνακας πρόσβασης μέσω inner_font.ttf_tables.

Η βιβλιοθήκη υποστηρίζει τα μεταδεδομένα WOFF;?

Ναι και οι δύο WoffFont και Woff2Font Εμφανίζει A metadata_xml Ιδιοκτησία Περιέχει το προαιρετικό μπλοκ μεταδεδομένων XML.

Δείτε επίσης

 Ελληνικά