[java] Apache PDFBox를 이용한 이미지 추출

Apache PDFBox는 PDF 문서를 처리하고 조작하는 Java 라이브러리입니다. PDF 문서 안에 포함된 이미지를 추출하는 방법을 알아보겠습니다.

필요한 라이브러리 추가

PDFBox를 사용하기 위해 먼저 Maven이나 Gradle을 이용하여 프로젝트에 아래와 같이 종속성을 추가합니다.

<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 문서 안의 이미지를 추출하기 위해서는 PDFRendererPDFMergerUtility 클래스를 사용합니다. 아래의 코드는 PDF 문서에서 이미지를 추출하는 간단한 예제입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class ImageExtractor {
    public static void main(String[] args) throws IOException {
        File file = new File("path/to/pdf/document.pdf");
        PDDocument document = PDDocument.load(file);
        PDFRenderer renderer = new PDFRenderer(document);
        for (int page = 0; page < document.getNumberOfPages(); ++page) {
            BufferedImage image = renderer.renderImageWithDPI(page, 300);
            ImageIO.write(image, "PNG", new File("output/image" + page + ".png"));
        }
        document.close();
    }
}

위 코드는 PDF 문서에서 페이지별로 이미지를 추출하여 PNG 형식으로 저장하는 코드입니다.

이제 Apache PDFBox를 사용하여 PDF 문서 내에서 이미지를 추출할 수 있는 방법을 알게 되었습니다.이미지 추출에 성공하여 추가적으로 필요한 작업을 할 수 있습니다.

자세한 내용과 API에 대한 자료는 PDFBox 공식 웹사이트에서 확인할 수 있습니다.

참고 자료