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. Вы должны проверить документацию, хотя.

Другие вопросы по тегам