[java] Apache PDFBox를 이용한 PDF 파일 암호화
Apache PDFBox는 Java로 PDF 파일을 다룰 수 있는 라이브러리로, 이를 이용해 PDF 파일을 생성, 수정, 읽기, 검증 등이 가능합니다. 이번에는 Apache PDFBox를 사용하여 PDF 파일을 암호화하는 방법에 대해 알아보겠습니다.
Apache PDFBox 설치
Apache PDFBox를 사용하기 위해서는 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml
파일에 아래 의존성을 추가할 수 있습니다.
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
Gradle을 사용한다면 아래와 같이 의존성을 추가할 수 있습니다.
implementation 'org.apache.pdfbox:pdfbox:2.0.24'
의존성을 추가한 후에는 프로젝트를 업데이트하여 라이브러리를 다운로드하고 사용할 수 있습니다.
PDF 파일 암호화
Apache PDFBox를 이용하여 PDF 파일을 암호화하려면 PDDocument
객체를 생성하고 PDDocument
의 protect()
메서드를 사용하여 암호화 처리를 해야 합니다. 아래는 간단한 예제 코드입니다.
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
import java.io.File;
import java.io.IOException;
public class PdfEncryptionExample {
public static void main(String[] args) {
try {
PDDocument document = PDDocument.load(new File("example.pdf"));
AccessPermission ap = new AccessPermission();
StandardProtectionPolicy spp = new StandardProtectionPolicy("userpassword", "ownerpassword", ap);
spp.setEncryptionKeyLength(128);
spp.setPermissions(ap);
PDDocumentCatalog pdDocumentCatalog = document.getDocumentCatalog();
pdDocumentCatalog.setEncryptionDictionary(spp);
document.protect(spp);
document.save("example-encrypted.pdf");
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
위 코드는 example.pdf
파일을 불러와서 userpassword
와 ownerpassword
로 암호화한 다음 example-encrypted.pdf
로 저장하는 예제입니다.
이렇게 하면 Apache PDFBox를 사용하여 PDF 파일을 간단히 암호화할 수 있습니다.
참고 자료
- Apache PDFBox 공식 문서: https://pdfbox.apache.org/
- Apache PDFBox GitHub: https://github.com/apache/pdfbox