วิธีดึงข้อความจาก PDF ใน .NET
วิธีดึงข้อความจาก PDFs ใน .NET
คู่มือนี้ครอบคลุมการสกัดข้อความจากหน้า PDF โดยใช้ absorber API.
ข้อกำหนดเบื้องต้น
| ข้อกำหนด | รายละเอียด |
|---|---|
| รันไทม์ | .NET 8.0 หรือใหม่กว่า |
| แพคเกจ | dotnet add package Aspose.Pdf.Foss |
ดึงข้อความทั้งหมดจากหน้า
TextAbsorber รวบรวมข้อความทั้งหมดบนหน้าเป็นสตริงเดียว.
สร้าง
อินสแตนซ์, ส่งให้กับ Page.Accept, และอ่านผลลัพธ์จากคุณสมบัติ Text.
นี่เป็นวิธีที่ง่ายที่สุดเมื่อคุณต้องการผลลัพธ์เป็นข้อความธรรมดาโดยไม่มีข้อมูลตำแหน่ง
ข้อมูล.
using var doc = Document.Open(pdfBytes);
var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);
Console.WriteLine(absorber.Text);สกัดข้อความที่มีโครงสร้าง
เมื่อคุณต้องการข้อมูลตำแหน่ง, แบบอักษร, และขนาดเมตาดาต้าพร้อมกับข้อความ, ให้ใช้ TextFragmentAbsorber แทน. แต่ละ TextFragment จะเปิดเผยพิกัดขอบของมันผ่านคุณสมบัติ Position.
var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"{fragment.Text} at ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
}ค้นหาด้วยนิพจน์ปกติ
ส่งรูปแบบ regex ไปยัง TextFragmentAbsorber เพื่อค้นหาข้อความที่ตรงกันทั่ว
ทุกหน้า นี่เป็นประโยชน์สำหรับการค้นหาเบอร์โทรศัพท์ วันที่ หรืออื่น ๆ
รูปแบบข้อมูลที่มีโครงสร้างภายในเอกสาร.
var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);
foreach (var f in absorber.TextFragments)
Console.WriteLine(f.Text);คลาสสำคัญ
| คลาส | วัตถุประสงค์ |
|---|---|
TextAbsorber | ดึงข้อความทั้งหมดเป็นสตริง |
TextFragmentAbsorber | การดึงข้อความแบบโครงสร้าง |
TextFragment | ข้อความพร้อมตำแหน่งและแบบอักษร |
FontRepository | ค้นหาแบบอักษร |