In this question У кого-то была аналогичная проблема: у меня есть: я хочу прочитать содержимое .pptx-файла (только текст), но только получил его работу с .ppt-файлами. Поэтому я попытался решить это с принятым ответом, но у меня есть это исключение: java.lang.ClassNotFoundException: org.apache.poi.hslf.model.TextPainter$Key
read .pptx вызывает java.lang.ClassNotFoundException
Я использовал пример из 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;
}
Вам не хватает файлов jar. Добавьте все файлы jar, предоставленные Apache POI, в ваш путь к классу. См. Этот ответ - http://stackoverflow.com/a/15106801/4720017 – LittlePanda
У меня есть все эти файлы jar, упомянутые там (это проект maven) – Munchkin
Я считаю, что файл jar - poi-scratchpad-3.9.jar. Очистите и создайте свой проект и попробуйте еще раз. Опубликуйте стек. – LittlePanda