Tìm kiếm Word trong PDF bằng C#

Bạn có thể cần tìm kiếm một phần thông tin cụ thể, cụm từ văn bản hoặc một từ trong tài liệu của mình. Là nhà phát triển C#, bạn có thể dễ dàng tìm kiếm bất kỳ văn bản nào từ tài liệu PDF theo chương trình trong ứng dụng .NET của mình. Trong bài viết này, bạn sẽ tìm hiểu cách tìm kiếm văn bản trong tài liệu PDF bằng C#.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API C# để tìm kiếm văn bản

Để tìm kiếm văn bản trong tài liệu PDF, tôi sẽ sử dụng API GroupDocs.Search for .NET. Nó cho phép bạn thực hiện các thao tác tìm kiếm văn bản ở tất cả định dạng tài liệu phổ biến chẳng hạn như PDF, Word, Excel, PowerPoint và nhiều định dạng khác. Nó cũng cho phép bạn lấy thông tin cần thiết từ các tệp, tài liệu, email và kho lưu trữ. Bạn có thể tạo và hợp nhất nhiều chỉ mục để tìm kiếm nhanh chóng và thông minh thông qua chúng bằng cách sử dụng các loại truy vấn đơn giản, Boolean, Biểu thức chính quy (Regex), Fuzzy và các loại truy vấn khác.

Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package GroupDocs.Search

Tìm kiếm văn bản trong tài liệu PDF bằng C#

Bạn có thể tìm kiếm bất kỳ văn bản hoặc một từ cụ thể nào trong tài liệu PDF của mình theo chương trình bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  • Tạo một thể hiện của lớp Index
  • Chỉ định đường dẫn đến thư mục chỉ mục
  • Đăng ký sự kiện chỉ mục
  • Thêm tệp PDF vào Chỉ mục bằng cách gọi phương thức Add()
  • Xác định truy vấn tìm kiếm
  • Thực hiện tìm kiếm bằng phương thức Search() với truy vấn tìm kiếm
  • Sử dụng Kết quả tìm kiếm và in tóm tắt
  • Đánh dấu kết quả tìm kiếm ở đầu ra bằng phương thức Highlight()

Mẫu mã sau đây cho biết cách tìm kiếm văn bản trong tài liệu PDF bằng C#.

// Chỉ định đường dẫn đến thư mục chỉ mục
string indexFolder = @"C:\Files\Index\";

// Chỉ định đường dẫn đến thư mục chứa tài liệu PDF để tìm kiếm
string documentsFolder = @"C:\Files\Files\"; 

// tạo hoặc tải chỉ mục
Index index = new Index(indexFolder);

// Đăng ký các sự kiện chỉ mục
index.Events.ErrorOccurred += (sender, args) =>
{
    // Viết thông báo lỗi vào bảng điều khiển
    Console.WriteLine(args.Message);
};

// Thêm tập tin đồng bộ
// Lập chỉ mục đồng bộ tài liệu từ thư mục được chỉ định
index.Add(documentsFolder); 

// Thực hiện tìm kiếm
string query = "Vestibulum"; // Specify a search query
SearchResult result = index.Search(query); // Searching in the index

// Sử dụng kết quả tìm kiếm
// In kết quả
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);
}

// Đánh dấu các lần xuất hiện trong văn bản
if (result.DocumentCount > 0)
{
    // Lấy tài liệu tìm thấy đầu tiên
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // Tạo bộ điều hợp đầu ra thành một tệp
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // Tạo đối tượng đánh dấu
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // Tạo tài liệu có định dạng HTML đầu ra với kết quả tìm kiếm được đánh dấu
    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);
}

Mẫu mã trên sẽ tạo ra kết quả đầu ra sau:

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
Tìm kiếm-Văn bản-hoặc-Từ-trong-PDF-sử dụng-CSharp

Đánh dấu văn bản được tìm kiếm trong tài liệu PDF bằng C#

Chỉ mục và sự kiện chỉ mục

Lớp Index là lớp chính cung cấp chức năng lập chỉ mục các tài liệu và tìm kiếm chúng. Một chỉ mục có thể được tạo trong bộ nhớ hoặc trên đĩa bằng cách gọi hàm tạo của lớp này. Trong ví dụ về mã ở trên, tôi đã tạo chỉ mục trên đĩa để có thể sử dụng lại.

