Я пытаюсь преобразовать уравнение MathType, которое хранится как двоичный файл OLE в MathML, используя MathType SDK.
Входной файл для моей программы - DocX, который будет содержать embmedd 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. Любые мысли?
Спасибо