15

我正在尝试使用 MathType 的 SDK 将存储为 OLE 二进制文件的 MathType 方程转换为 MathML。

我的程序的输入文件是一个包含嵌入式 MathType 方程的 DocX。我正在寻找一种独立于使用 MS Word 的解决方案。DocX 是一个 zip 文件,解压后,我们可以在“word/embeddings/”文件夹中找到每个 OLE 对象的二进制文件。通常文件名是 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。有什么想法吗?

谢谢

4

2 回答 2

0

您可以将 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路径,你可以找到很多类型。

于 2017-03-03T08:37:23.850 回答
0

你可以试试 MathMagic 方程编辑器(Windows 版)。MathMagic 可以从文档(.doc 或 .docx)中提取所有嵌入 Word 的方程,并可以将它们保存/转换为其他格式(例如 JPG、PNG、BMP、PDF、TeX、LaTeX、MathML、.. .) 作为批量转换作业。不幸的是,他们的试用版不支持这种批量转换。启用转换功能需要有效的许可证(甚至是 1 个月或 2 个月的许可证)。

于 2017-07-03T17:34:45.447 回答