我想读取文件word / docx的数据并保存到我的数据库中 并且在需要时我可以从数据库中获取数据并在我的html页面上显示 我使用apache Poi来读取数据格式的docx文件,但它不能采用方程式 请帮帮我!
答案 0 :(得分:4)
Word
*.docx
个文件是ZIP
个档案,其中包含XML
个Office 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文档:
Java代码:
poi-ooxml-schemas jar
结果:
答案 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的链接