2014-07-21 3 views
3

지금까지 난 단지 PPT 슬라이드에서 텍스트를 검색하기위한 작업 코드apache poi를 사용하여 pptx 슬라이드 노트 텍스트를 가져 오는 방법은 무엇입니까?

try { 
    FileInputStream is = new FileInputStream("C:\\sample\\test.ppt"); 
    SlideShow ppt = new SlideShow(is); 

    Slide[] slide = ppt.getSlides(); 
    for (int i = 0; i < slide.length; i++) { 

     System.out.println(i); 
     TextRun[] runs = slide[i].getNotesSheet().getTextRuns(); 
     if (runs.length < 1) { 
      System.out.println("null"); 
     } else { 
      for (TextRun run : runs) { 
       System.out.println(" > " + run.getText()); 
      } 
     } 
    } 

} catch (IOException ioe) { 

} 

노트 그러나 당신은 어떻게 PPTX 슬라이드 노트에서 텍스트를 검색해야하나요?

+0

Apache POI의 코드와 예제를 살펴 보았습니까? 예를 들어 [XSLF 텍스트 추출기 클래스 XSLFPowerPointExtractor] (https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java) 슬라이드 노트에서 텍스트를 추출 할 수 있습니까? – Gagravarr

답변

6

지속적인 시행 착오 끝에 해결책을 찾았습니다.

try { 

    FileInputStream fis = new FileInputStream("C:\\sample\\sample.pptx"); 
    XMLSlideShow pptxshow = new XMLSlideShow(fis); 

    XSLFSlide[] slide2 = pptxshow.getSlides(); 
    for (int i = 0; i < slide2.length; i++) { 
     System.out.println(i); 
     try { 
      XSLFNotes mynotes = slide2[i].getNotes(); 
      for (XSLFShape shape : mynotes) { 
       if (shape instanceof XSLFTextShape) { 
        XSLFTextShape txShape = (XSLFTextShape) shape; 
        for (XSLFTextParagraph xslfParagraph : txShape.getTextParagraphs()) { 
         System.out.println(xslfParagraph.getText()); 
        } 
       } 
      } 
     } catch (Exception e) { 

     } 

    } 
} catch (IOException e) { 

} 
+0

안녕하세요 Jigs이 코드를 사용하여'java.lang.VerifyError : org/apache/poi/xslf/usermodel/XMLSlideShow' 오류가 발생 했습니까? – MilapTank

+0

게시 주셔서 고마워요, 아파치 poi 여전히 바위! ;-) – GBP