阅读 .pptx 导致 java.lang.ClassNotFoundException
read .pptx causes java.lang.ClassNotFoundException
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;
}
这个问题的解决方法是将poi-scratchpad-3.9.jar文件添加到项目的类路径中。
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;
}
这个问题的解决方法是将poi-scratchpad-3.9.jar文件添加到项目的类路径中。