ค้นหาและรับข้อความทั้งหมด

การแนะนำ

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

ข้อกำหนดเบื้องต้น

ก่อนที่จะเริ่มเขียนโค้ด เรามาตรวจสอบก่อนว่าคุณได้ตั้งค่าทุกอย่างเรียบร้อยแล้ว:

  1. Aspose.PDF สำหรับ .NET: คุณจะต้องดาวน์โหลดและติดตั้ง Aspose.PDF สำหรับ .NET คุณสามารถรับได้จากหน้าดาวน์โหลดที่นี่.
  2. สภาพแวดล้อม .NET: ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า .NET Framework หรือ .NET Core บนเครื่องพัฒนาของคุณแล้ว
  3. ความรู้พื้นฐานเกี่ยวกับ C##: ขอแนะนำให้มีความคุ้นเคยกับ C# และการทำงานกับโปรเจ็กต์ .NET
  4. เอกสาร PDF: ไฟล์ PDF ตัวอย่างที่เราจะแยกข้อความออกมา ในตัวอย่างนี้ เราจะใช้SearchAndGetTextFromAll.pdf.

แพ็คเกจนำเข้า

ก่อนที่จะเขียนโค้ดใดๆ คุณต้องนำเข้าเนมสเปซที่จำเป็นลงในโปรเจ็กต์ของคุณเพื่อทำงานกับ Aspose.PDF

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;

เนมสเปซเหล่านี้ให้สิทธิ์ในการเข้าถึงโมเดลวัตถุเอกสารของ PDF และช่วยให้เราจัดการข้อความภายในไฟล์ได้

มาแบ่งขั้นตอนออกเป็นขั้นตอนง่าย ๆ เพื่อให้คุณทำตามได้อย่างง่ายดาย

ขั้นตอนที่ 1: ตั้งค่าไดเรกทอรีเอกสาร

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

// เส้นทางไปยังไดเร็กทอรีเอกสาร
string dataDir = "YOUR DOCUMENT DIRECTORY";
  • การdataDir ตัวแปรควรชี้ไปที่ไดเร็กทอรีที่คุณSearchAndGetTextFromAll.pdf ไฟล์ถูกเก็บไว้แล้ว
  • แทนที่"YOUR DOCUMENT DIRECTORY" ด้วยเส้นทางจริงบนเครื่องของคุณ

ขั้นตอนที่ 2: เปิดเอกสาร PDF

ต่อไปเราจะเปิดเอกสาร PDF โดยใช้ Aspose.PDFDocument วัตถุ.

// เปิดเอกสาร
Document pdfDocument = new Document(dataDir + "SearchAndGetTextFromAll.pdf");
  • เราสร้างอินสแตนซ์ใหม่ของDocument คลาสโดยการส่งเส้นทางไฟล์แบบเต็มของ PDF
  • การดำเนินการนี้จะโหลด PDF เข้าไปในหน่วยความจำ ทำให้พร้อมสำหรับการประมวลผล

ขั้นตอนที่ 3: สร้าง Text Absorber

การTextFragmentAbsorber วัตถุใช้เพื่อค้นหาข้อความเฉพาะภายใน PDF ในกรณีนี้ เราจะค้นหาคำว่า “ข้อความ”

// สร้างวัตถุ TextAbsorber เพื่อค้นหาอินสแตนซ์ทั้งหมดของวลีการค้นหาอินพุต
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
  • การTextFragmentAbsorber จะถูกเริ่มต้นด้วยสตริง"text"ซึ่งหมายความว่าระบบจะค้นหาคำว่า “ข้อความ” ที่เกิดขึ้นในเอกสาร PDF

ขั้นตอนที่ 4: ยอมรับตัวดูดซับสำหรับทุกหน้า

ตอนนี้เราจะสั่งให้เอกสาร PDF ยอมรับตัวดูดซับและค้นหาข้อความในทุกหน้า

// รับตัวดูดซับสำหรับทุกหน้า
pdfDocument.Pages.Accept(textFragmentAbsorber);
  • การAccept วิธีการนี้ใช้กับหน้าเอกสารทั้งหมด ซึ่งจะค้นหาข้อความที่ระบุในทุกหน้า

