แยกข้อความจาก PDF C ++

การแยกข้อความจากเอกสาร (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++ ได้โดยใช้ เอกสารประกอบ

ดูสิ่งนี้ด้วย