استخراج النص من PDF C++

يحتوي استخراج النص من المستندات (PDF ، ومعالجة الكلمات ، وصفحات الويب ، وما إلى ذلك) على مجموعة متنوعة من حالات الاستخدام في عالم المعلومات الرقمية. على سبيل المثال ، يمكن استخدامه لتحليل المستندات وإجراء تحليل النص واسترجاع المعلومات وتخزين محتوى المستندات في قواعد البيانات وما إلى ذلك. إذا قمنا بتضييقه ، فإن PDF هو أحد أكثر تنسيقات المستندات استخدامًا للاحتفاظ بالمعلومات الرقمية ومشاركتها. هذه الشعبية تجعل مستندات PDF مصدرًا ضخمًا للمعلومات. لذلك ، يمكن أن يكون تحليل النص أو استخراجه من مستندات PDF متضمنًا في عدد من سيناريوهات تحليل النص.

من أجل أتمتة تحليل PDF في تطبيقات C++ ، توضح هذه المقالة كيفية استخراج النص من مستندات PDF باستخدام C++. يغطي سيناريوهات استخراج النص التالية:

  • استخراج نص من مستند PDF باستخدام C++.
  • استخراج نص من صفحات معينة في مستند PDF باستخدام C++.
  • استخراج نص صفحة بصفحة من مستند PDF باستخدام C++.

قارئ C++ PDF ومكتبة مستخرج النصوص

لاستخراج النص من مستندات PDF ، سنستخدم Aspose.PDF for C++ وهي مكتبة PDF قوية لإنشاء مستندات PDF وتحويلها وتحليلها. يمكنك تنزيل ملفات المكتبة بالإضافة إلى نماذج التعليمات البرمجية قيد التشغيل من قسم التنزيلات.

استخراج نص من ملف PDF باستخدام C++

يتيح لك Aspose.PDF for C++ تحليل مستندات PDF في بضع خطوات بسيطة. فيما يلي وصفة لاستخراج نص من مستند PDF.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج نص من ملف 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.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج نص من صفحات معينة من 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.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج نص صفحة بصفحة من 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 لـ C++

يمكنك استكشاف المزيد حول Aspose.PDF لـ C++ باستخدام التوثيق.

أنظر أيضا