Преобразование уравнения 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-месячная или двухмесячная лицензия).