คุณอาจต้องค้นหาข้อมูล วลี หรือคำจากเอกสารของคุณ ในฐานะนักพัฒนา C# คุณสามารถค้นหาข้อความจากเอกสาร PDF โดยทางโปรแกรมในแอปพลิเคชัน .NET ของคุณได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาข้อความในเอกสาร PDF โดยใช้ C#
หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:
- C# API สำหรับการค้นหาข้อความ
- ค้นหาข้อความในเอกสาร PDF โดยใช้ C#
- การค้นหาข้อความแบบตรงตามตัวพิมพ์ใหญ่-เล็กใน 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
เหตุการณ์ดัชนีและดัชนี
คลาส ดัชนี เป็นคลาสหลักที่มีฟังก์ชันการทำดัชนีเอกสารและค้นหาเอกสารเหล่านั้น สามารถสร้างดัชนีในหน่วยความจำหรือบนดิสก์ได้โดยการเรียกตัวสร้างของคลาสนี้ ในตัวอย่างโค้ดข้างต้น ฉันได้สร้างดัชนีบนดิสก์เพื่อให้สามารถนำมาใช้ซ้ำได้
เหตุการณ์ 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 ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม