PDF هو تنسيق شائع يستخدم على نطاق واسع لمشاركة المستندات بين المنظمات والأفراد. قد تكون هناك سيناريوهات يتعين عليك فيها البحث عن بعض النصوص واستبدالها في مستندات PDF قبل المشاركة. يمكنك القيام بذلك يدويًا ، لكن هذا قد يستغرق وقتًا أطول ويكون أقل كفاءة. سيكون الخيار الأفضل والأسرع هو القيام بذلك بطريقة برمجية. في هذه المقالة ، ستتعلم كيفية البحث عن نص واستبداله في ملفات PDF باستخدام C ++.
- C ++ API للبحث عن النص واستبداله في ملفات PDF
- البحث عن نص واستبداله في PDF باستخدام C ++
- C ++ البحث عن النص واستبداله في صفحة PDF محددة
- استبدل النص في منطقة صفحة PDF باستخدام C ++
- البحث عن نص واستبداله في ملفات PDF باستخدام التعبيرات العادية
- احصل على رخصة مجانية
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 باستخدام فئة المستند.
- قم بإنشاء مثيل لفئة TextFragmentAbsorber وقم بتهيئته بالنص الذي تريد البحث عنه في ملف PDF.
- اقبل TextFragmentAbsorber للصفحات باستخدام Document-> getPages() -> Accept (System :: SharedPtrText::TextFragmentAbsorber زائر) طريقة.
- استرجع كل تكرارات النص باستخدام طريقة TextFragmentAbsorber-> getTextFragments().
- قم بالتكرار خلال TextFragmentCollection وقم بتحديث النص باستخدام طريقة TextFragment-> setText (System :: String value).
- احفظ ملف PDF المحدث باستخدام طريقة Document-> Save (System :: String outputFileName).
فيما يلي نموذج التعليمات البرمجية للبحث عن النص واستبداله في ملف 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 باستخدام فئة المستند.
- قم بإنشاء مثيل لفئة TextFragmentAbsorber وقم بتهيئته بالنص الذي تريد البحث عنه في ملف PDF.
- اقبل TextFragmentAbsorber لصفحة معينة باستخدام Document-> getPages() -> idxget (int32t index) -> Accept (System :: SharedPtrText::TextFragmentAbsorber زائر) طريقة.
- استرجع كل تكرارات النص باستخدام طريقة TextFragmentAbsorber-> getTextFragments().
- قم بالتكرار خلال TextFragmentCollection وقم بتحديث النص باستخدام طريقة TextFragment-> setText (System :: String value).
- احفظ ملف PDF المحدث باستخدام طريقة Document-> Save (System :: String outputFileName).
فيما يلي نموذج التعليمات البرمجية للبحث عن نص واستبداله في صفحة 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 باستخدام فئة Document.
- قم بإنشاء مثيل لفئة TextFragmentAbsorber وقم بتهيئتها بالنص الذي تريد البحث عنه واستبداله في ملف PDF.
- قم بتعيين منطقة الصفحة للبحث باستخدام TextFragmentAbsorber-> getTextSearchOptions() -> setRectangle (System :: SharedPtr value).
- اقبل TextFragmentAbsorber لصفحة معينة باستخدام Document-> getPages() -> idxget (int32t index) -> Accept (System :: SharedPtrText::TextFragmentAbsorber زائر) طريقة.
- استرجع كل تكرارات النص باستخدام طريقة TextFragmentAbsorber-> getTextFragments().
- قم بالتكرار خلال TextFragmentCollection وقم بتحديث النص باستخدام طريقة TextFragment-> setText (System :: String value).
- احفظ ملف PDF المحدث باستخدام طريقة Document-> Save (System :: String outputFileName).
ما يلي هو نموذج التعليمات البرمجية للبحث عن نص واستبداله في منطقة صفحة 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 باستخدام فئة المستند.
- قم بإنشاء مثيل لفئة TextFragmentAbsorber وقم بتهيئته بالتعبير العادي الذي تريد استخدامه.
- قم بتهيئة فئة TextSearchOptions وتمريرها إلى منشئها. سيشير إلى أنك تبحث باستخدام تعبير عادي.
- قم بتعيين كائن TextSearchOptions إلى فئة TextFragmentAbsorber باستخدام TextFragmentAbsorber-> setTextSearchOptions (System :: SharedPtrAspose::Pdf::Text::TextSearchOptions القيمة) طريقة.
- اقبل TextFragmentAbsorber للصفحات باستخدام Document-> getPages() -> Accept (System :: SharedPtrText::TextFragmentAbsorber زائر) طريقة.
- استرجع كل تكرارات النص باستخدام طريقة TextFragmentAbsorber-> getTextFragments().
- قم بالتكرار خلال TextFragmentCollection وقم بتحديث النص باستخدام طريقة TextFragment-> setText (System :: String value).
- احفظ ملف PDF المحدث باستخدام طريقة Document-> Save (System :: String outputFileName).
فيما يلي نموذج التعليمات البرمجية للبحث عن نص واستبداله في ملفات 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 بالتفصيل باستخدام الوثائق الرسمية. إذا كان لديك أي أسئلة ، فلا تتردد في الاتصال بنا على المنتدى.