Comment travailler avec les fonts WOFF dans Python
Ce guide montre comment charger, inspecter et convertir les phontres Web WOFF et WofF2 en utilisant Aspose.Font FOSS pour Python.WOFf (Web Open Font Format) est la norme pour livrer des phones sur le web. WIFF 1 utilise la compression zlib et wIFf 2 utilisait la Compression Brotli, à la fois en revêtant une sous-fonte TrueType ou CFF.
Guide étape par étapes
Étape 1 : Installer le package
Installez le package Aspose.Font FOSS de PyPI en utilisant la commande pip ci-dessous :
pip install "aspose-font>=1.0.0"Étape 2 : Importation des classes requises
Importation FontLoader, FontConverter,et FontType Pour charger et convertir les phontres WOFF :
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypeÉtape 3 : Télécharger et inspecter un fichier WOFF
Téléchargez un fichier WOFF avec FontLoader.open() et lisez les propriétés de base telles que le nom, la famille et le nombre glyph:
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}")Étape 4 : Lire les métadonnées WOFF
Les fichiers WOFF peuvent contenir un bloc de métadonnées XML avec des licences, crédits et - l’accès à la page : par le biais de metadata_xml propriété .
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")Étape 5 : Accès à des tables TTF intérieures
Les deux WoffFont et Woff2Font Exposer un inner_font La propriété qui donne Vous êtes le sous-jacent TtfFont.Vous pouvez y accéder à tous les standards. Tableau de type ouvert.
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)}")Étape 6 : Convertir le TTF en WOFF
Cartez un phénomène TTF et convertit-le au format WOFF en passant 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)Étape 7 : Convertir le TTF en WOFF2
Cartez un phénomène TTF et convertit-le au format WOFF2 en passant 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)Étape 8 : Convertir entre WOFF et WofF2
Convertir un fichier WOFF chargé en WofF2 (ou vice versa) en passant le cible 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)Problèmes communs et fixations
FontParseException: Invalid WOFF signature - Le fichier n’est pas un WOFF valide Vérifiez que le fichier n’est pas corrompu et commence avec les bits magiques WOFF.
FontParseException: WOFF table decompression failed - Une table compresse dans le fichier WOFF est corrompu. essayez de récupérer le dossier font.
Grande production WOFF2 — WOFF2 utilise la compression de Brotli qui produit plus petite fichiers de plus que WOFF 1 (zlib). Si votre outil WofF2 est inattendu grand, assurez-vous que Vous commencez par une source optimisée de TTF.
Questions fréquemment posées
Quelle est la différence entre WOFF et Woff2 ?
WOFF 1 utilise la compression zlib et Woff 2 utilisait la Compression Brotli. WIFF2 atteint généralement une composition de 20-30% meilleure que WFF 1.
Puis-je accéder aux tables de caractères à partir d’un fichier WOFF ?
Oui, utilisez le inner_font Propriété pour obtenir le fondement TtfFont,Et puis Tableau d’accès par le biais inner_font.ttf_tables.
La bibliothèque prend-elle en charge les métadonnées WOFF ?
Oui, les deux WoffFont et Woff2Font Exposer à metadata_xml Propriété Il contient le bloc de métadonnées XML facultatif.