Kako raditi s WOFF fontovima u Pythonu?

Kako raditi s WOFF fontovima u Pythonu?

Ovaj vodič pokazuje kako učitati, pregledati i pretvoriti WOFF i WOff2 web fontove koristeći Aspose.Font FOSS za Python. WOF je standard za isporuku fonta na webu. Wof 1 koristi kompresiju zlib-a a Wov 2 upotrebljava Brotli kompresu, oboje okružujući temeljni TrueType ili CFF font. Foss učita oba formata i izloži unutarnje podatke o fontovima kroz čist API.

Korak po korak vodič

Korak 1: Instaliraj paket

Instalirajte paket Aspose.Email FOSS iz PyPI pomoću naredbe pip:

pip install "aspose-font>=1.0.0"

Korak 2: Uvoz zahtjevnih klasa

Uvoz FontLoader, FontConverter, i FontType za učitavanje i pretvaranje WOFF fontova:

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType

Korak 3: Uplatiti i provjeriti WOFF font

Uplatiti WOFF datoteku s: FontLoader.open() i čitati osnovna svojstva kao što su ime, obitelj i broj glifa:

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}")

Korak 4: Pročitajte WOFF metapodatke

WOFF datoteke mogu sadržavati XML blok metapodataka s licenciranjem, kreditima i Pristup putem Internet-a. metadata_xml imovina.

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")

Korak 5: Pristup unutarnjim TTF tablicama

Oboje. WoffFont i u članku 1. Woff2Font izložiti i inner_font imovina koja daje Ti si podrijetlo. TtfFont.-Tako možete pristupiti svim standardnim… OpenType tabele.

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)}")

Korak 6: Pretvoriti TTF u WOFF

Uplatiti TTF font i pretvoriti ga u WOFF format prolazeći FontType.WOFF u iznosu od: 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)

Korak 7: Konvertirati TTF u WOFF2

Uplatiti TTF font i pretvoriti ga u WOFF2 format prolazeći FontType.WOFF2 u iznosu od: 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)

Korak 8: Konvertirati između WOFF i WOff2

Konvertirajte učitavanu datoteku WOFF u WOff2 (ili obrnuto) prolaženjem cilja FontType u iznosu od: 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)

Česta pitanja i rješenja

FontParseException: Invalid WOFF signature Datoteka nije valjan WOFF Provjerite da datoteka nije pokvarena i počinje s WOFF čarobnim bajtovima.

FontParseException: WOFF table decompression failed Kompresirani stol Pokušajte ponovno preuzeti datoteku font.

Izlaz velike WOFF2 emisije WOFF2 koristi Brotli kompresiju koja proizvodi manje količine. Ako je vaš WOFF2 izlaz neočekivano velik, osigurati da se u svakom slučaju ne pojavljuje ni jedan od tih datoteka. Počinjete s optimiziranim izvorom TTF-a.

Česta pitanja

Koja je razlika između WOFF-a i WOff2?

WOFF 1 koristi kompresiju zlib, a WOff 2 upotrebljava Brotli. WOF2 obično postiže 20-30% bolju kompresu od WOFC 1. Oboje okovavaju iste temeljne podatke TrueType ili CFF font-a.

Mogu li pristupiti font tablicama iz WOFF datoteke?

Da, koristi… inner_font imovina za dobivanje osnovnog TtfFont,Onda… pristupnim stolovima putem inner_font.ttf_tables.

Da li knjižnica podržava WOFF metapodatke?

Da, i jedno i drugo. WoffFont i u članku 1. Woff2Font izložiti metadata_xml imovina U ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) Uredbe (EU) br. 1071/2013:.

Također pogledajte:

 Hrvatski