如何通过POI添加wmf文件作为嵌入式方程来创建word文件?

时间:2017-07-08 04:55:10

标签: ms-word apache-poi wmf mathtype

Envirment:windows7上的word2007。

我使用最新的Apache POI库(3.16)解析一个单词(.docx)文件,并成功地完成了文本,图片和嵌入式数学类型方程的确定。

为了解析嵌入的mathtype方程式,我使用了以下api

List<XWPFPictureData> allPictures = doc.getAllPictures();
int i = 0;
for (XWPFPictureData picture: allPictures) {
    if (picture.getFileName().endsWith(".wmf")) {
        FileUtils.writeByteArrayToFile(new File(i + ".wmf"), 
        picture.getData());
        i++;
    }
}

现在我要创建一个新单词(docx)文件,将文本,图片和嵌入的数学类型方程式添加回来。

添加文字:XWPFRun run = para.createRun(); run.setText("xxx")

添加图片:XWPFPicture xwpfPicture = run.addPicture(pictureData, pictureType, filename, Units.pixelToEMU(width), Units.pixelToEMU(height));

添加wmf: String rId = doc.addPictureData(new FileInputStream(wmfFilePath), Document.PICTURE_TYPE_WMF);

问题在于wmf现在是不可见的,以及如何使其可见并将其置于其中 正确的位置?或者说使wmf与创建的运行相关。

看到poi示例和测试用例,但仍然找不到任何api或方法。 http://svn.apache.org/repos/asf/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/ http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/

有一个相关的问题: How can I add embedded equations to docx files by using Apache POI?

不同之处在于我只想将解析后的wmf文件添加到新单词中 文件,而不是以编程方式编写一些数学类型方程式。

有人可以帮忙吗?

例如: 我有一个单词有一个mathtype方程,当双击它时,mathtype编辑器打开,因为mathtype soft已安装在机器上。

解析它使用POI api:

doc.getAllPictures(); FileUtils.writeByteArrayToFile(new File(i +“。wmf”),picture.getData());

现在,mathtype方程转换为磁盘上的wmf文件。

run.addPicture(pictureData,Document.PICTURE_TYPE_WMF,filename,Units.pixelToEMU(width),Units.pixelToEMU(height))它可以添加wmf作为图片, 但是我希望恢复这个词,当用户双击单词方程时,mathtype编辑器就会打开。

POI可以将word中的mathtype方程解析为wmf文件,有没有办法将单词写回原文?

0 个答案:

没有答案