[java] PDF 파일에서 이미지 추출하기(Java Apache PDFBox 사용)

이번에는 Java에서 Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 이미지를 추출하는 방법을 알아보겠습니다.

필요한 라이브러리 추가하기

PDFBox를 사용하기 위해 먼저 Maven 또는 Gradle과 같은 의존성 관리 도구를 사용하여 필요한 라이브러리를 추가합니다. 아래는 Maven을 통해 라이브러리를 추가하는 예시입니다.

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

PDF 파일에서 이미지 추출하기

이제 PDF 파일에서 이미지를 추출하는 간단한 예시 코드를 작성해보겠습니다.

import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;

import java.io.File;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

public class PDFImageExtractor {

    public static void main(String[] args) {
        try {
            File file = new File("path/to/pdf/file.pdf");
            
            PDDocument document = PDDocument.load(file);
            PDFRenderer renderer = new PDFRenderer(document);
            
            for (int pageNumber = 0; pageNumber < document.getNumberOfPages(); pageNumber++) {
                BufferedImage image = renderer.renderImageWithDPI(pageNumber, 300);
                
                String outputFilename = "path/to/save/image/image_" + pageNumber + ".png";
                ImageIO.write(image, "png", new File(outputFilename));
                
                System.out.println("Extracted image: " + outputFilename);
            }
            
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 주어진 PDF 파일에서 각 페이지의 이미지를 추출하고, 각 이미지를 PNG 파일로 저장하는 간단한 예시입니다. path/to/pdf/file.pdf를 추출하고자 하는 PDF 파일의 경로로 변경해주시면 됩니다.

실행 결과 및 확인

위의 코드를 실행하면 PDF 파일의 각 페이지에서 추출한 이미지가 path/to/save/image/ 경로에 순서대로 image_0.png, image_1.png, … 형식으로 저장됩니다. 파일을 확인해보면 PDF 파일의 각 페이지에 대한 이미지를 추출한 것을 확인할 수 있을 것입니다.

참고 자료