در C# برای جستجوی یک کلمه در PDF، می‌توانید از کتابخانه‌هایی مانند iTextSharp یا PdfSharp استفاده کنید. در اینجا یک نمونه ساده با استفاده از iTextSharp آورده شده است
using System;
using System.IO;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;

class Program
{
    static void Main()
    {
        string path = "path/to/your/file.pdf";
        string searchWord = "yourWord";

        using (PdfReader reader = new PdfReader(path))
        {
            int numberOfPages = reader.NumberOfPages;
           for (int i = 1; i <= numberOfPages; i++)
            {
                string text = PdfTextExtractor.GetTextFromPage(reader, i);
                if (text.Contains(searchWord))
                {
                    Console.WriteLine($"Found '{searchWord}' on page {i}");
                }
            }
        }
    }
}

این کد تمام صفحات PDF را مرور می‌کند و به دنبال کلمه‌ای که مشخص کرده‌اید می‌گردد.">}}

شما ممکن است لازم باشد برای یک قطعه اطلاعات خاص، عبارت متنی، یا یک کلمه از اسناد خود جستجو کنید. به عنوان یک توسعه‌دهنده C#، می‌توانید به راحتی هر متنی را به صورت برنامه‌نویسی در اسناد PDF در برنامه‌های .NET خود جستجو کنید. در این مقاله، شما خواهید آموخت که چگونه در اسناد PDF با استفاده از C# متنی را جستجو کنید.

موضوعات زیر در این مقاله مورد بحث/پوشش قرار گرفته است:

C# API برای جستجوی متن

برای جستجوی متن در PDF اسناد، من از GroupDocs.Search for .NET API استفاده خواهم کرد. این API به شما امکان می‌دهد عملیات جستجوی متنی را در تمام فرمت‌های مستند محبوب مانند PDF، Word، Excel، PowerPoint و بسیاری دیگر انجام دهید. این همچنین به شما این امکان را می‌دهد که اطلاعات مورد نیاز خود را از فایل‌ها، اسناد، ایمیل‌ها و آرشیوها بازیابی کنید. شما می‌توانید چندین ایندکس ایجاد و ادغام کنید تا به سرعت و هوشمندانه از طریق آن‌ها با استفاده از جستجوهای ساده، بولی، بیان منظم (Regex)، مبهم و سایر انواع پرس و جوها جستجو کنید.

شما می‌توانید یا download DLL API را دانلود کنید یا آن را با استفاده از NuGet نصب کنید.

Install-Package GroupDocs.Search

متن جستجو در اسناد PDF با استفاده از C#

شما می‌توانید به‌طور برنامه‌نویسی برای هر متنی یا یک کلمه خاص در اسناد PDF خود جستجو کنید با پیروی از مراحل ساده‌ای که در زیر ذکر شده است:

  • یک نمونه از کلاس Index ایجاد کنید
  • مسیر پوشه شاخص را مشخص کنید
  • بهindex events مشترک شوید
  • PDF فایل‌ها را با فراخوانی متد Add() به فهرست اضافه کنید
  • تعریف یک جستجوگر
  • یک جستجو با استفاده از روش Search() و عبارت جستجو را انجام دهید.
  • از SearchResult استفاده کنید و خلاصه را چاپ کنید.
  • نتایج جستجو شده را در خروجی با استفاده از روش Highlight() هایلایت کنید.

کد نمونه زیر نشان می‌دهد که چگونه می‌توان متن را در اسناد PDF با استفاده از C# جستجو کرد.

// مسیر به پوشه ایندکس را مشخص کنید
string indexFolder = @"C:\Files\Index\";

// مسیر یک پوشه شامل مدارک PDF برای جستجو را مشخص کنید
string documentsFolder = @"C:\Files\Files\"; 

