2010-01-28 72 views
19

有谁知道任何可以通过Java生成/编辑PowerPoint 2007/2010演示文稿的API(商业或开放源代码)。我有一个PowerPoint 2007/2010格式的模板,需要编辑/更新。到目前为止,我已经将.pptx文件转换为xml,然后编辑并将其存储为.pptx。但该文件在打开时被破坏。使用Java生成PowerPoint 2007/2010文件

是否有人知道有任何其他方法或API在Java中执行此操作?

+0

我假设它*实际上*在保存时被损坏,并且您在打开时收到消息。也就是说,OpenOffice.org是基于Java的... – 2010-01-28 06:27:11

回答

5

是的。查看http://poi.apache.org/,他们刚发布了3.6版本,现在支持Office 2007格式的文档。最好的部分是它是免费的!

7

docx4j(apache许可证)现在包含一个pptx4j组件,它可以打开/编辑/保存pptx文档。

9

我们已经通过编程完成了它(关闭源代码,抱歉),所以可能会有所帮助,但要注意几个问题。

一个是POI项目(至少当我们去年看过),是相当不完整的。它没有做PPTX图表 - 这是我们想要的一个功能。事实上,POI网站可能不是最新的,但它们似乎不支持PowerPoint 20087格式(http://poi.apache.org/slideshow/index.html)。大家都推荐这个项目,但我们的评价是,通过Java生成PowerPoint 2007文件几乎没有用处。你的milage可能会有所不同。

当我们看着它时,Apose也有一些显着的局限性;没有做PowerPoint 2007中的图表是我们的阻塞问题。

另一个问题是,PowerPoint 2007可能相当麻烦。我们有许多编程生成的PPT文件会导致锁定,但是在测试时,我们发现我们可以使用PowerPoint 2007中创建的简单PPTX文档(即不是我们的代码)重新编译崩溃和锁定文件。最后,我们做了以下工作:将一个'模板'PowerPoint文件解压缩到一个文件夹,然后根据需要,用新值填充模板XML,压缩它,重命名各种元素&将其交付给用户一个有效的PPTX。工作正常,除了编辑文件时奇怪的PowerPoint崩溃。如果有它的市场,我想我们可以把代码打包成一个web服务(即xml/csv - > PPTX)或者组合一个商业软件包,但我们不会免费的。

0

要从模板文件生成PowerPoint演示文稿,可以使用PPT Templates

这个库提供一个流畅的API来代替PPT模板中的变量:

try(FileOutputStream out = new FileOutputStream("generated.pptx")) { 
    new PptMapper() 
    .text("variable", "Hello") 
    .text("other_variable", "World!") 
    .processTemplate(PptTemplateDemo.class.getResourceAsStream("/title.pptx")) 
    .write(out); 
} 

有了这个库,你可以处理模板中的文字和图片。