[java] Apache POI를 이용한 Word 문서 북마크 설정

많은 기업이 문서 처리를 위해 Microsoft Word를 사용하는데, Apache POI 라이브러리는 Java에서 Word 문서를 다루기 위한 강력한 도구입니다. 이 라이브러리를 사용하여 Word 문서에 북마크를 설정하는 방법을 알아보겠습니다.

1. Apache POI 의존성 추가

먼저 Maven이나 Gradle 등 빌드 도구를 사용하여 Apache POI를 프로젝트에 추가해야 합니다. 아래는 Maven을 사용하는 경우의 의존성 설정 예시입니다.

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

2. Word 문서 열기

먼저 Word 문서를 열어야 합니다. 아래 코드는 Document.docx 파일을 열고 XWPFDocument 객체로 저장하는 예시입니다.

String filePath = "path/to/Document.docx";
FileInputStream fis = new FileInputStream(filePath);
XWPFDocument document = new XWPFDocument(fis);

3. 북마크 설정

북마크를 설정하려면 XWPFRun 객체를 사용해야 합니다. 아래 코드는 bookmarkName이라는 이름의 북마크를 XWPFParagraph의 첫 번째 런에 설정하는 예시입니다.

String bookmarkName = "bookmark1";
XWPFParagraph paragraph = document.getParagraphs().get(0); // 첫 번째 단락
XWPFRun run = paragraph.getRuns().get(0); // 첫 번째 런
CTBookmark bookmark = run.getCTR().addNewBookmarkStart();
bookmark.setName(bookmarkName);
bookmark.setId(BigInteger.valueOf(1));

4. 변경 사항 저장

북마크를 설정한 후에는 Word 문서를 변경한 내용을 저장해야 합니다. 아래 코드는 변경 사항을 outputPath에 저장하는 예시입니다.

String outputPath = "path/to/ModifiedDocument.docx";
FileOutputStream fos = new FileOutputStream(outputPath);
document.write(fos);
fos.close();

마무리

위의 예제 코드들을 참고하여 Apache POI를 사용하여 Word 문서에 북마크를 설정할 수 있습니다. 이를 통해 프로그램적으로 Word 문서를 다룰 때 특정 위치에 북마크를 설정하고 해당 위치로의 참조를 용이하게 할 수 있습니다.

참고 문서: Apache POI - Word Extraction