Что означает код HRESULT 0x80097006 (MSSIPOTF_E_TABLE_TAGORDER)?

 
Предыдущий Следующий
MSSIPOTF_E_BAD_OFFSET_TABLE MSSIPOTF_E_TABLE_LONGWORD

MSSIPOTF_E_TABLE_TAGORDER

Теги каталога таблиц повторяются или расположены в неправильном порядке

MSSIPOTF_E_TABLE_TAGORDER относится к каталогу, а не именам глифов или сопоставлениям символов. Каждая запись таблицы OpenType имеет четырёхбайтовый тег. Повторяющиеся теги не позволяют определить основную таблицу, а неожиданный порядок может нарушить код, зависящий от правил поиска в каталоге.

Состояние часто возникает после ручного редактирования двоичного файла, слияния, сохранившего обе копии таблицы, или средства записи, выводящего записи в порядке вставки, а не в требуемом порядке. Изменение содержимого таблиц его не исправит; каталог нужно перестроить как единый согласованный список.

Как провести диагностику

  • Выведите каталог и найдите повторяющиеся теги, например две записи name, cmapили head .
  • Сортируйте записи по двоичному значению тега в соответствии с требованиями средства записи или валидатора, а не по текстовому сравнению, зависящему от локали.
  • Убедитесь, что коллекция имеет отдельный правильный каталог для каждого ресурса шрифта.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.