แยกข้อความจากพื้นที่หน้าในไฟล์ PDF
การแนะนำ
การทำงานกับ PDF มักต้องแยกเนื้อหาเฉพาะ ไม่ว่าจะเป็นการดึงข้อมูลจากแบบฟอร์ม ตาราง หรือส่วนใดส่วนหนึ่งของเอกสาร ในบทช่วยสอนนี้ เราจะแนะนำวิธีแยกข้อความจากส่วนเฉพาะของ PDF โดยใช้ Aspose.PDF สำหรับ .NET แทนที่จะกรองเอกสารทั้งหมด เราจะระบุตำแหน่งที่แน่นอนของข้อความและแยกข้อความอย่างมีประสิทธิภาพ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่มต้นเขียนโค้ด โปรดตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- Aspose.PDF สำหรับ .NET: หากคุณยังไม่ได้ดาวน์โหลดและติดตั้งไลบรารี Aspose.PDF สำหรับ .NETดาวน์โหลด Aspose.PDF สำหรับ .NET.
- IDE: สภาพแวดล้อมการพัฒนา .NET ใดๆ เช่น Visual Studio
- .NET Framework: ตรวจสอบให้แน่ใจว่าโครงการของคุณได้รับการตั้งค่าด้วย .NET framework ที่เหมาะสม
- เอกสาร 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 ก่อนโดยระบุรหัสผ่านที่ถูกต้อง จากนั้นดำเนินการแยกข้อความต่อไป