[java] Apache POI를 이용한 Word 문서 분할

Apache POI는 Java에서 Microsoft Office 파일을 조작하는 라이브러리입니다. 여기서는 Apache POI를 사용하여 Word 문서를 분할하는 방법을 알아보겠습니다.

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

먼저, Apache POI를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가합니다:

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

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

dependencies {
    implementation 'org.apache.poi:poi:4.1.2'
    implementation 'org.apache.poi:poi-ooxml:4.1.2'
}

2. Word 문서 분할하기

Apache POI를 사용하여 Word 문서를 분할하려면 다음 단계를 따라야 합니다:

  1. Word 문서를 읽어옵니다.
  2. 페이지 별로 문서를 분할합니다.
  3. 분할된 문서를 각각 저장합니다.

다음은 위 단계를 구현한 Java 코드입니다:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;

public class WordDocumentSplitter {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("input.docx");
            XWPFDocument document = new XWPFDocument(file);
            
            int pageNumber = 1;
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                XWPFDocument newDocument = new XWPFDocument();
                newDocument.createParagraph().setParagraphText(paragraph.getText());
                
                FileOutputStream outFile = new FileOutputStream("output_" + pageNumber + ".docx");
                newDocument.write(outFile);
                outFile.close();
                
                pageNumber++;
            }
            
            document.close();
            file.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 input.docx는 분할할 대상 Word 문서의 파일 경로입니다. 분할된 문서는 output_1.docx, output_2.docx, … 형식으로 저장됩니다.

3. 실행 결과

위의 코드를 실행하면 입력된 Word 문서가 페이지 별로 분할되어 각각의 파일로 저장됩니다. 이렇게 분할된 Word 문서를 개별적으로 조작하거나 관리할 수 있습니다.

참고 자료