Adobe Acrobat Reader를 사용하여 PDF 파일을 열어야 하는 경우가 있습니다. PDF 파일 내용을 다른 용도로 사용하기 위해 이미지로 변환해야 할 때도 있습니다. 이를 위해 Apache PDFBox 라이브러리를 사용하여 PDF 파일을 이미지로 변환하는 방법을 알아보겠습니다.
Apache PDFBox란?
Apache PDFBox는 Java로 작성된 오픈 소스 라이브러리로, PDF 파일을 생성, 조작 및 추출할 수 있는 기능을 제공합니다. Apache PDFBox는 Apache License 2.0으로 배포되기 때문에 상업적 및 비상업적 용도로 자유롭게 사용할 수 있습니다.
PDF 파일을 이미지로 변환하기 위한 Apache PDFBox 설정
Apache PDFBox를 사용하기 위해 프로젝트에 라이브러리를 추가해야 합니다. Maven 프로젝트의 경우, pom.xml
파일에 다음 종속성을 추가합니다.
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
</dependencies>
Gradle 프로젝트의 경우, build.gradle
파일에 다음 의존성을 추가합니다.
dependencies {
implementation 'org.apache.pdfbox:pdfbox:2.0.24'
}
PDF 파일을 이미지로 변환하는 Java 코드
이제 Apache PDFBox를 사용하여 PDF 파일을 이미지로 변환할 수 있는 Java 코드를 작성해보겠습니다. 다음은 예시 코드입니다.
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 PdfToImageConverter {
public static void convertToImages(String pdfFilePath, String outputFolder) {
try {
// PDF 파일을 PDDocument로 열기
PDDocument document = PDDocument.load(new File(pdfFilePath));
// PDF 파일을 이미지로 변환하기 위한 PDFRenderer 생성
PDFRenderer renderer = new PDFRenderer(document);
// PDF 페이지 수 만큼 반복하여 이미지로 변환
for (int pageNumber = 0; pageNumber < document.getNumberOfPages(); pageNumber++) {
// PDF 페이지를 BufferedImage로 렌더링
BufferedImage image = renderer.renderImageWithDPI(pageNumber, 300);
// 이미지를 파일로 저장
String imageFileName = pageNumber + ".png";
ImageIO.write(image, "PNG", new File(outputFolder, imageFileName));
}
// PDDocument 닫기
document.close();
System.out.println("PDF 파일을 이미지로 변환 완료");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String pdfFilePath = "input.pdf";
String outputFolder = "output";
convertToImages(pdfFilePath, outputFolder);
}
}
위의 코드는 PdfToImageConverter
클래스를 정의하고, convertToImages
메소드를 사용하여 PDF 파일을 이미지로 변환합니다. 변환할 PDF 파일의 경로와 이미지 파일을 저장할 폴더 경로를 인수로 전달합니다. main
메소드에서는 예시로 input.pdf
를 변환하여 output
폴더에 저장하도록 설정되어 있습니다.
실행 결과
위 코드를 실행하면, 지정한 폴더에 각 PDF 페이지에 해당하는 이미지 파일이 생성됩니다. 각 이미지 파일은 페이지 번호로 된 이름을 가지고 있습니다.
Apache PDFBox 라이브러리를 사용하여 PDF 파일을 이미지로 변환하는 방법을 알아보았습니다. 이를 통해 원하는 용도에 맞게 PDF 파일을 이미지로 변환할 수 있습니다.