GroupDocs.Parser for Java를 사용하여 PDF에서 여러 키워드 검색

PDF 문서에서 특정 텍스트를 찾기 위해 검색하는 것은 특히 대용량 파일이나 페이지가 많은 경우 어려울 수 있습니다. PDF에서 여러 키워드를 검색해야 하는 경우 파일을 빠르고 안정적으로 검색하려면 GroupDocs.Parser for Java 라이브러리가 깔끔하고 고성능 솔루션을 제공합니다. 이 튜토리얼에서는 라이브러리 설정, 페이지 번호별 검색, 지원되지 않는 형식 처리 방법을 단계별로 안내하며, 프로젝트에 복사해 사용할 수 있는 실제 예제를 제공합니다.

빠른 답변

  • PDF에서 여러 키워드 검색을 도와주는 라이브러리는 무엇인가요? GroupDocs.Parser for Java.
  • 결과를 특정 페이지 번호로 제한할 수 있나요? Yes, using SearchOptions you can retrieve the page index for each match.
  • 개발에 라이선스가 필요합니까? A free trial works for testing; a paid license is required for production.
  • 정규식이 지원되나요? Absolutely – enable it in SearchOptions.
  • 필요한 Java 버전은 무엇인가요? Java 8 or higher with Maven or Gradle build tools.

“PDF에서 여러 키워드 검색”이란 무엇인가요?

대용량 PDF에서 “invoice”, “due date”, “total”과 같은 여러 용어를 찾아야 할 때, 각 히트에 대한 페이지 번호를 반환하는 단일 패스 검색은 시간과 코드 복잡성을 줄여줍니다. GroupDocs.Parser는 저수준 PDF 파싱을 추상화하여 이러한 다중 키워드 쿼리를 수행할 수 있는 간단한 API를 제공합니다.

왜 GroupDocs.Parser for Java를 사용해야 하나요?

  • Accurate text extraction even from scanned or complex PDFs.
  • Built‑in page indexing so you know exactly where each keyword appears.
  • Exception handling for unsupported formats, encrypted files, and memory‑intensive documents.
  • Zero‑dependency Maven integration for fast project setup.

전제 조건

  • Java 8+ and a Maven‑compatible IDE (IntelliJ IDEA, Eclipse, etc.).
  • GroupDocs.Parser for Java (version 25.5 or later).
  • Java 예외 처리 및 파일 I/O에 대한 기본 지식.

GroupDocs.Parser for Java 설정

라이브러리를 Maven을 통해 추가하거나 직접 다운로드할 수 있습니다.

Maven 사용

다음과 같이 pom.xml 파일에 저장소와 의존성을 추가합니다:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/parser/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-parser</artifactId>
        <version>25.5</version>
    </dependency>
</dependencies>

직접 다운로드

또는 최신 버전을 GroupDocs.Parser for Java releases에서 다운로드하십시오.
License Acquisition: 무료 체험으로 시작하거나 임시 라이선스를 요청하여 GroupDocs.Parser를 테스트하십시오. 장기 사용을 위해서는 라이선스 구매를 고려하세요.

기본 초기화 및 설정

라이브러리를 사용할 수 있게 되면 초기화는 간단합니다:

import com.groupdocs.parser.Parser;

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
try (Parser parser = new Parser(filePath)) {
    // Your parsing logic here
} catch (Exception e) {
    System.err.println("An error occurred: " + e.getMessage());
}

구현 가이드

구현을 두 가지 실용적인 기능으로 나눕니다:

  1. Search multiple keywords in PDF and retrieve page numbers – ideal for “search pdf by page number”.
  2. Graceful error handling for unsupported document formats.

기능 1: PDF에서 여러 키워드 검색 및 페이지 인덱스 가져오기

개요

GroupDocs.Parser의 search 메서드와 SearchOptions를 결합하면 원하는 용어(또는 정규식 패턴)를 찾아 문자 위치와 페이지 인덱스를 모두 반환합니다.

단계별

Step 1 – 필요한 클래스 가져오기

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.SearchResult;
import com.groupdocs.parser.options.SearchOptions;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

