[java] Apache POI를 이용한 PowerPoint 파일 쓰기

Apache POI는 자바로 Microsoft Office 파일 포맷을 다룰 수 있는 라이브러리입니다. 이번 포스트에서는 Apache POI를 사용하여 PowerPoint 파일을 생성하고 편집하는 방법을 알아보겠습니다.

1. Apache POI 라이브러리 추가하기

먼저, Apache POI 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음의 의존성을 추가합니다:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음의 의존성을 추가합니다:

implementation 'org.apache.poi:poi-ooxml:4.1.2'

의존성을 추가한 후, 프로젝트를 빌드하면 Apache POI가 사용 가능해집니다.

2. PowerPoint 파일 생성하기

먼저, PowerPoint 파일을 생성해보겠습니다.

import java.io.FileOutputStream;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class CreatePowerPoint {
    public static void main(String[] args) throws Exception {
        // PowerPoint 파일 생성
        XMLSlideShow ppt = new XMLSlideShow();

        // 슬라이드 생성
        XSLFSlide slide = ppt.createSlide();

        // 슬라이드에 텍스트 추가
        slide.createTextBox().setText("Hello, World!");

        // 저장할 파일 경로 지정
        FileOutputStream out = new FileOutputStream("example.pptx");

        // 파일 저장
        ppt.write(out);

        // 파일 닫기
        out.close();

        System.out.println("PowerPoint 파일이 생성되었습니다.");
    }
}

위의 코드에서 생성된 PowerPoint 파일은 example.pptx라는 이름으로 저장됩니다.

3. PowerPoint 파일 편집하기

이제 생성된 PowerPoint 파일을 편집해보겠습니다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class EditPowerPoint {
    public static void main(String[] args) throws Exception {
        // PowerPoint 파일 불러오기
        FileInputStream input = new FileInputStream("example.pptx");
        XMLSlideShow ppt = new XMLSlideShow(input);

        // 첫 번째 슬라이드 가져오기
        XSLFSlide slide = ppt.getSlides().get(0);

        // 텍스트 모양 가져오기
        XSLFTextShape textShape = (XSLFTextShape) slide.getShapes().get(0);
        
        // 텍스트 추가 및 수정
        XSLFTextParagraph paragraph = textShape.addNewTextParagraph();
        paragraph.addNewTextRun().setText("Welcome to Apache POI!");

        // 수정된 파일 저장
        FileOutputStream output = new FileOutputStream("edited_example.pptx");
        ppt.write(output);
        output.close();

        System.out.println("PowerPoint 파일이 편집되었습니다.");
    }
}

위의 코드에서 생성된 PowerPoint 파일은 edited_example.pptx라는 이름으로 저장됩니다.

결론

이번 포스트에서는 Apache POI를 이용하여 PowerPoint 파일을 쓰는 방법을 살펴보았습니다. Apache POI는 강력한 기능을 제공하며, 자바 개발자들에게 효율적인 Office 파일 다루기 솔루션을 제공합니다.

더 자세한 내용은 Apache POI 공식 문서를 참고하세요.