C#을 사용하여 PDF에서 단어 검색

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

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

텍스트 검색을 위한 C# API

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

API의 DLL을 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.

Install-Package GroupDocs.Search

C#을 사용하여 PDF 문서에서 텍스트 검색

아래에 언급된 간단한 단계에 따라 프로그래밍 방식으로 PDF 문서의 텍스트 또는 특정 단어를 검색할 수 있습니다.

  • Index 클래스의 인스턴스 생성
  • 인덱스 폴더의 경로 지정
  • 인덱스 이벤트 구독
  • Add() 메서드를 호출하여 색인에 PDF 파일 추가
  • 검색어 정의
  • 검색 쿼리와 함께 Search() 메서드를 사용하여 검색 수행
  • SearchResult 사용 및 요약 인쇄
  • Highlight() 메서드를 사용하여 출력에서 검색된 결과를 강조 표시합니다.

다음 코드 샘플은 C#을 사용하여 PDF 문서에서 텍스트를 검색하는 방법을 보여줍니다.

// 인덱스 폴더의 경로 지정
string indexFolder = @"C:\Files\Index\";

// 검색할 PDF 문서가 포함된 폴더의 경로 지정
string documentsFolder = @"C:\Files\Files\"; 

// 인덱스 생성 또는 로드
Index index = new Index(indexFolder);

// 인덱스 이벤트 구독
index.Events.ErrorOccurred += (sender, args) =>
{
    // 콘솔에 오류 메시지 쓰기
    Console.WriteLine(args.Message);
};

// 동기식으로 파일 추가
// 지정된 폴더에서 동기식 인덱싱 문서
index.Add(documentsFolder); 

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

// 검색 결과 사용
// 결과 인쇄
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}

// 텍스트에서 어커런스 강조 표시
if (result.DocumentCount > 0)
{
    // 처음 찾은 문서 가져오기
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // 파일에 대한 출력 어댑터 만들기
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // 형광펜 개체 만들기
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // 강조 표시된 검색 결과로 출력 HTML 형식 문서 생성
    index.Highlight(document, highlighter); 

    Console.WriteLine();
    Console.WriteLine("Generated HTML file can be opened with Internet browser.");
    Console.WriteLine("The file can be found by the following path:");
    Console.WriteLine(path);
}

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

Documents found: 1
Total occurrences found: 4
        Document: C:\Files\Files\sample.pdf
        Occurrences: 4

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Files\Files\Highlighted.html
CSharp를 사용하여 PDF에서 텍스트 또는 단어 검색

C#을 사용하여 PDF 문서에서 검색된 텍스트 강조 표시

인덱스 및 인덱스 이벤트

Index 클래스는 문서를 인덱싱하고 검색하는 기능을 제공하는 기본 클래스입니다. 인덱스는 이 클래스의 생성자를 호출하여 메모리나 디스크에 만들 수 있습니다. 위의 코드 예제에서는 디스크에 인덱스를 생성하여 재사용할 수 있도록 했습니다.

ErrorOccurred 이벤트는 파일을 인덱싱하는 동안 오류가 발생하면 오류를 표시합니다. 따라서 인덱싱 오류에 대한 정보를 받으려면 구독해야 합니다.

색인에 파일 추가

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

검색 작업 수행

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

SearchResult 클래스는 검색어와 일치하는 검색 결과의 세부 정보를 제공합니다. 이 클래스의 다음 메서드 및 속성을 사용하면 검색 결과의 세부 정보를 쉽게 얻을 수 있습니다.

검색 결과 강조 표시

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

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

C#을 사용하여 PDF에서 대소문자 구분 텍스트 검색

아래에 언급된 간단한 단계에 따라 프로그래밍 방식으로 PDF 문서에서 대문자와 소문자를 고려한 특정 텍스트 구 또는 단어를 검색할 수 있습니다.

  • Index 클래스의 인스턴스 생성
  • 인덱스 폴더의 경로 지정
  • Add() 메서드를 호출하여 색인에 PDF 파일 추가
  • SearchOptions 인스턴스 생성
  • UseCaseSensitiveSearch 속성을 true로 설정합니다.
  • 검색어 정의
  • 검색 쿼리와 함께 Search() 메서드를 사용하여 검색 수행 and the SearchOptions
  • SearchResult 사용 및 요약 인쇄

다음 코드 샘플은 C#을 사용하여 PDF 문서에서 대소문자를 구분하는 텍스트 검색을 수행하는 방법을 보여줍니다.

// 인덱스 폴더의 경로 지정
string indexFolder = @"C:\Files\Index\";

// 검색할 PDF 문서가 포함된 폴더의 경로 지정
string documentsFolder = @"C:\Files\Files\";

// 지정된 폴더에 인덱스 생성
Index index = new Index(indexFolder);

// 지정된 폴더에서 문서 인덱싱
index.Add(documentsFolder); 

// 검색 옵션 정의
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// 검색어
string query = "Vestibulum";

// 검색 수행
SearchResult result = index.Search(query, options);

// 결과 인쇄
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}
Documents found: 1
Total occurrences found: 2
        Document: C:\Files\Files\sample.pdf
        Occurrences: 2

SearchOptions 클래스는 검색 작업을 수행하는 옵션을 제공합니다. 이 클래스의 UseCaseSensitiveSearch 속성을 사용하면 단어나 텍스트에 대해 대소문자를 구분하여 검색할 수 있습니다.

무료 라이선스 받기

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

결론

이 기사에서는 C#을 사용하여 PDF 문서에서 텍스트를 검색하는 방법을 배웠습니다. C#을 사용하여 PDF 문서에서 대소문자를 구분하는 텍스트 검색을 수행하는 방법도 배웠습니다. 문서를 사용하여 GroupDocs.Search for .NET API에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오