Java читать файл pptx
Может кто-нибудь помочь мне, как прочитать файл pptx в Java? Я бы предпочел, если это можно прочитать с Apache POI, я искал этот учебник, но я не могу его найти. Я успешно прочитал файл ppt с этим кодом:
try {
FileInputStream fis = new FileInputStream(file);
fs = new POIFSFileSystem(fis);
HSLFSlideShow show = new HSLFSlideShow(fs);
SlideShow ss = new SlideShow(show);
Slide[] slides=ss.getSlides();
for (int x = 0; x < slides.length; x++) {
System.out.println("Slide = " + (x + 1) + " :" + slides[x].getTitle());
TextRun[] runs = slides[x].getTextRuns();
for (int i = 0; i < runs.length; i++) {
TextRun run = runs[i];
if (run.getRunType() == TextHeaderAtom.TITLE_TYPE) {
System.out.println("Slide title " + (i + 1) + ": " + run.getText());
} else {
System.out.println("Slide text run " + (i + 1) + ": " + run.getRunType() + " : " + run.getText());
}
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
Может кто-нибудь сказать мне, какая часть этого кода должна быть изменена для чтения файла pptx?
3 ответа
Согласно http://poi.apache.org/slideshow/index.html вам нужно использовать отдельный набор классов для чтения OOXML .pptx файлов. Пример кода в кулинарной книге: http://poi.apache.org/slideshow/xslf-cookbook.html
Следующая ссылка дает полный код для чтения данных из ppt... http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
Чтобы дать краткое резюме, я могу отметить шаги: сначала создайте объект слайда, используя
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("url of your ppt"));
Получить список сторон в вашем ppt, используя:
final List<XSLFSlide> slide = ppt.getSlides();
Перебирайте слайды и получайте список фигур на каждом слайде, используя:
List<XSLFShape> shapes = selectedslide.getShapes();
Проверьте тип фигуры, это должен быть либо XSLFTextShape, либо XSLFPictureShape. Затем вы можете обрабатывать и отображать данные соответственно.
Вот ссылка для дальнейшего чтения о фигурах.
https://poi.apache.org/apidocs/org/apache/poi/xslf/usermodel/XSLFShape.html
Ответ @Arne de Bruijn Надеюсь, это поможет.
Согласно примечаниям к выпуску apache poi, версия 3.8 может использоваться для чтения PPTX. Вы должны проверить документацию, хотя.