[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 라이브러리의 강력한 기능을 활용하여 더 다양한 작업을 수행할 수 있습니다.

위 내용은 아래의 참고 문헌을 통해 확인할 수 있습니다.