Cum să lucrați cu fonturi WOFF în Python
Acest ghid arată cum să încărcați, inspectați și convertiți fonturile web WOFF și WOff2 folosind Aspose.Font FOSS pentru Python. WOF (Web Open Font Format) este standardul pentru furnizarea de tipuri de scris pe Web. Wof 1 utilizează compresia zlib și Woph 2 utiliza compresiunea Brotli, ambele înfășurând un font TrueType sau CFF subiacent.
Ghid pas cu pas
Pasul 1: Instalați pachetul
Instalați pachetul Aspose.Font FOSS din PyPI folosind comanda pip de mai jos:
pip install "aspose-font>=1.0.0"Pasul 2: Importarea clasei necesare
Importul FontLoader, FontConverter, și FontType pentru a încărca și converti fonturi WOFF:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypePasul 3: Încărcați și verificați un font WOFF
Încărcați un fișier WOFF cu: FontLoader.open() și citiți proprietățile de bază, cum ar fi numele, familia și numărul glifosilor:
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}")Pasul 4: Citeste metadatele WOFF
Fișierele WOFF pot conține un bloc de metadate XML cu licențe, credite și Descriere. metadata_xml proprietate.
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")Pasul 5: Accesarea tabelurilor TTF interne
Amândouă. WoffFont și de: Woff2Font expune un inner_font proprietate care oferă Tu eşti cel care stă la baza. TtfFont.Prin ea poţi accesa toate standardele . Tabele 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)}")Pasul 6: Convertiți TTF în WOFF
Încărcați un font TTF și să-l convertiți în format WOFF prin trecerea FontType.WOFF la … în 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)Pasul 7: Convertiți TTF în WOFF2
Încărcați un font TTF și să-l convertiți în format WOFF2 prin trecerea FontType.WOFF2 la … în 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)Pasul 8: Convertiți între WOFF și WOff2
Convertiți un fișier WOFF încărcat în WOff2 (sau invers) prin trecerea țintei FontType la … în 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)Probleme comune şi soluţii
FontParseException: Invalid WOFF signature Fișierul nu este un WOFF valabil. Verificați fișierul nu este corupt și începe cu byte magic WOFF.
FontParseException: WOFF table decompression failed O masă comprimată Încearcă să descarci din nou fişierul de font.
Producție WOFF2 mare WOFF2 utilizează compresia Brotli, care produce un volum mai mic de 100 kg. Dacă ieşirea WOFF2 este neaşteptat de mare, asiguraţi-vă că nu există o problemă. Începi cu o sursă TTF optimizată.
Întrebări frecvente
Care este diferența dintre WOFF și WOff2?
WOFF 1 utilizează compresia zlib și WOff 2 folosește compresiunea Brotli. WOF2 obține de obicei o compresie cu 20-30% mai bună decât WOFL 1. Ambele înfășoară aceleași date subiacente TrueType sau CFF font.
Pot accesa tabele de font dintr-un fişier WOFF?
Da, foloseşte… inner_font proprietate pentru a obține subiacente TtfFont, apoi tabele de acces prin intermediul inner_font.ttf_tables.
Biblioteca suportă metadatele WOFF?
Da, ambele. WoffFont și de: Woff2Font expune o metadata_xml proprietate care conține blocul opțional de metadate XML.