Step 2 – 파서를 초기화하고 SearchOptions를 구성합니다

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf"; // Replace with actual document path

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }

    // false = case‑insensitive, false = not whole‑word, false = regex disabled, true = return page index
    SearchOptions options = new SearchOptions(false, false, false, true);
    Iterable<SearchResult> results = parser.search("invoice|due date|total", options);
    
    for (SearchResult result : results) {
        System.out.println(String.format("Found at position %d on page %d: %s", 
                                         result.getPosition(), 
                                         result.getPageIndex() + 1, // pages are zero‑based
                                         result.getText()));
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

핵심 매개변수 설명

  • filePath: 검색하려는 PDF의 경로.
  • SearchOptions(false, false, false, true):
    • Case‑sensitivefalse는 검색을 대소문자 구분 없이 수행합니다.
    • Whole‑wordfalse는 부분 일치를 허용합니다.
    • Regexfalse는 정규식 파싱을 비활성화합니다; 정규식이 필요하면 true로 설정하십시오.
    • Return page indextrue는 각 SearchResult에 페이지 번호가 포함되도록 합니다.

Tip: 검색 문자열 "invoice|due date|total"은 파이프(|) 연산자를 사용하여 단일 호출로 여러 키워드를 검색합니다.

문제 해결

  • Empty results: PDF에 실제로 선택 가능한 텍스트가 있는지 확인하십시오(이미지만 있는 경우 아님).
  • Incorrect page numbers: getPageIndex()는 0부터 시작한다는 점을 기억하고, 사람에게 읽히는 번호로 만들려면 +1을 추가하십시오.

기능 2: 지원되지 않는 문서 형식에 대한 오류 처리

개요

모든 파일이 텍스트 파싱이 가능한 것은 아닙니다(예: 일부 암호화된 PDF 또는 이미지 전용 PDF). UnsupportedDocumentFormatException을 잡으면 애플리케이션이 우아하게 실패하도록 할 수 있습니다.

구현

Step 1 – 파서 생성 코드를 try‑catch 블록으로 감싸기

try (Parser parser = new Parser(filePath)) {
    if (!parser.getFeatures().isText()) {
        throw new UnsupportedDocumentFormatException("Text extraction isn't supported.");
    }
} catch (UnsupportedDocumentFormatException e) {
    System.err.println(e.getMessage());
}

이것이 중요한 이유
지원되지 않는 형식을 조기에 감지함으로써 사용자에게 알리거나 로그를 남기거나 OCR 솔루션으로 대체할 수 있어 전체 프로세스가 중단되는 것을 방지합니다.

실제 적용 사례

다음은 PDF에서 여러 키워드 검색이 유용한 세 가지 일반적인 시나리오입니다:

  1. Legal Document Review – 수백 페이지에 걸쳐 “force majeure”, “termination”, “confidentiality”와 같은 조항을 찾습니다.
  2. Invoice Processing – 자동 회계를 위해 “invoice number”, “due date”, “total amount”를 한 번에 추출합니다.
  3. Academic Research – 연구 논문을 스캔하여 “machine learning”, “deep learning”, “neural network”와 같은 여러 용어 변형을 찾습니다.

성능 고려 사항

  • Parse only needed pages: 필요한 섹션을 알고 있다면 검색 범위를 제한하여 메모리 사용량을 줄이세요.
  • Use try‑with‑resources (위와 같이) 파서를 즉시 닫아 메모리 누수를 방지합니다.
  • Avoid loading the entire PDF into memory: 매우 큰 파일을 다룰 때 전체 PDF를 메모리에 로드하지 말고 가능한 경우 청크 단위로 처리하십시오.

결론

이제 PDF에서 여러 키워드 검색 문서를 위한 완전하고 프로덕션 준비된 접근 방식을 갖추었으며, 정확한 페이지 번호를 가져오고 GroupDocs.Parser for Java를 사용하여 지원되지 않는 형식을 우아하게 처리할 수 있습니다. 이러한 코드를 배치 처리, 웹 서비스 또는 데스크톱 유틸리티와 같은 더 큰 워크플로에 통합하여 대규모 문서 분석을 자동화하십시오.

다음 단계

  • regex 패턴을 실험하여 더 복잡한 검색을 시도하십시오.
  • 검색 결과를 PDF 작성기(예: GroupDocs.Conversion)와 결합하여 매치를 강조 표시하십시오.
  • PDF 폴더를 순회하며 결과를 데이터베이스에 저장하는 배치 처리를 탐색하십시오.

자주 묻는 질문

Q: 한 번에 여러 키워드를 검색할 수 있나요?
A: 예. 파이프 구분 문자열(예: "invoice|due date|total")을 사용하거나 SearchOptions에서 정규식을 활성화하십시오.

Q: 문서가 암호화된 경우?
A: Parser를 생성할 때 비밀번호를 제공하십시오. 비밀번호가 없으면 라이브러리가 예외를 발생시키며 이를 잡을 수 있습니다.

Q: 매우 큰 PDF 파일을 효율적으로 처리하려면?
A: 파일을 페이지별로 처리하거나 SearchOptions를 사용해 특정 페이지 범위로 범위를 제한하십시오.

Q: GroupDocs.Parser가 모든 PDF 버전과 호환되나요?
A: 대부분의 PDF 표준(1.4‑1.7, PDF/A, PDF/X)을 지원합니다. 항상 특정 파일로 테스트하십시오.

Q: 문서 배치 처리에 사용할 수 있나요?
A: 물론 가능합니다. 디렉터리를 순회하면서 동일한 검색 로직을 적용하고 각 파일의 결과를 저장하십시오.

리소스


마지막 업데이트: 2026-04-21
테스트 환경: GroupDocs.Parser for Java 25.5
작성자: GroupDocs

{< /blocks/products/pf/tutorial-page-section >} {< /blocks/products/pf/main-container >} {< /blocks/products/pf/main-wrap-class >} {< blocks/products/products-backtop-button >}