ค้นหา Word ใน PDF โดยใช้ C#

คุณอาจต้องค้นหาข้อมูล วลี หรือคำจากเอกสารของคุณ ในฐานะนักพัฒนา C# คุณสามารถค้นหาข้อความจากเอกสาร PDF โดยทางโปรแกรมในแอปพลิเคชัน .NET ของคุณได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาข้อความในเอกสาร PDF โดยใช้ C#

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

C# API สำหรับการค้นหาข้อความ

สำหรับการค้นหาข้อความในเอกสาร PDF ฉันจะใช้ GroupDocs.Search สำหรับ .NET API ช่วยให้คุณสามารถดำเนินการค้นหาข้อความใน [รูปแบบเอกสารยอดนิยม] ทั้งหมด 7 เช่น PDF, Word, Excel, PowerPoint และอื่นๆ อีกมากมาย นอกจากนี้ยังช่วยให้คุณสามารถดึงข้อมูลที่ต้องการจากไฟล์ เอกสาร อีเมล และเอกสารสำคัญ คุณสามารถสร้างและรวมดัชนีหลายรายการเพื่อค้นหาได้อย่างรวดเร็วและชาญฉลาดโดยใช้แบบสอบถามแบบง่าย บูลีน นิพจน์ทั่วไป (Regex) แบบคลุมเครือ และแบบสอบถามประเภทอื่นๆ

คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

Install-Package GroupDocs.Search

ค้นหาข้อความในเอกสาร PDF โดยใช้ C#

คุณสามารถค้นหาข้อความหรือคำเฉพาะใดๆ ในเอกสาร PDF ของคุณโดยทางโปรแกรมโดยทำตามขั้นตอนง่ายๆ ด้านล่างนี้:

  • สร้างอินสแตนซ์ของคลาส ดัชนี
  • ระบุเส้นทางไปยังโฟลเดอร์ดัชนี
  • สมัครสมาชิก กิจกรรมดัชนี
  • เพิ่มไฟล์ PDF ลงในดัชนีโดยการเรียกเมธอด Add()
  • กำหนดคำค้นหา
  • ทำการค้นหาโดยใช้เมธอด Search() พร้อมคำค้นหา
  • ใช้ SearchResult และพิมพ์สรุป
  • เน้นผลลัพธ์การค้นหาในผลลัพธ์โดยใช้เมธอด Highlight()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาข้อความในเอกสาร PDF โดยใช้ C#

// ระบุเส้นทางไปยังโฟลเดอร์ดัชนี
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
ค้นหาข้อความหรือคำใน PDF โดยใช้ CSharp

เน้นข้อความที่ค้นหาในเอกสาร PDF โดยใช้ C#

เหตุการณ์ดัชนีและดัชนี

คลาส ดัชนี เป็นคลาสหลักที่มีฟังก์ชันการทำดัชนีเอกสารและค้นหาเอกสารเหล่านั้น สามารถสร้างดัชนีในหน่วยความจำหรือบนดิสก์ได้โดยการเรียกตัวสร้างของคลาสนี้ ในตัวอย่างโค้ดข้างต้น ฉันได้สร้างดัชนีบนดิสก์เพื่อให้สามารถนำมาใช้ซ้ำได้

เหตุการณ์ ErrorOccurred จะแสดงข้อผิดพลาดหากมีเกิดขึ้นระหว่างการจัดทำดัชนีไฟล์ ดังนั้น คุณต้องสมัครรับข้อมูลนี้เพื่อรับข้อมูลเกี่ยวกับข้อผิดพลาดในการจัดทำดัชนี

เพิ่มไฟล์ลงในดัชนี

เมธอด Add() ของคลาส Index จะเพิ่มไฟล์หรือไฟล์ทั้งหมดในโฟลเดอร์หรือโฟลเดอร์ย่อยที่ระบุด้วยพาธสัมบูรณ์หรือพาธสัมพัทธ์ เอกสารทั้งหมดบนเส้นทางที่กำหนดจะถูกจัดทำดัชนี

ดำเนินการค้นหา

คลาสดัชนีจัดเตรียมวิธีการ ค้นหา ต่างๆ เพื่อดำเนินการค้นหา คุณสามารถค้นหาโดยระบุคำสำคัญง่ายๆ หรือกำหนด SearchQuery

คลาส SearchResult ให้รายละเอียดของผลการค้นหาที่ตรงกับคำค้นหา วิธีการและคุณสมบัติต่อไปนี้ของคลาสนี้อำนวยความสะดวกในการรับรายละเอียดของผลการค้นหา:

  • คุณสมบัติ OccurrenceCount แสดงจำนวนครั้งทั้งหมดที่พบ
  • คุณสมบัติ DocumentCount ระบุจำนวนเอกสารที่พบในดัชนี
  • วิธีการ GetFoundDocument(int) ส่งกลับค่า FoundDocument ตามดัชนี
  • คุณสมบัติ FoundDocument.OccurrenceCount ส่งคืนจำนวนครั้งที่พบในเอกสาร

เน้นผลการค้นหา

คลาส HtmlHighlighter เน้นผลการค้นหาในข้อความทั้งหมดของเอกสารที่จัดรูปแบบเป็น HTML

Highlight() วิธีการของชั้นดัชนีสร้างเอาท์พุท HTML ที่เน้นการเกิดขึ้นของคำที่พบ ดูรายละเอียดเพิ่มเติมเกี่ยวกับ “เน้นผลลัพธ์การค้นหา” ได้ในเอกสารประกอบ

การค้นหาข้อความแบบตรงตามตัวพิมพ์ใหญ่-เล็กใน PDF โดยใช้ C#

คุณสามารถค้นหาวลีข้อความเฉพาะเจาะจงหรือคำโดยคำนึงถึงตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในเอกสาร PDF ของคุณโดยทางโปรแกรมโดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส ดัชนี
  • ระบุเส้นทางไปยังโฟลเดอร์ดัชนี
  • เพิ่มไฟล์ PDF ลงในดัชนีโดยการเรียกเมธอด Add()
  • สร้างอินสแตนซ์ของ SearchOptions
  • ตั้งค่าคุณสมบัติ UseCaseSensitiveSearch เป็นจริง
  • กำหนดคำค้นหา
  • ทำการค้นหาโดยใช้เมธอด 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

// คำค้นหา
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 ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีค้นหาข้อความในเอกสาร PDF โดยใช้ C# แล้ว คุณยังได้เรียนรู้วิธีการค้นหาข้อความที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ในเอกสาร PDF โดยใช้ C# คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Search สำหรับ .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย