[java] Apache PDFBox로 PDF 파일의 메타데이터 읽기

PDF 파일은 많은 정보를 담고 있는데, 그 중에는 메타데이터라고 불리는 파일 정보도 포함되어 있습니다. 이 게시물에서는 Apache PDFBox 라이브러리를 사용하여 Java에서 PDF 파일의 메타데이터를 읽는 방법을 알아보겠습니다.

1. Apache PDFBox 라이브러리 추가

먼저, Maven 프로젝트를 사용하는 경우 pom.xml 파일에 다음 종속성을 추가해야 합니다.

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

Gradle 프로젝트를 사용하는 경우, build.gradle 파일에 다음 종속성을 추가해야 합니다.

implementation 'org.apache.pdfbox:pdfbox:2.0.26'

2. PDF 파일의 메타데이터 읽기

Apache PDFBox를 사용하여 PDF 파일의 메타데이터를 읽으려면 다음 단계를 따르세요.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;

import java.io.File;
import java.io.IOException;

public class ReadPDFMetadata {
    public static void main(String[] args) {
        File pdfFile = new File("path/to/pdf/file.pdf");

        try {
            PDDocument document = PDDocument.load(pdfFile);
            PDDocumentInformation info = document.getDocumentInformation();
            
            System.out.println("Title: " + info.getTitle());
            System.out.println("Author: " + info.getAuthor());
            System.out.println("Subject: " + info.getSubject());
            System.out.println("Keywords: " + info.getKeywords());
            System.out.println("Producer: " + info.getProducer());
            System.out.println("Creator: " + info.getCreator());
            System.out.println("Creation Date: " + info.getCreationDate());
            System.out.println("Modification Date: " + info.getModificationDate());
            
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서 path/to/pdf/file.pdf 부분을 읽고자 하는 PDF 파일의 경로로 변경해야 합니다.

3. 코드 실행 및 결과 확인

위의 코드를 실행하면 해당 PDF 파일의 메타데이터가 콘솔에 출력됩니다. 예를 들어, 다음과 같은 결과를 얻을 수 있습니다.

Title: Sample PDF Document
Author: John Doe
Subject: A sample PDF document
Keywords: PDF, sample, example
Producer: Apache PDFBox
Creator: Microsoft Word
Creation Date: Tue Mar 10 15:41:31 KST 2022
Modification Date: Fri Apr 01 09:22:15 KST 2022

참고 자료