[java] PDF 파일에서 특정 텍스트 영역 추출하기(Java Apache PDFBox 사용)

이번에는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 특정 텍스트 영역을 추출하는 방법에 대해 알아보겠습니다. PDF 파일에는 다양한 텍스트가 포함되어 있을 수 있으며, 이를 Java 프로그램으로 추출해서 활용할 수 있습니다.

1. PDFBox 라이브러리 추가하기

먼저, Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하여 PDFBox를 사용할 수 있습니다:

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

그리고 Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    implementation 'org.apache.pdfbox:pdfbox:2.0.23'
}

의존성을 추가한 후에는 라이브러리를 사용할 수 있습니다.

2. PDF 파일에서 특정 텍스트 영역 추출하기

아래의 예제 코드는 PDF 파일에서 특정 텍스트 영역을 추출하는 방법을 보여줍니다. 예제에서는 “Hello, World!”라는 텍스트를 추출하는데, 해당 텍스트가 있는 영역의 좌표를 사용합니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripperByArea;
import org.apache.pdfbox.text.TextPosition;

import java.awt.*;
import java.io.File;
import java.io.IOException;

public class PDFTextExtraction {
    public static void main(String[] args) {
        try (PDDocument document = PDDocument.load(new File("input.pdf"))) {
            PDFTextStripperByArea stripper = new PDFTextStripperByArea();
            stripper.setSortByPosition(true);

            // "Hello, World!" 텍스트가 있는 영역의 좌표 설정
            Rectangle rect = new Rectangle(100, 100, 200, 50);
            stripper.addRegion("hello", rect);

            stripper.extractRegions(document.getPage(0));

            String extractedText = stripper.getTextForRegion("hello");
            System.out.println(extractedText);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 PDDocument를 사용하여 PDF 파일을 로드하고, PDFTextStripperByArea를 사용하여 특정 영역의 텍스트를 추출합니다. 영역은 Rectangle을 사용하여 좌표를 지정할 수 있습니다.

예제 코드에서는 Rectangle(100, 100, 200, 50)으로 “Hello, World!” 텍스트가 있는 영역의 좌표를 설정하였습니다. 추출한 텍스트는 stripper.getTextForRegion("hello")를 통해 얻을 수 있습니다.

3. 결론

Java Apache PDFBox를 사용하면 PDF 파일에서 특정 텍스트 영역을 추출할 수 있습니다. 위의 예제 코드를 참고하여 원하는 텍스트 영역을 추출하고 활용해 보세요.

더 자세한 정보를 원하시면 Apache PDFBox 공식 문서를 참조하시기 바랍니다.