วิธีการสกัดข้อความจาก PDF ใน .NET
บทความนี้แสดงให้เห็นถึงวิธีการสกัดข้อความจากเอกสาร PDF โดยใช้ Aspose.PDF Text Extractor สําหรับ .NET คุณจะเรียนรู้ที่จะใช้โหมดสกปรกทั้งหมดที่ได้รับการสนับสนุน - Pure, Raw, และ Plain - และอัตโนมัติการไหลของงานสําหรับไฟล์ PDF แต่ละหรือหลาย
ปัญหาโลกจริง
การคัดลอกข้อความด้วยตนเองจากไฟล์ PDF ไม่มีประสิทธิภาพและเป็นข้อผิดพลาด สําหรับการประยุกต์ใช้ในการวิเคราะห์ข้อมูลการถ่ายโอนเอกสารหรือการเก็บรวบรวมข้อความอัตโนมัติจะให้ความสม่ําเสมอความเร็วและความแม่นยํา
ความคิดเห็นเกี่ยวกับโซลูชัน
Aspose.PDF Text Extractor for .NET ให้อินเตอร์เฟซที่สะอาดและสามารถเขียนโปรแกรมได้สําหรับการสกัดข้อความในรูปแบบต่างๆ เลือกระหว่างโหมด Pure, Raw และ Plain เพื่อให้เหมาะกับกรณีการใช้งานของคุณ - ไม่ว่าคุณต้องการการส่งออกแบบฟอร์มข้อมูลหรือเนื้อหาเรียบ
ข้อกําหนด
- Visual Studio 2019 หรือภายหลัง
- .NET 6.0 หรือเร็วกว่า
- Aspose.PDF สําหรับ .NET ติดตั้งผ่าน NuGet
PM> Install-Package Aspose.PDF
การดําเนินการขั้นตอนขั้นตอน
ขั้นตอน 1: ติดตั้งและกําหนดค่า Aspose.PDF
using Aspose.Pdf.Plugins;
using System.IO;
ขั้นตอน 2: สารสกัดข้อความโดยใช้โหมด default (Raw)
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(); // Raw mode by default
options.AddInput(new FileDataSource("input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
Console.WriteLine(textExtracted);
}
ขั้นตอนที่ 3: สารสกัดข้อความในโหมดบริสุทธิ์หรือเรียบ
- **โหมดบริสุทธิ์: ** ปกป้องตําแหน่งที่เกี่ยวข้องและเพิ่มพื้นที่สําหรับการปรับตัว
- **โหมดการวางแผน: ** รูปแบบ stripes, output text with minimal spaces.
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
options.AddInput(new FileDataSource("input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
Console.WriteLine(textExtracted);
}
การใช้กรณีและแอพพลิเคชัน (ด้วยการเปลี่ยนแปลงรหัส)
1. Batch สารสกัดข้อความจากไฟล์ PDF จํานวนมาก
string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
foreach (var file in files)
options.AddInput(new FileDataSource(file));
var resultContainer = extractor.Process(options);
for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
{
string extracted = resultContainer.ResultCollection[i].ToString();
// Save to disk, process, or analyze as needed
File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
}
}
2. เลือกโหมดการสกัดขึ้นอยู่กับกรณีการใช้
- ใช้ Pure สําหรับการจัดตั้งแบบตารางหรือการออกแบบพื้นที่
- ใช้ Plain สําหรับการสกัดหรือวิเคราะห์ข้อมูลที่สะอาด
- ใช้ Raw สําหรับข้อความที่ไม่ได้ประมวลผล
3. กระบวนการโพสต์ข้อความที่สกัด
หลังจากสกัดใช้ regex, การทําความสะอาดข้อความหรือส่งผลให้บริการอื่น ๆ (การค้นหา, ท่อ ML ฯลฯ )
4. บูรณาการการสกัดด้วยท่อข้อมูล
การสกัดอัตโนมัติเป็นส่วนหนึ่งของกระแสการทํางานที่กว้างกว่า ETL, การรายงานหรือการจัดการเอกสารโดยใช้การปฏิบัติมาตรฐาน .NET
ความท้าทายและโซลูชั่นทั่วไป
ความท้าทาย: ** ผลลัพธ์ที่ไม่สม่ําเสมอเนื่องจากโครงสร้าง PDF ที่ซับซ้อนโซลูชัน:**ลองโหมดการสกัดที่แตกต่างกัน (บริสุทธิ์เรียบราก) และเปรียบเทียบผลการกระบวนการหลังถ้าจําเป็น
ความท้าทาย: ** ความเร็วในการสกัดแบตช์โซลูชัน:** ใช้เดียว TextExtractor
ตัวอย่างและประมวลผลไฟล์หลายไฟล์ในครั้งเดียวเพื่อประสิทธิภาพที่ดีที่สุด
ความท้าทาย: ตัวละครพิเศษหรือปัญหาการเข้ารหัสโซลูชัน: ใช้โหมดเรียบเพื่อการจัดรูปแบบขั้นต่ําแล้วใช้การประมวลผล string ที่กําหนดเองตามความต้องการ
ประสิทธิภาพและการปฏิบัติที่ดีที่สุด
- ตรวจสอบทั้งสามโหมดการสกัดเพื่อกําหนดผลลัพธ์ที่ดีที่สุดสําหรับประเภทเอกสารของคุณ
- การบันทึกไฟล์ PDF ที่เดิมก่อนการดําเนินการชุด
- การจัดการชื่อไฟล์การผลิตและองค์กรในงานบรรทัด
- การจัดการข้อผิดพลาดแบบบูรณาการและการเข้าสู่ระบบเพื่อความแข็งแรง
ตัวอย่างการดําเนินการที่สมบูรณ์
using Aspose.Pdf.Plugins;
using System;
using System.IO;
class Program
{
static void Main()
{
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
}
}
}
ข้อสรุป
Aspose.PDF Text Extractor for .NET ให้คุณเครื่องมือที่มีประสิทธิภาพและมีความยืดหยุ่นสําหรับการสกัดข้อความในรูปแบบหลายแบบเหมาะสําหรับการประมวลผลข้อมูลการจัดเก็บข้อมูลหรือวิเคราะห์ เลือกโหมดสกปรกที่เหมาะสมที่สุดสําหรับความต้องการของคุณและอัตโนมัติสแกนเพื่อประสิทธิภาพสูงในแอพพลิเคชัน .Net