如何在 Java Apache POI 库中使用嵌入式方程?

发布于 2024-11-26 12:56:53 字数 176 浏览 3 评论 0原文

我正在尝试使用“Apache POI”将 .doc MS Word 文件中的嵌入方程和文本提取到 .ppt MS Powerpoint 文件中,我已成功提取文本,但如何提取嵌入方程?

如果我只将其提取为文本,则嵌入方程会像这样出现:

!!EMBED Equation.3

I am trying to use "Apache POI" to extract embedded equation and text from a .doc MS Word file into a .ppt MS Powerpoint file, I have successfully extracted text, but how do I extract embedded equations?

the Embedded Equations comes out like this if I only extract it as text:

!!EMBED Equation.3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

朮生 2024-12-03 12:56:53

这可能对二进制 .doc 格式没有帮助,但对于较新的 .docx 格式,我能够使用以下代码获取作为 OLE 文档嵌入的方程式:

 InputStream in = new FileInputStream(f);
 XWPFDocument doc = new XWPFDocument(in);
 for (PackagePart p : doc.getAllEmbedds()) {
   POIFSFileSystem poifs = new POIFSFileSystem(p.getInputStream());
   byte[] oleData = IOUtils.toByteArray(
              poifs.createDocumentInputStream("Equation Native"));
 }

然后您可以 提取其中的 MathType 数据并将其交给MTEF 解析器

如果您不需要 MathType 数据,还有一个仅呈现方程的占位符图像(WMF 格式)。

This may not help you with the binary .doc format, but for the newer .docx format, I was able to get to the equation, which is embedded as an OLE document, using the following code:

 InputStream in = new FileInputStream(f);
 XWPFDocument doc = new XWPFDocument(in);
 for (PackagePart p : doc.getAllEmbedds()) {
   POIFSFileSystem poifs = new POIFSFileSystem(p.getInputStream());
   byte[] oleData = IOUtils.toByteArray(
              poifs.createDocumentInputStream("Equation Native"));
 }

And then you can extract the MathType data in there and hand it to a MTEF parser.

If you don't need the MathType data, there is also a placeholder image (in WMF format) that just renders the equation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文