Преобразование уравнения MathType, встроенного в двоичный файл OLE в MathML

Я пытаюсь преобразовать уравнение 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. Любые мысли?

Спасибо

Ответы

Ответ 1

вы можете преобразовать файл mathtype wmf в mathml следующим образом: ConvertEquation conv = new ConvertEquation(); var input = EquationInputFileWMF ( "mathTYpe.wmf" ); var output = EquationOutputFileText ( "MathMLName.txt", "MathML2 (m namespace).tdl" )); conv.Convert(вход, вход);

"Строка MathML2 (m namespace).tdl" для файла "tdl", которая содержит путь "MathType\Translators", если вы открываете путь Translators, вы можете найти много типов.

Ответ 2

Вы можете попробовать редактор уравнений MathMagic (версия Windows). MathMagic может извлекать все слова, вложенные уравнения из документов (.doc или .docx), и может сохранять/скрывать их в другом формате (например, JPG, PNG, BMP, PDF, TeX, LaTeX, MathML,...) в качестве задания пакетного преобразования. К сожалению, их пробная версия не поддерживает это пакетное преобразование. Для включения функции конвертации необходима действительная лицензия (даже 1-месячная или двухмесячная лицензия).