Apache Tika는 다양한 형식의 문서를 추출하고 해석하는 자바 라이브러리입니다. 이 라이브러리를 사용하면 PDF 파일에서 텍스트를 추출하거나 메타데이터를 얻을 수 있습니다. 여기에서는 Apache Tika를 사용하여 자바로 PDF 파일을 처리하는 방법을 알아보겠습니다.
Apache Tika 라이브러리 추가
먼저 Apache Tika를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml
파일에 다음 종속성을 추가합니다.
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.27</version> <!-- 현재 버전을 지정합니다. -->
</dependency>
Gradle을 사용하는 경우, build.gradle
파일에 다음 의존성을 추가합니다.
implementation 'org.apache.tika:tika-core:1.27' // 현재 버전을 지정합니다.
PDF 파일에서 텍스트 추출하기
이제 Apache Tika를 사용하여 PDF 파일에서 텍스트를 추출해 보겠습니다. 아래는 간단한 예제 코드입니다.
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class PDFProcessor {
public static void main(String[] args) throws IOException, TikaException, SAXException {
File file = new File("example.pdf");
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
try (InputStream stream = new FileInputStream(file)) {
parser.parse(stream, handler, metadata, new ParseContext());
System.out.println("텍스트: " + handler.toString());
}
}
}
위 코드에서는 Apache Tika의 AutoDetectParser
를 사용하여 PDF 파일을 파싱하고, BodyContentHandler
를 통해 텍스트를 추출한 후 출력합니다.
이렇게 하면 Apache Tika를 사용하여 PDF 파일에서 텍스트를 추출할 수 있습니다.
메타데이터 얻기
PDF 파일의 메타데이터를 얻으려면 Metadata
객체를 사용하면 됩니다. 아래 예제 코드는 메타데이터를 출력하는 방법을 보여줍니다.
// PDFProcessor 클래스의 main 메소드에서 다음 코드를 추가합니다.
for (String key : metadata.names()) {
System.out.println(key + ": " + metadata.get(key));
}
위 코드를 추가하면 모든 메타데이터 키와 값을 출력할 수 있습니다.
Apache Tika를 사용하면 PDF 파일에서 텍스트를 추출하고 메타데이터를 얻을 수 있습니다. 이를 통해 PDF 파일을 자바 애플리케이션에서 유용하게 활용할 수 있습니다.
더 많은 정보나 사용 예제는 Apache Tika 공식 웹사이트에서 확인할 수 있습니다.
추가 자료
Apache Tika는 Apache License 2.0에 따라 배포됩니다.