แยกข้อความจากพื้นที่หน้าในไฟล์ PDF

การแนะนำ

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

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

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

  1. Aspose.PDF สำหรับ .NET: หากคุณยังไม่ได้ดาวน์โหลดและติดตั้งไลบรารี Aspose.PDF สำหรับ .NETดาวน์โหลด Aspose.PDF สำหรับ .NET.
  2. IDE: สภาพแวดล้อมการพัฒนา .NET ใดๆ เช่น Visual Studio
  3. .NET Framework: ตรวจสอบให้แน่ใจว่าโครงการของคุณได้รับการตั้งค่าด้วย .NET framework ที่เหมาะสม
  4. เอกสาร PDF: ตัวอย่าง PDF ที่เราจะแยกข้อความออกมา

อย่าลืมว่าคุณสามารถรับการทดลองใช้ฟรี ของ Aspose.PDF หรือใช้ใบอนุญาตชั่วคราว เพื่อการใช้งานที่ครบครัน

การนำเข้าแพ็คเกจที่จำเป็น

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

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

ขั้นตอนที่ 1: ตั้งค่าไดเรกทอรีเอกสารและโหลด PDF

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

// เส้นทางไปยังไดเร็กทอรีเอกสาร
string dataDir = "YOUR DOCUMENT DIRECTORY";

// เปิดเอกสาร PDF
Document pdfDocument = new Document(dataDir + "ExtractTextAll.pdf");

ขั้นตอนนี้จะช่วยให้แน่ใจว่าไฟล์ PDF ถูกโหลดอย่างถูกต้องและพร้อมที่จะใช้งานDocument คลาสจากไลบรารี Aspose.PDF ช่วยให้คุณสามารถจัดการไฟล์ PDF ได้

ขั้นตอนที่ 2: เริ่มต้น Text Absorber สำหรับการแยกข้อมูล

ในขั้นตอนนี้เราจะสร้างTextAbsorber วัตถุซึ่งออกแบบมาเพื่อแยกข้อความจากเอกสาร PDFTextAbsorber มีความยืดหยุ่นและสามารถปรับแต่งเพื่อเน้นเฉพาะภูมิภาคหรือหน้าเฉพาะได้

// สร้างวัตถุ TextAbsorber เพื่อแยกข้อความ
TextAbsorber absorber = new TextAbsorber();

การTextAbsorberคลาสเป็นเครื่องมืออันทรงพลังที่เก็บข้อความทั้งหมดภายในขอบเขตที่คุณระบุ

ขั้นตอนที่ 3: กำหนดภูมิภาคที่จะแยกข้อความ

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

// จำกัดการแยกข้อความให้เฉพาะบางพื้นที่
absorber.TextSearchOptions.LimitToPageBounds = true;
absorber.TextSearchOptions.Rectangle = new Aspose.Pdf.Rectangle(100, 200, 250, 350);

การRectangle วัตถุช่วยให้คุณกำหนดพิกัด (เป็นจุด) ของพื้นที่ที่จะแยกข้อความออกมาTextSearchOptions.LimitToPageBounds รับประกันว่าจะมีการแยกเฉพาะข้อความภายในสี่เหลี่ยมที่ระบุเท่านั้น

ขั้นตอนที่ 4: ยอมรับ Absorber บนหน้าที่ต้องการ

หลังจากตั้งค่าภูมิภาคแล้ว ขั้นตอนต่อไปคือการยอมรับTextAbsorber สำหรับหน้าเฉพาะที่คุณต้องการแยกข้อความออกมา ที่นี่เราจะเน้นที่หน้าแรกของ PDF

// รับตัวดูดซับสำหรับหน้าแรก
pdfDocument.Pages[1].Accept(absorber);

โดยการโทรหาAccept วิธีการบนหน้านี้ เราสั่งให้ Aspose.PDF รันตัวดูดซับและรวบรวมข้อความจากภูมิภาคที่กำหนด

ขั้นตอนที่ 5: ดึงข้อมูลและจัดเก็บข้อความที่แยกออกมา

เมื่อตัวดูดซับทำงานเสร็จแล้ว ก็ถึงเวลาที่จะรวบรวมข้อความที่แยกออกมาและบันทึก ขั้นตอนนี้เกี่ยวข้องกับการดึงข้อความและเขียนลงใน.txt ไฟล์.

// รับข้อความที่แยกออกมา
string extractedText = absorber.Text;

// สร้างโปรแกรมเขียนเพื่อบันทึกข้อความที่แยกออกมา
TextWriter tw = new StreamWriter(dataDir + "extracted-text.txt");

// เขียนข้อความลงในไฟล์
tw.WriteLine(extractedText);

// ปิดลำธาร
tw.Close();

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

บทสรุป

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

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

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

ฉันสามารถดึงข้อความจากหลายหน้าในครั้งเดียวได้ไหม?

ใช่ โดยการวนซ้ำผ่านPages การรวบรวมของpdfDocument คุณสามารถนำไปใช้ได้TextAbsorber ไปเป็นหลายหน้า

จะเกิดอะไรขึ้นถ้าข้อความอยู่ในพื้นที่ที่แตกต่างกันของ PDF?

คุณสามารถปรับเปลี่ยนได้อย่างง่ายดายRectangle พิกัดเพื่อให้ตรงกับภูมิภาคที่ข้อความของคุณตั้งอยู่

วิธีนี้ใช้กับไฟล์ PDF ที่สแกนได้หรือไม่

ไม่ PDF ที่สแกนต้องใช้ OCR (Optical Character Recognition) เพื่อแปลงรูปภาพเป็นข้อความ Aspose.PDF ยังมีฟีเจอร์ OCR อีกด้วย

มีวิธีแยกข้อความตามคำสำคัญที่เจาะจงหรือไม่

ใช่คุณสามารถใช้TextFragmentAbsorber สำหรับการแยกข้อความตามคำสำคัญ

ฉันจะแยกข้อความจาก PDF ที่เข้ารหัสได้อย่างไร

คุณต้องถอดรหัส PDF ก่อนโดยระบุรหัสผ่านที่ถูกต้อง จากนั้นดำเนินการแยกข้อความต่อไป