// create or load an index
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)
{
    // Getting the first found document
    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
Search-Text-or-Word-in-PDF-using-CSharp

متن جستجو شده را در اسناد PDF با استفاده از C# هایلایت کنید

شاخص و رویداد شاخص

کلاس Index کلاس اصلی است که قابلیت‌هایی برای فهرست‌گذاری اسناد و جستجو در آن‌ها ارائه می‌دهد. یک ایندکس می‌تواند در حافظه یا روی دیسک با فراخوانی سازنده این کلاس ایجاد شود. در مثال کد بالا، من ایندکس را روی دیسک ایجاد کرده‌ام تا بتوان از آن دوباره استفاده کرد.

رویداد ErrorOccurred خطاها را نشان می‌دهد اگر در حین ایندکس کردن فایل‌ها هرگونه خطایی رخ دهد. بنابراین، شما باید به این رویداد اشتراک‌گذاری کنید تا اطلاعاتی درباره خطاهای ایندکس‌گذاری دریافت کنید.

فایل هایی به ایندکس اضافه کنید

متد Add() کلاس Index یک فایل یا همه فایل‌ها در یک پوشه یا زیرپوشه مشخص را با یک مسیر مطلق یا نسبی اضافه می‌کند. تمام اسناد در مسیر داده‌شده ایندکس خواهند شد.

عملیات جستجو را انجام دهید

کلاس Index روش‌های مختلفی Search را برای انجام عملیات جستجو فراهم می‌کند. می‌توانید با ارائه یک کلمه کلیدی ساده یا با تعریف یک SearchQuery جستجو کنید.

کلاس SearchResult جزئیات یک نتیجه جستجو که با یک پرسش جستجو مطابقت دارد را ارائه می‌دهد. روش‌ها و خصوصیات زیر این کلاس برای دریافت جزئیات نتایج جستجو تسهیل می‌کند:

نتایج جستجو را برجسته کنید

کلاس HtmlHighlighter نتایج جستجو را در کل متن سندی که به صورت HTML قالب‌بندی شده است، هایلایت می‌کند.

روش Highlight() کلاس Index خروجی HTML تولید می‌کند که فراوانی اصطلاحات پیدا شده را هایلایت می‌کند. می‌توانید جزئیات بیشتری درباره `Highlighting Search Results” در مستندات پیدا کنید.

جستجوی متن حساس به حروف بزرگ و کوچک در PDF با استفاده از C#

شما می‌توانید به‌طور برنامه‌نویسی به دنبال هر عبارت متنی خاص یا کلمه‌ای با در نظر گرفتن حروف بزرگ و کوچک در اسناد PDF خود بگردید، با دنبال کردن مراحل ساده‌ای که در زیر ذکر شده است:

  • یک نمونه از کلاس Index ایجاد کنید
  • مسیر پوشه شاخص را مشخص کنید
  • PDF فایل‌ها را با فراخوانی متد Add() به فهرست اضافه کنید
  • یک نمونه از SearchOptions ایجاد کنید.
  • ویژگی UseCaseSensitiveSearch را به true تنظیم کنید
  • تعریف یک جستجوگر
  • یک جستجو با استفاده از روش Search() و عبارت جستجو را انجام دهید. and the SearchOptions
  • از SearchResult استفاده کنید و خلاصه را چاپ کنید.

کد نمونه زیر نشان می‌دهد که چگونه یک جستجوی متنی حساس به حروف بزرگ و کوچک را در یک سند PDF با استفاده از C# انجام دهید.

// مسیر به پوشه شاخص را مشخص کنید
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

// search word
string query = "Vestibulum";

// جستجو را انجام دهید
SearchResult result = index.Search(query, options);

// Printing the result
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 بدون محدودیت‌های ارزیابی استفاده کنید با درخواست a free temporary license.

نتیجه گیری

در این مقاله، شما یاد گرفته‌اید که چگونه در یک سند PDF با استفاده از C# متن جستجو کنید. همچنین یاد گرفته‌اید که چگونه یک جستجوی متن حساس به حروف بزرگ و کوچک را در یک سند PDF با استفاده از C# انجام دهید. می‌توانید درباره GroupDocs.Search برای .NET API بیشتر با استفاده از documentation بیاموزید. در صورت بروز هر گونه ابهام، لطفاً با کمال میل با ما در forum تماس بگیرید.

همچنین ببینید