이번에는 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 공식 문서를 참조하시기 바랍니다.