[java] PDF 파일에서 이미지를 특정 영역으로 사이즈 조정하기(Java Apache PDFBox 사용)

이미지를 PDF 파일에서 특정 영역으로 사이즈를 조정하는 작업은 종종 필요할 수 있습니다. 이 문제를 해결하기 위해 Java에서 Apache PDFBox 라이브러리를 사용하여 이미지를 추출하고 사이즈를 조정하는 방법에 대해 알아보겠습니다.

Apache PDFBox 라이브러리 추가하기

먼저, Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하세요:

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

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가하세요:

implementation 'org.apache.pdfbox:pdfbox:2.0.27'

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

이미지를 추출하기 위해 PDFImageWriter 클래스를 사용합니다. 다음 코드는 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 ImageExtractor {

    public static void main(String[] args) {
        try {
            PDDocument document = PDDocument.load(new File("input.pdf"));
            PDFRenderer pdfRenderer = new PDFRenderer(document);
            for (int page = 0; page < document.getNumberOfPages(); ++page) {
                BufferedImage image = pdfRenderer.renderImageWithDPI(page, 300);
                ImageIO.write(image, "PNG", new File("output.png"));
            }
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 input.pdf는 추출할 이미지가 있는 PDF 파일의 경로입니다. 이미지는 300 DPI(Dots Per Inch)로 추출되며, output.png라는 파일로 저장됩니다.

이미지 사이즈 조정하기

이미지 사이즈를 조정하기 위해서는 ImageIO 클래스와 BufferedImage 클래스의 메서드를 사용합니다. 다음 코드는 이미지를 원하는 크기로 조정하는 예제입니다:

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

public class ImageResizer {

    public static void main(String[] args) {
        try {
            BufferedImage originalImage = ImageIO.read(new File("input.png"));
    
            int newWidth = 500;
            int newHeight = 500;
    
            BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType());
            Graphics2D graphics2D = resizedImage.createGraphics();
            graphics2D.drawImage(originalImage, 0, 0, newWidth, newHeight, null);
            graphics2D.dispose();
    
            ImageIO.write(resizedImage, "PNG", new File("output.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 input.png는 조정할 이미지 파일의 경로입니다. newWidthnewHeight 변수를 사용하여 원하는 사이즈로 이미지를 조정할 수 있습니다. 조정된 이미지는 output.png라는 파일로 저장됩니다.

결론

이 문서에서는 Java에서 Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 이미지를 추출하고 사이즈를 조정하는 방법에 대해 알아보았습니다. 이를 통해 PDF 파일에서 원하는 이미지를 추출하고, 필요한 사이즈로 조정할 수 있습니다.