[java] Apache Tika PDF 이미지 추출
Apache Tika는 텍스트, 메타데이터 및 다양한 형식의 파일에서 컨텐츠를 추출하는 오픈 소스 라이브러리입니다. 여기서는 Apache Tika를 사용하여 PDF 파일에서 이미지를 추출하는 방법에 대해 알아보겠습니다.
Apache Tika 및 PDFBox 라이브러리 추가
먼저 Maven을 사용하여 Apache Tika 및 PDFBox 라이브러리를 프로젝트에 추가해야 합니다. 아래는 Maven 종속성을 추가하는 예시입니다.
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.27</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
PDF 파일에서 이미지 추출하기
이제 Apache Tika를 사용하여 PDF 파일에서 이미지를 추출해 보겠습니다. 아래는 간단한 Java 코드 예시입니다.
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.Parser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.pdmodel.PDPage;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.File;
import java.io.FileOutputStream;
public class PdfImageExtractor {
public static void main(String[] args) throws Exception {
String pdfFilePath = "example.pdf";
try (InputStream is = new FileInputStream(pdfFilePath)) {
Parser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
ParseContext parseContext = new ParseContext();
parser.parse(is, new BodyContentHandler(), metadata, parseContext);
PDDocument document = PDDocument.load(new File(pdfFilePath));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page) {
FileOutputStream imageOutputStream = new FileOutputStream("page_" + (page + 1) + ".png");
pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB).writeTo(imageOutputStream);
imageOutputStream.close();
}
document.close();
}
}
}
위 코드는 Apache Tika 및 PDFBox를 사용하여 PDF 파일에서 이미지를 추출하는 Java 예시입니다. 이 코드를 실행하면 각 페이지의 이미지가 별도의 PNG 파일로 저장됩니다.
결론
Apache Tika를 사용하여 PDF 파일에서 이미지를 추출하는 방법에 대해 알아보았습니다. 이를 활용하면 PDF 파일로부터 이미지를 손쉽게 추출할 수 있습니다. Apache Tika 및 PDFBox 라이브러리의 강력한 기능을 활용하여 더 다양한 작업을 수행할 수 있습니다.
위 내용은 아래의 참고 문헌을 통해 확인할 수 있습니다.
- Apache Tika 문서: https://tika.apache.org/1.27/
- PDFBox 문서: https://pdfbox.apache.org/2.0/