2016-06-07 55 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支持,也沒有志願者添加它,所以你必須保存到一個不同於你打開它的文件