Docx4j导出latex公式到word(公式可编辑)
环境
核心代码
依赖项
docx4j
:操作word文档(.docx)
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>6.0.1</version>
</dependency>
<!--下面这个jar好像不引入也没问题-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
</dependency>
latex-word(第三方jar包)
:将latex值转成符合word xml标准的工具
github项目地址为:https://github.com/mao-yuwei/latex_word
相关文章为:https://blog.csdn.net/weixin_30633405/article/details/98518909
关键步骤
-
调用
com.latextoword.Latex_Word.latexToWordAlreadyClean
方法获取到latex对应的xml字符串,例如:<m:oMath>......</m:oMath>
-
给根节点添加必要(非常重要,否则生成的文档将无法正常打开)的
namespace
:xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"
<m:oMath xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">......</m:oMath>
-
调用
org.docx4j.XmlUtils.unmarshalString
方法将最终拼接好的xml字符串解析为Object -
将转换好的对象add到word的元素对象中(诸如org.docx4j.wml.P)
-
最终效果如下
image
代码参考
注意事项
参考
https://blog.csdn.net/weixin_30633405/article/details/98518909
https://github.com/mao-yuwei/latex_word
https://github.com/plutext/docx4j/blob/master/docx4j-samples-docx4j/src/main/java/org/docx4j/samples/MathsEquationsFormulae.java