[java] Apache POI를 이용한 Word 문서 공유 설정

MS Word 문서의 공유 설정은 여러 사용자가 동시에 문서를 편집하고 변경 사항을 공유할 수 있도록 하는 기능입니다. Apache POI는 자바에서 MS Word 문서를 조작할 수 있는 라이브러리이며, 이를 사용하여 Word 문서의 공유 설정을 할 수 있습니다.

1. Apache POI 설치

먼저, Apache POI를 설치해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.

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

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

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

의존성을 추가한 후, 프로젝트를 업데이트하여 Apache POI를 사용할 수 있습니다.

2. Word 문서 열기

Apache POI를 사용하여 Word 문서를 열기 위해서는 XWPFDocument 클래스를 사용합니다. 다음은 Word 문서를 열고 XWPFDocument 객체를 생성하는 예제 코드입니다.

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

public class WordDocumentExample {

    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/word/document.docx");
            XWPFDocument document = new XWPFDocument(file);

            // 문서 조작 코드 작성

            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 path/to/word/document.docx 부분은 실제 Word 문서의 경로로 변경해야 합니다.

3. 문서 공유 설정

문서 공유 설정을 위해선 CTDocument 객체에서 settings 속성을 가져온 후, 이를 변경해야 합니다. 다음은 문서 공유 설정을 활성화하는 예제 코드입니다.

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.xmlbeans.XmlOptions;

import javax.xml.namespace.QName;
import com.microsoft.schemas.office.office.CTDocument;
import com.microsoft.schemas.office.office.CTLocking;

public class WordDocumentExample {

    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/word/document.docx");
            XWPFDocument document = new XWPFDocument(OPCPackage.open(file));

            CTDocument ctDocument = document.getDocument();
            CTLocking ctLocking = ctDocument.getSettings().getDocumentProtection();
            
            // 문서 공유 설정 활성화
            ctLocking.setEnforcement(true);
            ctLocking.setEdit(true);

            document.write(new FileOutputStream("path/to/word/updated_document.docx"));
            document.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 path/to/word/updated_document.docx 부분은 업데이트된 Word 문서의 경로로 변경해야 합니다.

위의 코드를 실행하면 원본 Word 문서의 공유 설정이 활성화되어 변경이 제한된 문서가 생성됩니다.

Apache POI를 사용하여 MS Word 문서의 공유 설정을 조작하는 방법에 대해 알아보았습니다. 이를 응용하여 사용자별로 편집 권한을 설정하거나 다른 공유 기능을 구현할 수 있습니다.

참고 자료