apache poi没有使用HSLF组件更新ppt文件

时间:2016-06-07 05:56:11

标签: java apache apache-poi powerpoint

我正在使用apache poi从ppt文件中删除幻灯片。

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

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

1 个答案:

答案 0 :(得分:1)

当您完成更改后,您需要将它们写出来以便保存!该方法通常write(OutputStream)涵盖所有格式,HSLF write method here

的javadoc

所以,只需将代码改为:

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目前没有就地保存支持,也没有志愿者添加它,因此您必须保存到与您打开的文件不同的文件