ขั้นตอนที่ 5: แยกชิ้นส่วนข้อความ

เมื่อเครื่องดูดซับสแกนเอกสารแล้ว เราจะดึงชิ้นส่วนข้อความที่แยกออกมาได้

// รับชิ้นส่วนข้อความที่แยกออกมา
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
  • การTextFragments ทรัพย์สินของTextFragmentAbsorber ส่งคืนคอลเลกชันของส่วนข้อความทั้งหมดที่ตรงกับเงื่อนไขการค้นหา

ขั้นตอนที่ 6: วนซ้ำผ่านชิ้นส่วนข้อความ

ตอนนี้เรามีคอลเลกชันของชิ้นส่วนข้อความแล้ว เราจะวนซ้ำผ่านชิ้นส่วนเหล่านั้นและแยกรายละเอียดออกมา

// วนผ่านชิ้นส่วน
foreach (TextFragment textFragment in textFragmentCollection)
{
    Console.WriteLine("Text : {0} ", textFragment.Text);
    Console.WriteLine("Position : {0} ", textFragment.Position);
    Console.WriteLine("XIndent : {0} ", textFragment.Position.XIndent);
    Console.WriteLine("YIndent : {0} ", textFragment.Position.YIndent);
    Console.WriteLine("Font - Name : {0}", textFragment.TextState.Font.FontName);
    Console.WriteLine("Font - IsAccessible : {0} ", textFragment.TextState.Font.IsAccessible);
    Console.WriteLine("Font - IsEmbedded : {0} ", textFragment.TextState.Font.IsEmbedded);
    Console.WriteLine("Font - IsSubset : {0} ", textFragment.TextState.Font.IsSubset);
    Console.WriteLine("Font Size : {0} ", textFragment.TextState.FontSize);
    Console.WriteLine("Foreground Color : {0} ", textFragment.TextState.ForegroundColor);
}
  • การforeach ลูปวนซ้ำผ่านแต่ละTextFragment ในคอลเลคชั่น
  • เราจะพิมพ์คุณสมบัติต่างๆ ของแต่ละส่วน เช่น ข้อความจริง ตำแหน่งบนหน้า รายละเอียดแบบอักษร และขนาดแบบอักษร
  • การXIndent และYIndent คุณสมบัติให้พิกัดที่แน่นอนของชิ้นส่วนข้อความภายใน PDF

บทสรุป

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

คำถามที่พบบ่อย

ฉันสามารถค้นหาหลายคำในครั้งเดียวได้ไหม?

ใช่ คุณสามารถปรับเปลี่ยนได้TextFragmentAbsorber เพื่อค้นหาหลายวลีโดยปรับสตริงการค้นหาให้เหมาะสม

จะเกิดอะไรขึ้นถ้าข้อความมีระยะหลายบรรทัด?

Aspose.PDF จะยังคงจดจำและแยกข้อความออกมาได้แม้ว่าจะมีหลายบรรทัดก็ตาม คุณสามารถจัดการส่วนต่างๆ เหล่านี้ได้ทีละส่วน

ฉันจะบันทึกข้อความที่แยกออกมาลงในไฟล์ได้อย่างไร?

คุณสามารถเขียนข้อความที่แยกออกมาลงในไฟล์โดยใช้การดำเนินการ I/O ของไฟล์ C# มาตรฐาน เช่นStreamWriter.

Aspose.PDF รองรับการแยกข้อความจาก PDF ที่สแกนหรือไม่

Aspose.PDF ไม่รองรับ OCR สำหรับ PDF ที่สแกน คุณจะต้องใช้เครื่องมือ OCR เพื่อจดจำข้อความ

ฉันจะจัดการไฟล์ PDF ที่เข้ารหัสได้อย่างไร

หาก PDF ของคุณได้รับการป้องกันด้วยรหัสผ่าน คุณสามารถปลดล็อคได้โดยใช้ Aspose.PDF โดยระบุรหัสผ่านเมื่อโหลดเอกสาร