Инспекция на таблицата с шрифтове

Инспекция на таблицата с шрифтове

Инспекция на таблицата с шрифтове

Това ръководство показва как да се четат свойства на таблицата с име, да бъдат извлечени сурови данни от двоична таблица и да са записани модифицирани байтове в TrueType шрифт.

Шрифтовете TrueType и OpenTybe са съставени от двоични таблици, всяка идентифицирана с 4-байтов етикет. TtfTableSet излага наречените Python свойства за общи таблици, и TtfFont предвижда: Достъп с сурови байтове за всички таблици.


Четете таблици с имена

TtfTableSet Излага главата, hhea, maxp, os2, име, пост, cmap, loca, hmtx и kern таблици.

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)

Четене на сурови битове от таблица

TtfFont.get_table_bytes(tag) Връща пълното двоично съдържание на всяка таблица, идентифицирана с нейния четиризначен етикет, което позволява проверка на ниско ниво или персонализирано анализиране.

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

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

Написване на модифицирани битове от таблица

TtfFont.set_table_bytes(tag, data) заменя двоичното съдържание на таблица, като позволява персонализирани модификации на табелите, например корекция на правилата на GSUB или актуализиране на записи с имена.

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

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

Съвети и най-добри практики

  • Проверка. tables.kern is not None преди достъп до данни за коренното управление на системата;
  • TtfTableSet.get_raw(tag) и в) set_raw(tag, data) Това са псевдоними за… get_table_bytes / set_table_bytes
  • Използване на: FontCleaner.clean_for_web() вместо ръчно премахване на таблици, за да се избегнат проблеми с последователността

Снимка на API референтна информация

Клас / методОписание на състоянието
TtfFont.ttf_tablesДостъп до свойства на таблица с име
TtfFont.get_table_bytes(tag)Прочетете сурови данни от двоична таблица.
TtfFont.set_table_bytes(tag, data)Записване на изменени данни от таблицата
TtfTableSet.get_raw(tag)Алиас за get_table_bytes
TtfTableSet.set_raw(tag, data)Алиас за set_table_bytes

Вижте също:

 Български