This article demonstrates how to insert math equations i.e. Latex and MathML equations and Symbols in a Word document in Java using Spire.Doc for Java.
import com.spire.doc.Document; import com.spire.doc.FileFormat; import com.spire.doc.Section; import com.spire.doc.Table; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.omath.OfficeMath; public class AddMathEquationsAndSymbols { public static void main(String[] args){ //Latex code String[] latexMathCode1 = { "x^{2}+\\sqrt{{x^{2}+1}}+1", "2\\alpha - \\sin y + x", }; //MathML code String[] mathMLCode = { "<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msqrt><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:msqrt><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math>", "<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"><mml:mn>2</mml:mn><mml:mi>α</mml:mi><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>x</mml:mi></mml:math>", }; //Latex code String[] latexMathCode2 = { "\\alpha", "\\beta", }; //Create a Document instance Document doc = new Document(); //Load the Word document doc.loadFromFile("MathEquationTemplate.docx"); //Get the first section Section section = doc.getSections().get(0); Paragraph paragraph = null; OfficeMath officeMath; //Insert Latex equations Table table1 = section.getTables().get(0); for (int i = 0; i < latexMathCode1.length; i++) { paragraph = table1.getRows().get(i + 1).getCells().get(0).addParagraph(); paragraph.setText(latexMathCode1[i]); paragraph = table1.getRows().get(i + 1).getCells().get(1).addParagraph(); officeMath = new OfficeMath(doc); officeMath.fromLatexMathCode(latexMathCode1[i]); paragraph.getItems().add(officeMath); } //Insert MathML equations Table table2 = section.getTables().get(1); for (int i = 0; i < mathMLCode.length; i++) { paragraph = table2.getRows().get(i + 1).getCells().get(0).addParagraph(); paragraph.setText(mathMLCode[i]); paragraph = table2.getRows().get(i + 1).getCells().get(1).addParagraph(); officeMath = new OfficeMath(doc); officeMath.fromMathMLCode(mathMLCode[i]); paragraph.getItems().add(officeMath); } //Insert Symbols Table table3 = section.getTables().get(2); for (int i = 0; i < latexMathCode2.length; i++) { //Insert Latex code to the first column of the table paragraph = table3.getRows().get(i + 1).getCells().get(0).addParagraph(); paragraph.setText(latexMathCode2[i]); //Insert symbols to the second column of the table paragraph = table3.getRows().get(i + 1).getCells().get(1).addParagraph(); officeMath = new OfficeMath(doc); officeMath.fromLatexMathCode(latexMathCode2[i]); paragraph.getItems().add(officeMath); } //Save the document String result = "addMathEquationAndSymbols.docx"; doc.saveToFile(result, FileFormat.Docx_2013); } }
Output: