You can use the OMML2MML.XSL file (located under %ProgramFiles%\Microsoft Office\Office15 ) to convert the Microsoft Office MathML (equations) included in the text document into MathML.
The code below shows how to convert equations to a text document in MathML using the following steps:
- Open a Word document using the OpenXML SDK (version 2.5).
- Create an XslCompiledTransform and load the OMML2MML.XSL file.
- Convert a word document by calling the Transform () method on the created XslCompiledTransform instance.
- Display the result of the conversion (for example, print to the console or write to a file).
I checked the code below with a simple Word document containing two equations, text and images.
using System.IO; using System.Xml; using System.Xml.Xsl; using DocumentFormat.OpenXml.Packaging; public string GetWordDocumentAsMathML(string docFilePath, string officeVersion = "14") { string officeML = string.Empty; using (WordprocessingDocument doc = WordprocessingDocument.Open(docFilePath, false)) { string wordDocXml = doc.MainDocumentPart.Document.OuterXml; XslCompiledTransform xslTransform = new XslCompiledTransform();
To convert only one equation (and not the entire word document), simply request the required Math Office paragraph (m: oMathPara) and use the OuterXML property of this node. The code below shows how to execute a query for the first paragraph of math:
string mathParagraphXml = doc.MainDocumentPart.Document.Descendants<DocumentFormat.OpenXml.Math.Paragraph>().First().OuterXml;
Use the returned XML to feed the TextReader .
source share