Hogyan dolgozzunk Python-ban a betűtípusok táblázatával?

Hogyan dolgozzunk Python-ban a betűtípusok táblázatával?

Ez a kézikönyv megmutatja, hogyan lehet elolvasni néven TTF táblázatokat, visszaállítani nyers bináris tábla byte-kat és írni módosított táblák adatait azáltal, hogy használjuk: TtfFont a Aspose.Font FOSS Python-ban. A TrueType betűtípusok az összes adatot bináris táblázatokban tárolják, amelyeket 4 karakteres címkék jelölnek meg. Aspose.Font A FosS felfedik a TtfTableSet a név szerinti asztalhoz való hozzáférés, és TtfFont.get_table_bytes() / TtfFont.set_table_bytes() a nyers bináris hozzáféréshez.

Lépésről lépésre szóló útmutató

1. lépés: telepítse a csomagot

A következő pip parancs használatával telepítse a PyPI-ből az Aspose.Font FOSS csomagot:

pip install "aspose-font>=1.0.0"

2. lépés: Importáljon a szükséges osztályokat

Behozatala FontLoader és a következők: TtfFont egy betűtípus-fájl töltésére és az azt tartalmazó táblázatkészlet eléréséhez:

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

3. lépés: Adott táblázatokhoz való hozzáférés

TTF fájlt tölteni a: FontLoader.open() és a névleges táblázatok elérése az ttf_tables tulajdon:

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)

4. lépés: Olvasd el a nyers táblázat-bitéit

Olvassa el a nyers bináris adatokat egy adott táblázat, átadva 4 karakteres címkét az alábbiakhoz: 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")

5. lépés: Írja meg a módosított táblázat-bitéket

A módosított bináris adatokat egy megnevezett táblázatba kell írni a következők segítségével: set_table_bytes() a tag és az byte hasznos terheléssel:

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

Általános problémák és megoldások

AttributeError: Font has no attribute ttf_tablesttf_tables - … a következő: TtfFont, nem a bázis. Font Az osztály. ttf_font: TtfFont = FontLoader.open(...) hogy egy gépelt hivatkozás.

get_table_bytes üres bájtot ad vissza A címkének pontosan 4 karakterből kell állnia. (pl. a szünetelőlapot, ha szükséges). "kern" nem. "KRN").

Gyakran feltett kérdések

Melyik névvel rendelkező táblázat látható a TtfTableSet-en?

Head, hhea, maxp, os2, név, post, cmap, loca, hmtx és kern.

Hozhatok egy új táblát a betűtípushoz?

Igen, adja át a 4 bájtos címkéket és az adatokat. TtfFont.set_table_bytes(tag, data).

Lásd még:

 Magyar