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 TtfFont3. 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_tables — ttf_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).