2016-06-07 15 views
0

Ich entferne Folien aus einer PPT-Datei mit Apache Poi.Apache Poi nicht aktualisieren PPT-Datei mit HSLF-Komponente

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

Ich druckte alle Dias und ich sah die ersten fünf Dias sind weg. Als ich jedoch meine PPT-Datei geöffnet habe, hat sich nichts geändert. Die ersten fünf Folien sind noch da. Was soll ich machen?

+0

Sie scheinen Ihre Änderungen nicht in der Datei zu speichern - ist das so einfach? – Gagravarr

+0

@Gagravarr Ich habe nie die Beispiele gesehen, die die Änderungen speichern. Wie geht das? – morbidCode

Antwort

1

Wenn Sie Änderungen vorgenommen haben, müssen Sie sie aufschreiben, damit sie gespeichert werden können! Das Verfahren ist in der Regel write(OutputStream) über alle Formate, javadocs für die HSLF write method here

Also, einfach Ihren Code so etwas wie dies ändern:

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(); 

Es gibt noch keine Vor-Ort-Spar Unterstützung in HSLF und keine Freiwilligen Um sie hinzuzufügen, müssen Sie sie in einer anderen Datei speichern als in der Datei