ms-word docx mathml mathtype

ms word - Convertir la ecuación de MathType incrustada en un archivo binario OLE a MathML



ms-word docx (2)

Estoy tratando de convertir la ecuación de MathType que se almacena como archivo binario OLE a MathML usando el SDK de MathType.

El archivo de entrada para mi programa es un DocX que contendría las ecuaciones de MathType incluidas. Estoy buscando una solución que sea independiente del uso de MS Word. DocX es un archivo zip, y una vez extraído, podemos encontrar un archivo binario para cada objeto OLE en la carpeta "word / embeddings /". Normalmente, el nombre del archivo sería oleObject1.bin, oleObject2.bin etc.

Cuando verifiqué con MathType SDK, tiene una clase "ConvertEquation" que tiene el siguiente método:

virtual public bool Convert(EquationInput ei, EquationOutput eo)

EquationInput es una clase abstracta para la cual están disponibles las siguientes clases concretas:

EquationInputFileText EquationInputFileWMF2 EquationInputFileWMF EquationInputFileGIF EquationInputFileEPS

En las clases mencionadas anteriormente, ninguno de ellos parece ser compatible con el binario OLE.

De acuerdo con el documento SDK de MathType, los datos MTEF se guardan como el formato de datos nativos del objeto. Cada vez que se escribe un objeto de ecuación en un "flujo" OLE, se escribe un encabezado de 28 bytes, seguido de los datos MTEF. Supongo que esto es exactamente lo que está presente en este archivo binario. Pero solo que no parece haber ninguna manera de que este formato pueda ser utilizado por el SDK para convertirlo en MathML. ¿Alguna idea?

Gracias


Puede probar el editor de ecuaciones de MathMagic (versión de Windows). MathMagic puede extraer todas las ecuaciones incrustadas de Word del documento (s) (.doc o .docx), y puede guardarlas / convertirlas a otro formato (como JPG, PNG, BMP, PDF, TeX, LaTeX, MathML, .. .) como un trabajo de conversión por lotes. Desafortunadamente, su versión de prueba no admite esta conversión por lotes. Se requiere una licencia válida (incluso una licencia de 1 mes o 2 meses) para habilitar la función de conversión.


puede convertir mathtype wmf file a mathml de la siguiente manera: ConvertEquation conv = new ConvertEquation (); var input = EquationInputFileWMF ("mathTYpe.wmf"); var output = EquationOutputFileText ("MathMLName.txt", "MathML2 (m namespace) .tdl")); Conv.Convert (entrada, entrada);

la cadena "MathML2 (m namespace) .tdl" representa el archivo "tdl" que contiene la ruta "MathType / Translators"; si abre la ruta Translators, puede encontrar muchos tipos.