Fönsterbord inspektör
Fönsterbord inspektör
Denna guide visar hur man läser namngivna tabellegenskaper, återhämta rå binära tabeldata och skriva modifierade tabelbytter tillbaka i ett TrueType-faktur.
TrueType och OpenTYpe fonts består av binära tabeller, var och en identifierad med ett 4-bitars tag. TtfTableSet exponerar namngivna Python-egenskaper för vanliga tabeller, och TtfFont Försöker Rå byte åtkomst för alla tabeller.
Läs namngivna tabeller
TtfTableSet exponerar huvud, hhea, maxp, os2, namn, post, cmap, loca, Hmtx och kärntabeller.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)Läs Raw Table Bytes
TtfFont.get_table_bytes(tag) returnerar det fullständiga binära innehållet i någon tabell som identifieras med dess fyra tecken tag, vilket möjliggör låg nivå inspektion eller anpassad parsing.
ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")
---
### Skrivande av modifierade tabellbyten
`TtfFont.set_table_bytes(tag, data)` ersätter en tabellens binära innehåll, vilket gör det möjligt att anpassa tabellen ändringar som patching GSUB-regler eller uppdatering av namnregistret.
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Tips och bästa praxis
- Check
tables.kern is not NoneInnan du får tillgång till kerningdata TtfTableSet.get_raw(tag)ochset_raw(tag, data)Allianser förget_table_bytes/set_table_bytes- Användning
FontCleaner.clean_for_web()i stället för att manuellt ta bort tabeller för Att undvika konsistensproblem
API Referens sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
TtfFont.ttf_tables | Tillgång till namngivna tabellegenskaper |
TtfFont.get_table_bytes(tag) | Läs rå binära tabelldata |
TtfFont.set_table_bytes(tag, data) | Skriv ändrade tabelldata |
TtfTableSet.get_raw(tag) | Alias för get_table_bytes |
TtfTableSet.set_raw(tag, data) | Alias för set_table_bytes |