Kako raditi s font tablicama u Pythonu

Kako raditi s font tablicama u Pythonu

Ovaj vodič pokazuje kako čitati imenovane TTF tabele, preuzeti sirove bajtove binarne tablice i pisati modificirane podatke o tablici koristeći TtfFont u Aspose.Font FOSS za Python. TrueType fontovi pohranjuju sve podatke u binarnim tablicama koje identificiraju oznake od 4 znakova. Aspose.Font TtfTableSet za pristup imenovanom tablici i TtfFont.get_table_bytes() / TtfFont.set_table_bytes() za sirov binarni pristup.

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 i u članku 1. TtfFont za učitavanje datoteke fontova i pristup njihovom skupu tabela:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

Korak 3: Pristup imenovanim tablicama

Uplatiti TTF datoteku s: FontLoader.open() i pristup imenovanim tablicama putem ttf_tables imovina:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern present:", tables.kern is not None)
print("cmap present:", tables.cmap is not None)

Korak 4: Čitanje sirovih tabličnih bajta

Pročitajte sirove binarne podatke za određenu tablicu prenošenjem njene oznake od 4 znaka na: get_table_bytes():

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw)} bytes")

Korak 5: Napisati izmijenjene tabele bajtova

Napišite modificirane binarne podatke natrag u imenovanu tablicu koristeći: set_table_bytes() s oznakama i bajtom korisnog opterećenja:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified = b"..."  # your modified binary data
ttf_font.set_table_bytes("GSUB", modified)

Česta pitanja i rješenja

AttributeError: Font has no attribute ttf_tablesttf_tables je uključen. TtfFont, ne podnožje Font Klasična. ttf_font: TtfFont = FontLoader.open(...) da dobije… upisivanje na tipku.

get_table_bytes vraća prazne bajtove Oznaka mora biti točno 4 znakova. (podložka s raspadima ako je potrebno, npr. "kern" Ne, ne mogu. "KRN").

Česta pitanja

Koje su imenovane tabele prikazane na TtfTableSet?

Glavni, hhea, maxp, os2, ime, post, cmap, loca, hmtx i kern.

Mogu li dodati novu tablicu na font?

Da, proslijedi sve važeće 4 bajtne oznake i podatke za bajta. TtfFont.set_table_bytes(tag, data).

Također pogledajte:

 Hrvatski