2016-06-07 87 views
0

我正在使用apache poi从ppt文件中删除幻灯片。apache poi不更新HSLF组件的ppt文件

HSLFSlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(dir)); 
for (int i = 0; i < 5; i++) { 
    slideShow.removeSlide(0); 
} 

我打印了所有的幻灯片,我看到前五张幻灯片都没有了。但是,当我打开我的PPT文件时,没有任何改变。前五个幻灯片仍然存在。我该怎么办?

+0

你看起来并没有把你的修改保存到文件中 - 它是如此简单吗? – Gagravarr

+0

@Gagravarr我从来没有见过保存更改的例子。怎么做? – morbidCode

回答

1

当您完成更改后,您需要写出来让他们保存!该方法一般是write(OutputStream)在所有格式的Javadoc文档HSLF write method here

因此,只要改变你的代码是这样的:

HSLFSlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(dir)); 
for (int i = 0; i < 5; i++) { 
    slideShow.removeSlide(0); 
} 
FileOutputStream out = new FileOutputStream("changed.ppt"); 
slideShow.write(out); 
out.close(); 

目前还没有任何就地保存在HSLF支持,也没有志愿者添加它,所以你必须保存到一个不同于你打开它的文件