[java] Apache POI를 이용한 Word 문서 페이지 설정

Apache POI는 자바용 라이브러리로, Microsoft Office 형식의 문서를 읽고 쓸 수 있습니다. Word 문서의 페이지 설정을 변경하고 조작하는 작업은 많이 사용되는 기능 중 하나입니다. 이번 포스트에서는 Apache POI를 사용하여 Word 문서의 페이지 설정을 변경하는 방법에 대해 알아보겠습니다.

1. Apache POI 의존성 추가

먼저 Maven 또는 Gradle과 같은 빌드 도구를 사용하여 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'
}

의존성 추가가 완료되었다면, Apache POI를 사용하여 Word 문서의 페이지 설정을 변경할 수 있습니다.

2. 페이지 설정 변경하기

다음은 Apache POI를 사용하여 Word 문서의 페이지 설정을 변경하는 예제 코드입니다. 페이지 여백, 용지 크기, 방향 등을 변경할 수 있습니다.

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

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

public class WordPageSettingsExample {
    public static void main(String[] args) {
        try {
            // 새로운 Word 문서 생성
            XWPFDocument document = new XWPFDocument();

            // 페이지 설정 변경
            document.getDocument().getBody().addNewSectPr();
            CTSectPr sectPr = document.getDocument().getBody().getSectPr();
            if (sectPr == null) {
                sectPr = document.getDocument().getBody().addNewSectPr();
            }
            CTPageMar pageMar = sectPr.addNewPgMar();
            pageMar.setLeft(BigInteger.valueOf(720));  // 왼쪽 여백 (0.5인치)
            pageMar.setRight(BigInteger.valueOf(720));  // 오른쪽 여백 (0.5인치)
            pageMar.setTop(BigInteger.valueOf(1440));  // 상단 여백 (1인치)
            pageMar.setBottom(BigInteger.valueOf(1440));  // 하단 여백 (1인치)

            // 문서 저장
            FileOutputStream out = new FileOutputStream("page_settings.docx");
            document.write(out);
            out.close();

            System.out.println("Word 문서가 생성되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 XWPFDocument를 사용하여 새로운 Word 문서를 생성하고, 페이지 설정을 변경한 후 파일에 저장합니다. 변경된 페이지 설정은 page_settings.docx 파일로 생성됩니다.

3. 참고 자료

위의 참고 자료들은 Apache POI의 다양한 기능과 문서 작성에 대한 자세한 정보를 제공합니다. Apache POI는 다양한 기능을 지원하므로, 관련 문서를 참고하여 더 복잡한 작업을 수행할 수 있습니다.

이상으로 Apache POI를 이용하여 Word 문서의 페이지 설정을 변경하는 방법에 대해 알아보았습니다. Apache POI를 사용하면 자바로 다양한 Office 문서를 조작할 수 있으므로, 필요에 따라 다양한 작업을 할 수 있습니다.