[java] Apache POI를 이용한 Word 문서 요약 정보 설정

Apache POI는 자바를 사용하여 Microsoft Office 파일을 조작하는 라이브러리입니다. 이를 사용하면 자바 애플리케이션에서 Word 문서의 요약 정보를 설정할 수 있는 기능을 구현할 수 있습니다.

이번 예제에서는 Apache POI를 사용하여 Word 문서의 요약 정보를 설정하는 방법을 알아보겠습니다. 예를 들어, 문서의 제목, 저자, 서머리 등을 설정하는 작업을 다루겠습니다.

Apache POI 의존성 설정

먼저, Apache POI 라이브러리를 사용하기 위해 Maven이나 Gradle과 같은 빌드 도구에서 의존성을 추가해야 합니다. 아래는 Maven을 사용하는 경우의 의존성 설정입니다.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>

Word 문서 요약 정보 설정 예제

다음은 Apache POI를 사용하여 Word 문서의 요약 정보를 설정하는 예제 코드입니다.

import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.PropertySet;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hpsf.MutablePropertySet;
import org.apache.poi.hpsf.WritingNotSupportedException;
import org.apache.poi.hpsf.Section;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WordDocumentSummaryExample {

    public static void main(String[] args) {
        try {
            // 원본 Word 문서 파일
            FileInputStream fileInputStream = new FileInputStream("path/to/word/document.docx");

            // Apache POI 파일 시스템 생성
            POIFSFileSystem fs = new POIFSFileSystem(fileInputStream);

            // 문서 요약 정보 가져오기
            DocumentSummaryInformation dsi = fs.getDocumentSummaryInformation();

            // 문서 요약 정보 설정
            if (dsi == null) {
                dsi = PropertySet.createDocumentSummaryInformation();
            }

            dsi.setTitle("문서 제목");
            dsi.setAuthor("문서 저자");
            dsi.setSubject("문서 주제");
            // 추가적인 요약 정보 설정 가능

            // 문서 요약 정보 저장
            PropertySet ps = dsi;
            MutablePropertySet mps = new MutablePropertySet(ps);
            Section s = (Section) mps.getSections().get(0);
            s.setSize(ps.getByteCount());
            FileOutputStream fileOutputStream = new FileOutputStream("path/to/word/document.docx");
            mps.write(fileOutputStream);

            // 파일 스트림 닫기
            fileOutputStream.close();
            fileInputStream.close();
        } catch (IOException | WritingNotSupportedException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 원본 Word 문서 파일로부터 Apache POI 파일 시스템을 생성하고, 문서 요약 정보를 가져옵니다. 그 후에는 setTitle(), setAuthor(), setSubject()와 같은 메서드를 사용하여 원하는 요약 정보를 설정할 수 있습니다.

마지막으로, 변경된 문서 요약 정보를 저장하고 파일 스트림을 닫습니다.

이 예제를 실행하면 Word 문서의 요약 정보가 설정된 새로운 파일이 생성됩니다.

참고 자료