【Java】 파워 포인트 (ppt)에서 Apache POI를 사용하여 텍스트 추출

소개



대량의 파워 포인트 파일로부터 텍스트 추출을 실시할 필요가 있어, 당초는 python-pptx를 사용할 예정이었습니다만, 파일이 파워 포인트 2003까지의 것(확장자 ppt)이었기 때문에 단념했습니다.
거기서 Java의 외부 라이브러리의 Apache POI 를 사용해 텍스트 추출을 실시하기로 하겠습니다.

Apache POI란?




Apache POI는 Microsoft Office 형식의 파일을 읽고 쓸 수 있는 100% Java 라이브러리입니다.
이 기사에서 다루는 파워 포인트뿐만 아니라 엑셀이나 워드의 조작도 할 수 있습니다.

Apache POI 다운로드



Apache POI의 다운로드는 여기 에서 실시해 주세요.

프로그램



다음 ppt 파일의 첫 페이지 슬라이드 텍스트를 가져옵니다.


다음 프로그램으로 이동합니다.

PPT2txt.java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.util.IOUtils;

public class PPT2txt {
    public static void main(String[] args) throws IOException {
        File file = new File("./data/test.ppt");
        FileInputStream inputStream = new FileInputStream(file);

        // 読み込むファイルのサイズが大きい場合は最大値を増やす
//      IOUtils.setByteArrayMaxOverride(10000000);

        HSLFSlideShow ppt = new HSLFSlideShow(inputStream);

        // プレゼンテーション内のすべてのスライドの配列を取得
        List<HSLFSlide> slides = ppt.getSlides();

        int page = 1;
        int paragraph = 1;

        System.out.println(slides.get(page).getTextParagraphs().get(paragraph));

        ppt.close();
    }
}

결과



프로그램을 실행하면 첫 페이지의 텍스트를 얻을 수 있습니다.
[1ページ目テキスト]

결론



이 기사에서는 파워 포인트 2003까지의 것 (확장자 ppt)의 텍스트 추출 방법을 소개했지만, 물론 파워 포인트 2007 이후의 파일 형식 (확장자 pptx)에서도 가능합니다.
이 경우 org.apache.poi.hslf 대신 org.apache.poi.xslf를 사용합니다.
또, 텍스트 추출 뿐만이 아니라 화상 취득이나 슬라이드 작성등의 실시할 수 있으므로, 그 경우는 문서 보고 노력합시다.

끝까지 읽어 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기