阅读方程&公式从Word(Docx)到html并使用java保存数据库

时间:2017-06-25 17:15:14

标签: java apache-poi docx docx4j

我有一个单词/ docx文件,其中包含图像下的方程式 enter image description here

我想读取文件word / docx的数据并保存到我的数据库中 并且在需要时我可以从数据库中获取数据并在我的html页面上显示 我使用apache Poi来读取数据格式的docx文件,但它不能采用方程式 请帮帮我!

3 个答案:

答案 0 :(得分:4)

Word *.docx个文件是ZIP个档案,其中包含XMLOffice Open XML个文件。 Word *.docx文档中包含的公式为Office MathML (OMML)

不幸的是XML格式在Microsoft Office之外并不是很清楚。因此,它不能直接在HTML中使用。但幸运的是它是XML,因此它可以使用Transforming XML Data with XSLT进行转换。因此,我们可以将OMML转换为MathML,例如,可用于更广泛的用例区域。

通过XSLT的转换过程主要基于转换的XSL定义。不幸的是,创建这样的东西也不是很容易。但幸运的是Microsoft已经完成了此操作,如果您安装了当前的Microsoft Office,则可以在OMML2MML.XSL的{​​{1}}计划目录中找到此文件Microsoft Office。如果您没有找到它,请进行网络研究以获得它。

因此,如果我们知道这一切,我们可以从%ProgramFiles%\获取OMML,将其转换为XWPFDocument,然后将其保存以供日后使用。

我的示例将找到的公式MathML存储在MathML个字符串中。您还应该能够将这些字符串存储在数据库中。

该示例需要https://poi.apache.org/faq.html#faq-N10025中提到的完整ArrayList。这是因为它使用了较小的ooxml-schemas-1.3.jar附带的CTOMath

Word文档:

enter image description here

Java代码:

poi-ooxml-schemas jar

结果:

enter image description here

答案 1 :(得分:1)

在使用Mathoff支持时,我面临着从MSWord .docx文件转换为.html的相同问题,因为使用MSoffice API时方程自动转换为png文件。 当我找不到解决方案时,我决定编写自己的shell和python脚本。 它使用乳胶和MathML进行转换,但需要在计算机上同时安装MSOffice和Libre Office。

浏览我的仓库 https://github.com/Adityaraj1711/word-to-html

根据您的用途自定义脚本。 有据可查。

生成的HTML可以被抓取,因此您可以轻松地将其保存为数据库中的文本字段。

答案 2 :(得分:0)

在@Axel Richter的答案中,我发现很难找到所需的依赖项

html = `
   <div>
      <p>${variable}</p>
   </div>
`;

在Office 2019中,我想他们没有提供 <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency> ,所以这里是https://github.com/Versal/word2markdown/blob/master/libs/omml2mml.xsl的链接

相关问题