Я пытаюсь преобразовать уравнение MathType, которое хранится в виде двоичного файла OLE, в MathML, используя SDK MathType.
Входной файл для моей программы представляет собой DocX, который будет содержать встроенные уравнения MathType. Я ищу решение, которое не зависит от использования MS Word. DocX представляет собой zip-файл, и после его извлечения мы можем найти двоичный файл для каждого объекта OLE в папке «word/embeddings/». Обычно имя файла будет oleObject1.bin, oleObject2.bin и т. д.
Когда я проверил с помощью MathType SDK, у него есть класс «ConvertEquation», который имеет следующий метод:
virtual public bool Convert(EquationInput ei, EquationOutput eo)
EquationInput — это абстрактный класс, для которого доступны следующие конкретные классы:
EquationInputFileText
EquationInputFileWMF2
EquationInputFileWMF
EquationInputFileGIF
EquationInputFileEPS
В перечисленных выше классах ни один из них не поддерживает двоичный код OLE.
Согласно документу MathType SDK, данные MTEF сохраняются в собственном формате данных объекта. Всякий раз, когда объект уравнения должен быть записан в «поток» OLE, записывается 28-байтовый заголовок, за которым следуют данные MTEF. Я предполагаю, что это именно то, что присутствует в этом бинарном файле. Но похоже, что нет никакого способа, с помощью которого этот формат мог бы использоваться SDK для преобразования его в MathML. Есть предположения?
Спасибо