البحث عن نص واستبداله في PDF باستخدام C ++

PDF هو تنسيق شائع يستخدم على نطاق واسع لمشاركة المستندات بين المنظمات والأفراد. قد تكون هناك سيناريوهات يتعين عليك فيها البحث عن بعض النصوص واستبدالها في مستندات PDF قبل المشاركة. يمكنك القيام بذلك يدويًا ، لكن هذا قد يستغرق وقتًا أطول ويكون أقل كفاءة. سيكون الخيار الأفضل والأسرع هو القيام بذلك بطريقة برمجية. في هذه المقالة ، ستتعلم كيفية البحث عن نص واستبداله في ملفات PDF باستخدام C ++.

C ++ API للبحث عن النص واستبداله في ملفات PDF

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

PM> Install-Package Aspose.PDF.Cpp

البحث عن نص واستبداله في PDF باستخدام C ++

يوفر Aspose.PDF for C ++ فئة TextFragmentAbsorber للبحث عن نص في مستندات PDF. يمكنك تهيئة هذه الفئة بالنص الذي تريد البحث عنه واستخدامه لاسترداد جميع أجزاء النص المتطابقة. بمجرد توفر جميع الأجزاء ، تقوم باللف عليها واستبدال النص. فيما يلي خطوات البحث عن نص واستبداله في ملفات PDF باستخدام C ++.

فيما يلي نموذج التعليمات البرمجية للبحث عن النص واستبداله في ملف PDF بأكمله باستخدام C ++.

// قم بتحميل ملف PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// تقبل الممتص لجميع الصفحات
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// احصل على أجزاء النص المستخرجة
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// حلقة من خلال الأجزاء
for (auto textFragment : textFragmentCollection)
{
	// تحديث النص وخصائص أخرى
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// احفظ مستند PDF الناتج.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

C ++ البحث عن النص واستبداله في صفحة PDF محددة

قد تكون هناك مواقف تريد فيها فقط البحث عن النص واستبداله في صفحة معينة بدلاً من المستند بأكمله. لهذا ، اقبل الكائن TextFragmentAbsorber للصفحة التي تريد استبدال النص بها. فيما يلي خطوات البحث عن نص واستبداله في صفحة معينة في مستند PDF.

فيما يلي نموذج التعليمات البرمجية للبحث عن نص واستبداله في صفحة PDF معينة باستخدام C ++.

// قم بتحميل ملف PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// قبول الممتص للصفحة الثانية من الوثيقة
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);

// احصل على أجزاء النص المستخرجة
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// حلقة من خلال الأجزاء
for (auto textFragment : textFragmentCollection)
{
	// تحديث النص وخصائص أخرى
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// حفظ مستند PDF الناتج.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");

استبدل النص في منطقة صفحة PDF باستخدام C ++

بدلاً من البحث في الصفحة بأكملها ، يمكنك تحديد منطقة الصفحة التي تريد استبدال النص بها. لهذا ، توفر API فئة Rectangle. فيما يلي خطوات البحث عن نص واستبداله في جزء معين من صفحة PDF.

ما يلي هو نموذج التعليمات البرمجية للبحث عن نص واستبداله في منطقة صفحة PDF معينة.

// قم بتحميل ملف PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// نص البحث داخل حدود الصفحة
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);

// حدد منطقة الصفحة لخيارات TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));

// قبول الممتص للصفحة الأولى من الوثيقة
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);

// احصل على أجزاء النص المستخرجة
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// حلقة من خلال الأجزاء
for (auto textFragment : textFragmentCollection)
{
	// تحديث النص وخصائص أخرى
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// حفظ مستند PDF الناتج.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

البحث عن نص واستبداله في ملفات PDF باستخدام التعبيرات العادية

يوفر Aspose.PDF for C ++ أيضًا القدرة على البحث عن نص باستخدام التعبيرات العادية. باستخدام التعبيرات العادية ، يمكنك العثور على نص مثل عناوين البريد الإلكتروني أو أرقام الهواتف ، وما إلى ذلك. لهذا ، يجب عليك تحديد التعبير العادي بدلاً من سلسلة البحث واستخدام فئة TextSearchOptions للإشارة إلى أنك تستخدم التعبير عن البحث. فيما يلي خطوات البحث عن نص واستبداله في ملفات PDF باستخدام تعبير عادي.

فيما يلي نموذج التعليمات البرمجية للبحث عن نص واستبداله في ملفات PDF باستخدام تعبير عادي.

// قم بتحميل ملف PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");

// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000

// تعيين خيار البحث عن النص لتمكين استخدام التعبير العادي
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);

// قبول الممتص لجميع صفحات الوثيقة
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// احصل على أجزاء النص المستخرجة
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// حلقة من خلال الأجزاء
for (auto textFragment : textFragmentCollection)
{
	// تحديث النص وخصائص أخرى
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// حفظ مستند PDF الناتج.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

احصل على رخصة مجانية

يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مجاني مؤقت.

استنتاج

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

أنظر أيضا