[java] PDF 파일에 암호 설정하기(Java Apache PDFBox 사용)

PDF 파일에 암호를 설정하는 것은 중요한 보안 요소입니다. Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에 암호를 설정하는 방법을 알아보겠습니다.

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

먼저, Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면, pom.xml 파일에 다음 의존성을 추가해주세요:

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.22</version>
</dependency>

2. PDF 파일에 암호 설정하기

PDF 파일에 암호를 설정하기 위해 PDDocument 클래스를 사용합니다. 다음은 PDF 파일에 암호를 설정하는 예제 코드입니다:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;

public class EncryptPDF {

    public static void main(String[] args) {
        try {
            PDDocument document = PDDocument.load(new File("input.pdf"));
            
            // 암호 설정을 위한 AccessPermission 객체 생성
            AccessPermission permission = new AccessPermission();
            permission.setCanPrint(false); // 인쇄 불가
            permission.setCanExtractContent(false); // 내용 추출 불가
            
            // 암호화 정책 설정
            StandardProtectionPolicy protectionPolicy = new StandardProtectionPolicy("password", "", permission);
            
            // 암호 설정 적용
            document.protect(protectionPolicy);
            
            // 출력 파일로 저장
            document.save("output.pdf");
            
            // 메모리에서 문서 닫기
            document.close();
            
            System.out.println("PDF 파일에 암호가 설정되었습니다.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

위의 예제 코드에서는 input.pdf 파일을 로드한 후, AccessPermission 객체를 사용하여 암호 설정을 정의합니다. StandardProtectionPolicy 객체를 생성하여 암호화 정책을 설정하고, document.protect() 메서드로 암호를 설정합니다. 마지막으로 document.save() 메서드로 암호가 설정된 PDF 파일을 저장합니다.

암호 설정은 다음과 같은 옵션을 설정할 수 있습니다:

위의 예제 코드에서는 암호로 “password”를 사용하도록 설정되어 있습니다.

결론

Java Apache PDFBox 라이브러리를 사용하면 간단하게 PDF 파일에 암호를 설정할 수 있습니다. PDF 보안을 강화하기 위해 암호 설정 기능을 사용하여 중요한 문서를 보호할 수 있습니다.

참고 자료