Java를 사용하여 PDF에서 단어 검색

Word 또는 PDF 문서에서 특정 텍스트를 검색해야 할 수도 있습니다. Java 개발자는 프로그래밍 방식으로 PDF 문서의 모든 텍스트를 검색할 수 있습니다. 이 기사에서는 Java를 사용하여 PDF 문서에서 단어를 검색하는 방법을 배웁니다.

이 문서에서는 다음 주제를 논의/다룹니다.

텍스트 검색을 위한 Java API

PDF 문서에서 검색하기 위해 GroupDocs.Search for Java API를 사용할 것입니다. PDF, Word, Excel, PowerPoint 등과 같이 널리 사용되는 모든 문서 형식에서 텍스트 검색 작업을 수행할 수 있습니다. 이 API를 사용하여 파일, 문서, 이메일 및 아카이브에서 필요한 정보를 쉽게 가져올 수 있습니다. 또한 여러 인덱스를 만들고 병합할 수 있습니다. 단순, 부울, 정규식(Regex), 퍼지 및 기타 유형의 쿼리를 사용하여 인덱스를 빠르고 스마트하게 검색할 수 있습니다.

다운로드 및 구성

API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하여 아래에 언급된 코드 예제를 시도할 수 있습니다.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>20.11</version> 
</dependency>

Java를 사용하여 PDF에서 텍스트 검색

아래에 언급된 간단한 단계에 따라 PDF 문서의 텍스트 또는 특정 단어를 쉽게 검색할 수 있습니다.

  • 색인 생성
  • 인덱스 폴더의 경로 지정
  • 인덱스 이벤트 구독
  • add 메서드를 호출하여 인덱스에 파일 추가
  • search 메서드를 사용하여 검색 수행
  • SearchResult 사용 및 요약 인쇄
  • highlight 메서드를 사용하여 출력에서 검색된 결과를 강조 표시합니다.

다음 코드 샘플은 Java를 사용하여 PDF 문서에서 단어를 검색하는 방법을 보여줍니다.

String indexFolder = "C:\\Index\\"; // Specify the path to the index folder
String documentsFolder = "C:\\Files\\"; // Specify the path to a folder containing documents to search

// 새 색인을 생성하거나
// 기존 인덱스 열기
Index index = new Index(indexFolder);

// 인덱스 이벤트 구독
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
    public void invoke(Object sender, IndexErrorEventArgs args) {
        System.out.println(args.getMessage()); // Writing error messages to the console
    }
});

// 동기식으로 파일 추가
index.add(documentsFolder); // Synchronous indexing documents from the specified folder

// 검색 수행
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

// 검색 결과 사용
// 결과 인쇄
System.out.println("Documents found: " + result.getDocumentCount());
System.out.println("Total occurrences found: " + result.getOccurrenceCount());
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
}

// 텍스트에서 어커런스 강조 표시
if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0); // Getting the first found document
    String path = "C:\\Output\\Highlighted.html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); // Creating the output adapter to a file
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the HtmlHighlighter object
    index.highlight(document, highlighter); // Generating output HTML formatted document with highlighted search results

    System.out.println();
    System.out.println("Generated HTML file can be opened with Internet browser.");
    System.out.println("The file can be found by the following path:");
    System.out.println(Paths.get(path).toAbsolutePath().toString());
}

위의 코드 샘플은 다음 출력을 생성합니다.

Documents found: 1
Total occurrences found: 6
	Document: C:\Files\Lorem ipsum.pdf
	Occurrences: 6

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Output\Highlighted.html
Java를 사용하여 PDF 문서에서 단어 검색

Java를 사용하여 PDF 문서에서 단어 검색

인덱스 및 인덱스 이벤트

Index 클래스는 문서를 인덱싱하고 검색하는 기본 클래스입니다. 인덱스는 이 클래스의 생성자를 호출하여 메모리나 디스크에 만들 수 있습니다. 다시 사용할 수 있도록 디스크에 만들었습니다.

인덱싱 오류에 대한 정보를 받기 위해 ErrorOccurred 이벤트에 가입했습니다. 파일을 인덱싱하는 동안 오류가 발생하면 오류가 표시됩니다.

색인에 파일 추가

Index 클래스의 add 메서드는 파일 또는 폴더 또는 하위 폴더의 모든 파일을 절대 또는 상대 경로로 추가합니다. 지정된 경로의 모든 문서가 인덱싱됩니다.

검색 작업 수행

Index 클래스는 검색 작업을 수행하기 위한 다양한 search 메서드를 제공합니다. 간단한 키워드로 검색하거나 SearchQuery를 정의하여 검색할 수 있습니다.

SearchResult 클래스는 검색어와 일치하는 검색 결과의 세부 정보를 제공합니다. 여기에는 몇 가지 방법이 설명되어 있습니다.

검색 결과 강조 표시

HtmlHighlighter 클래스는 HTML 형식의 전체 문서 텍스트에서 검색 결과를 쉽게 강조 표시합니다.

Index 클래스의 highlight 메소드는 발견된 용어의 발생을 강조하는 HTML 출력을 생성합니다. 문서에서 “검색 결과 강조 표시“에 대한 자세한 내용을 찾을 수 있습니다.

무료 라이선스 받기

무료 임시 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.

결론

이 기사에서는 Java를 사용하여 PDF 문서에서 단어를 검색하는 방법을 배웠습니다. 문서를 사용하여 GroupDocs.Search for Java API에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼에서 언제든지 문의해 주십시오.

또한보십시오