Проверка таблицы шрифтов

Проверка таблицы шрифтов

Проверка таблицы шрифтов

В этом руководстве показано, как читать свойства названной таблицы, извлекать необработанные данные бинарной tabлы и записывать измененные байты таблиц обратно в шрифт TrueType.

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


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

TtfTableSet выставляет head, hhea, maxp, os2, name, post, cmap, loca, hmtx и ядра таблиц.

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) возвращает полное содержание бинарной таблицы, идентифицированной ее четырехзначным тегом, что позволяет проводить проверку на низком уровне или пользовательский анализ.

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 или обновлять записи имен.

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

Советы и лучшие практики

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

Справочное резюме API

Класс / методDescription
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

See Also

 Русский