การแยกข้อความจากเอกสาร (PDF, การประมวลผลคำ, หน้าเว็บ ฯลฯ) มีกรณีการใช้งานที่หลากหลายในโลกของข้อมูลดิจิทัล ตัวอย่างเช่น สามารถใช้สำหรับการแยกวิเคราะห์เอกสาร ดำเนินการวิเคราะห์ข้อความ ดึงข้อมูล จัดเก็บเนื้อหาของเอกสารลงในฐานข้อมูล และอื่นๆ หากเราจำกัดขอบเขตให้แคบลง PDF เป็นหนึ่งในรูปแบบเอกสารที่ใช้กันอย่างแพร่หลายในการจัดเก็บและแบ่งปันข้อมูลดิจิทัล ความนิยมนี้ทำให้เอกสาร PDF เป็นแหล่งข้อมูลขนาดใหญ่ ดังนั้น การแยกวิเคราะห์หรือแยกข้อความจากเอกสาร PDF อาจเกี่ยวข้องกับสถานการณ์การวิเคราะห์ข้อความจำนวนหนึ่ง
เพื่อให้การแยกวิเคราะห์ PDF ในแอปพลิเคชัน C++ เป็นไปโดยอัตโนมัติ บทความนี้จะสาธิตวิธีแยกข้อความจากเอกสาร PDF โดยใช้ C++ ครอบคลุมสถานการณ์การแยกข้อความต่อไปนี้:
- แยกข้อความจากเอกสาร PDF โดยใช้ C++
- แยกข้อความจากบางหน้าในเอกสาร PDF โดยใช้ C++
- แยกข้อความทีละหน้าจากเอกสาร PDF โดยใช้ C ++
C++ PDF Reader และ Text Extractor Library
สำหรับการแยกข้อความจากเอกสาร PDF เราจะใช้ Aspose.PDF for C++ ซึ่งเป็นไลบรารี PDF ที่ทรงพลังสำหรับการสร้าง แปลง และแยกวิเคราะห์เอกสาร PDF คุณสามารถดาวน์โหลดไฟล์ไลบรารีรวมทั้งตัวอย่างโค้ดที่รันได้จากส่วน ดาวน์โหลด
แยกข้อความจาก PDF โดยใช้ C ++
Aspose.PDF for C++ ให้คุณแยกวิเคราะห์เอกสาร PDF ในขั้นตอนง่ายๆ ไม่กี่ขั้นตอน ต่อไปนี้เป็นสูตรสำหรับการแยกข้อความจากเอกสาร PDF
- สร้างวัตถุของคลาส PdfExtractor
- โหลดเอกสาร PDF โดยใช้ฟังก์ชัน PdfExtractor->BindPdf()
- แยกข้อความจากเอกสาร PDF ไปที่ PdfExtractor โดยใช้ฟังก์ชัน PdfExtractor->ExtractText()
- บันทึกข้อความที่แยกออกมาในวัตถุ MemoryStream
- อ่านข้อความเป็นสตริงจาก MemoryStream
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจาก PDF โดยใช้ C++
auto extractor = MakeObject<Facades::PdfExtractor>();
// ผูกเอกสาร PDF ต้นทาง
extractor->BindPdf(u"candy.pdf");
// แยกข้อความจาก PDF เป็น PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// บันทึกข้อความลงในสตรีมหน่วยความจำ
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// พิมพ์ข้อความที่แยกออกมา
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
แยกข้อความจากหน้าเฉพาะใน PDF โดยใช้ C ++
อาจมีกรณีที่คุณต้องการแยกข้อความจาก PDF ไม่กี่หน้าเท่านั้น ในกรณีดังกล่าว คุณสามารถระบุช่วงของหน้าใน PDF ได้โดยการตั้งค่าหมายเลขหน้าเริ่มต้นและสิ้นสุด ต่อไปนี้เป็นขั้นตอนในการแยกข้อความจากบางหน้าในเอกสาร PDF
- สร้างวัตถุของคลาส PdfExtractor
- โหลดเอกสาร PDF โดยใช้ฟังก์ชัน PdfExtractor->BindPdf()
- ตั้งค่าหมายเลขหน้าเริ่มต้นและสิ้นสุดโดยใช้ฟังก์ชัน PdfExtractor->setStartPage() และ PdfExtractor->setEndPage() ตามลำดับ
- แยกข้อความจาก PDF โดยใช้ฟังก์ชัน PdfExtractor->ExtractText()
- บันทึกข้อความที่แยกออกมาในวัตถุ MemoryStream
- อ่านข้อความเป็นสตริงจาก MemoryStream
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจากหน้าเฉพาะของ PDF ใน C++
auto extractor = MakeObject<Facades::PdfExtractor>();
// ผูกเอกสาร PDF ต้นทาง
extractor->BindPdf(u"candy.pdf");
// กำหนดช่วงหน้า
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// แยกข้อความจาก PDF เป็น PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// บันทึกข้อความลงในสตรีมหน่วยความจำ
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// พิมพ์ข้อความที่แยกออกมา
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
แยกข้อความทีละหน้าจาก PDF ใน C ++
แทนที่จะแยกข้อความทั้งหมดออกจากเอกสาร PDF คุณสามารถแยกข้อความจากทุกหน้าของเอกสารแยกกันได้ ต่อไปนี้เป็นขั้นตอนในการดำเนินการดึงข้อความทีละหน้าจาก PDF
- สร้างวัตถุของคลาส PdfExtractor
- โหลดเอกสาร PDF โดยใช้ฟังก์ชัน PdfExtractor->BindPdf()
- เรียกใช้ฟังก์ชัน PdfExtractor->ExtractText() เพื่อดึงข้อความจากเอกสาร PDF ไปยัง PdfExtractor
- วนซ้ำทุกหน้าโดยใช้ฟังก์ชัน PdfExtractor->HasNextPageText()
- แยกข้อความลงในสตรีมหน่วยความจำโดยใช้ฟังก์ชัน PdfExtractor->GetNextPageText()
- อ่านข้อความจากสตรีมหน่วยความจำ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความทีละหน้าจาก PDF ใน C++
auto extractor = MakeObject<Facades::PdfExtractor>();
// ผูกเอกสาร PDF ต้นทาง
extractor->BindPdf(u"candy.pdf");
// แยกข้อความจาก PDF เป็น PdfExtractor
extractor->ExtractText();
auto unicode = System::Text::Encoding::get_Unicode();
int pageNumber = 1;
while (extractor->HasNextPageText())
{
auto memStream = MakeObject<IO::MemoryStream>();
extractor->GetNextPageText(memStream);
String text;
// ระบุประเภทการเข้ารหัส Unicode ในตัวสร้าง StreamReader
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// พิมพ์ข้อความที่แยกออกมา
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
เรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.PDF for C++
คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.PDF for C++ ได้โดยใช้ เอกสารประกอบ