Sự kiện ErrorOccurred hiển thị các lỗi nếu có xảy ra trong quá trình lập chỉ mục các tệp. Vì vậy, bạn cần đăng ký dịch vụ này để nhận thông tin về lỗi lập chỉ mục.

Thêm tệp vào chỉ mục

Phương thức Add() của lớp Index thêm một tệp hoặc tất cả các tệp trong một thư mục hoặc các thư mục con được chỉ định theo đường dẫn tuyệt đối hoặc tương đối. Tất cả các tài liệu trên đường dẫn nhất định sẽ được lập chỉ mục.

Thực hiện thao tác tìm kiếm

Lớp Index cung cấp nhiều phương thức Tìm kiếm khác nhau để thực hiện thao tác tìm kiếm. Bạn có thể tìm kiếm bằng cách cung cấp một từ khóa đơn giản hoặc bằng cách xác định SearchQuery.

Lớp SearchResult cung cấp chi tiết về kết quả tìm kiếm phù hợp với truy vấn tìm kiếm. Các phương thức và thuộc tính sau của lớp này tạo điều kiện thuận lợi cho việc lấy thông tin chi tiết về kết quả tìm kiếm:

Đánh dấu kết quả tìm kiếm

Lớp HtmlHighlighter làm nổi bật kết quả tìm kiếm trong toàn bộ văn bản của tài liệu được định dạng bằng HTML.

Phương thức Highlight() của lớp Index tạo ra các lần xuất hiện đánh dấu đầu ra HTML của các thuật ngữ được tìm thấy. Bạn có thể tìm thêm thông tin chi tiết về “Đánh dấu kết quả tìm kiếm" trong tài liệu.

Tìm kiếm văn bản phân biệt chữ hoa chữ thường trong PDF bằng C#

Bạn có thể tìm kiếm bất kỳ cụm từ văn bản cụ thể hoặc một từ nào có chữ hoa và chữ thường trong tài liệu PDF của mình theo chương trình bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  • Tạo một thể hiện của lớp Index
  • Chỉ định đường dẫn đến thư mục chỉ mục
  • Thêm tệp PDF vào Chỉ mục bằng cách gọi phương thức Add()
  • Tạo một phiên bản của SearchOptions
  • Đặt thuộc tính UseCaseSensitiveSearch thành true
  • Xác định truy vấn tìm kiếm
  • Thực hiện tìm kiếm bằng phương thức Search() với truy vấn tìm kiếm and the SearchOptions
  • Sử dụng Kết quả tìm kiếm và in tóm tắt

Mẫu mã sau đây cho biết cách thực hiện tìm kiếm văn bản phân biệt chữ hoa chữ thường trong tài liệu PDF bằng C#.

// Chỉ định đường dẫn đến thư mục chỉ mục
string indexFolder = @"C:\Files\Index\";

// Chỉ định đường dẫn đến thư mục chứa tài liệu PDF để tìm kiếm
string documentsFolder = @"C:\Files\Files\";

// Tạo chỉ mục trong thư mục được chỉ định
Index index = new Index(indexFolder);

// Lập chỉ mục tài liệu từ thư mục được chỉ định
index.Add(documentsFolder); 

// Xác định các tùy chọn tìm kiếm
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// từ tìm kiếm
string query = "Vestibulum";

// Thực hiện tìm kiếm
SearchResult result = index.Search(query, options);

// In kết quả
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

Lớp SearchOptions cung cấp các tùy chọn để thực hiện các thao tác tìm kiếm. Thuộc tính UseCaseSensitiveSearch của lớp này cho phép bạn thực hiện tìm kiếm phân biệt chữ hoa chữ thường cho một từ hoặc văn bản.

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách tìm kiếm văn bản trong tài liệu PDF bằng C#. Bạn cũng đã học cách thực hiện tìm kiếm văn bản phân biệt chữ hoa chữ thường trong tài liệu PDF bằng C#. Bạn có thể tìm hiểu thêm về GroupDocs.Tìm kiếm API .NET bằng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm