Ошибка синтаксического анализа OTS: CFF2: неправильно выровненная таблица - PullRequest
0 голосов
/ 16 января 2019

Я только что исправил проблему получения еще одной ошибки (думаю / надеюсь), но теперь я получаю эту ошибку:

OTS parsing error: CFF2: misaligned table

Я читаю документы , но мой вопрос в том, связана ли эта ошибка с тем, что таблица CFF2 имеет неправильный формат или что-то предшествующее ей имеет неправильный формат, что приводит к ее неправильному смещению , Я не могу сказать только из этого сообщения об ошибке.

Я посмотрел, и кажется, что таблица CFF2 отображается с 156-байтовой меткой, что 156 % 4 == 0, поэтому она выравнивается по 4-му байтовому маркеру, что рекомендуется (возможно, требуется) в документации Microsoft. Так что, если он говорит «неправильно выровненная таблица», но его начало кажется правильным, я начинаю предполагать, что это означает что-то другое, например, таблица деформирована (что приводит к некоторому смещению ее части, хотя и не уверен, как это будет работать) ), или эта ошибка является неправильным сообщением об ошибке или чем-то еще.

Если я уберу таблицу CFF2, это даст мне следующее:

OTS parsing error: cmap: misaligned table

Но вряд ли обе таблицы будут неправильно сформированы, поэтому я думаю, что происходит что-то еще.

1 Ответ

0 голосов
/ 18 января 2019

Эта ошибка возникает в инструменте ots . Это говорит о том, что offset (как хранится в tableDirectory) для таблицы не кратно 4. То есть: проблема в tableDirectory , не обязательно в данных таблицы CFF2 (он даже не доходит до попытки анализа таблицы CFF2 ... это также может быть неправильно).

Как и в случае с другими вопросами, которые вы опубликовали здесь недавно: похоже, что любая подпрограмма пишет tableDirectory вашего шрифта, делает это неправильно, добавляя дополнительные байты или неправильные значения для смещения или длины или подобных проблем. Вам действительно нужно сначала решить эту проблему, если вы хотите, чтобы ваш шрифт был правильно проанализирован другими инструментами.

...