read .pptx导致java.lang.ClassNotFoundException

时间:2015-04-15 08:16:55

标签: java apache-poi powerpoint xslf

In this question有人遇到了类似的问题:我想读取.pptx文件的内容(只有文本),但只能使用.ppt文件。所以我尝试用接受的答案解决它,但我得到了这个例外:java.lang.ClassNotFoundException: org.apache.poi.hslf.model.TextPainter$Key

我使用了this page中的示例(已在接受的答案中提出),所以我不知道为什么它不起作用。我的代码:

public static String readPPTX(String path) throws FileNotFoundException, IOException{
    XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(path));
    String content = "";
    XSLFSlide[] slides = ppt.getSlides();
    for (XSLFSlide slide : slides){
        XSLFShape[] sh = slide.getShapes();
        for (int j = 0; j < sh.length; j++){
            if (sh[j] instanceof XSLFTextShape){
                XSLFTextShape shape = (XSLFTextShape)sh[j];
                content += shape.getText() + "\n";
            }
        }
    }
    return content;
}

1 个答案:

答案 0 :(得分:3)

此问题的解决方法是将poi-scratchpad-3.9.jar文件添加到项目的类路径中。