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

时间:2011-07-26 13:13:31

标签: java ms-office apache-poi

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

如果我只将它提取为文本,那么嵌入式方程就像这样:

!!EMBED Equation.3

1 个答案:

答案 0 :(得分:3)

这可能无法帮助您使用二进制.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"));
 }

然后你可以在那里extract the MathType data并将其交给a MTEF parser

如果您不需要MathType数据,还有一个占位符图像(采用WMF格式),只需渲染等式。