将嵌入在OLE二进制文件中的MathType方程转换为MathML

时间:2015-08-26 06:39:51

标签: ms-word docx mathml mathtype

我正在尝试将使用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。有什么想法吗?

由于

2 个答案:

答案 0 :(得分: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名称空间).tdl"字符串代表" tdl"文件包含" MathType \ Translators"路径,如果您打开Translators路径,您可以找到许多类型。

答案 1 :(得分:0)

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