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

PDF 파일은 다양한 정보를 담고 있는 형식으로 많이 사용되고 있습니다. 때로는 PDF 파일에서 특정 이미지 영역만을 추출해야 할 때가 있습니다. 이번 블로그 포스트에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 특정 이미지 영역을 추출하는 방법을 알아보겠습니다.

Apache PDFBox 라이브러리 추가하기

PDF 파일을 다루기 위해 먼저 Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.24</version>
    </dependency>
</dependencies>

Maven을 사용하지 않는다면, Apache PDFBox에서 직접 라이브러리를 다운로드하여 프로젝트에 추가합니다.

특정 이미지 영역 추출하기

이제 PDF 파일에서 특정 이미지 영역을 추출하는 방법을 알아보겠습니다. 다음은 예제 코드입니다.

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

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PdfImageExtractor {
    public static void main(String[] args) {
        String pdfFilePath = "path/to/pdf/file.pdf";
        int pageIndex = 0;
        int x = 100;
        int y = 200;
        int width = 300;
        int height = 400;
        String outputImageFile = "path/to/output/image.png";

        try (PDDocument document = PDDocument.load(new File(pdfFilePath))) {
            PDFRenderer renderer = new PDFRenderer(document);
            BufferedImage image = renderer.renderImage(pageIndex);

            BufferedImage croppedImage = image.getSubimage(x, y, width, height);
            ImageIO.write(croppedImage, "png", new File(outputImageFile));

            System.out.println("Image extracted successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

변수 pdfFilePath는 추출할 이미지가 있는 PDF 파일의 경로를 지정합니다. pageIndex는 이미지가 포함된 페이지의 인덱스이며, 0부터 시작합니다. x, y, width, height는 추출할 이미지 영역을 지정합니다. 마지막으로 outputImageFile은 추출된 이미지를 저장할 파일의 경로를 지정합니다.

예제 코드를 실행하면, 지정한 영역의 이미지가 추출되어 outputImageFile에 저장됩니다. 성공적으로 이미지가 추출되었다면 “Image extracted successfully!”가 출력됩니다.

결론

이번 포스트에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 특정 이미지 영역을 추출하는 방법을 알아보았습니다. PDF 파일에서 이미지를 추출하는 경우에는 Apache PDFBox는 간단하고 효과적인 도구입니다. 추가적인 기능 및 자세한 사용법은 Apache PDFBox 문서를 참조하시기 바랍니다.

참고 자료