في حالات مختلفة ، قد تحتاج إلى البحث عن جزء معين من النص واستبداله في مستندات PDF. ومع ذلك ، فإن البحث عن كل حدث وتحديثه يدويًا قد يكلفك وقتًا وجهدًا إضافيين. في مثل هذه الحالات ، يجعل خيار البحث والاستبدال حياتك أسهل. في هذه المقالة ، ستتعلم كيفية البحث عن نص واستبداله في مستندات PDF باستخدام Java.
- Java API للبحث عن النص واستبداله في PDF
- البحث عن نص واستبداله في PDF باستخدام Java
- استبدال النص في صفحة معينة في PDF
- استبدل النص باستخدام التعبير العادي
Java API للبحث عن النص واستبداله في PDF - تنزيل مجاني
تم تصميم Aspose.PDF for Java لتوليد ومعالجة ملفات PDF من داخل تطبيقات Java. توفر واجهة برمجة التطبيقات مجموعة واسعة من ميزات معالجة PDF الأساسية والمتقدمة بما في ذلك البحث عن النص واستبداله. يمكنك إما تنزيل API أو تثبيته باستخدام تكوينات Maven التالية.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.1</version>
</dependency>
البحث عن نص واستبداله في PDF باستخدام Java
لاستبدال نص معين في PDF ، ستحصل أولاً على جميع أجزاء النص المطابقة لسلسلة البحث. بمجرد الحصول عليها ، ما عليك سوى استبدال كل جزء بالنص المحدث واحدًا تلو الآخر.
فيما يلي خطوات البحث عن نص واستبداله في ملف PDF باستخدام Java.
- قم بتحميل ملف PDF باستخدام فئة المستند.
- قم بإنشاء كائن من فئة TextFragmentAbsorber وقم بتهيئته بالنص الذي تريد البحث عنه واستبداله.
- تقبل أداة الامتصاص للصفحات في ملف PDF باستخدام طريقة Document.getPages().Accept (TextFragmentAbsorber).
- احصل على جميع تكرارات النص التي تم إرجاعها بواسطة TextFragmentAbsorber.getTextFragments() في كائن TextFragmentCollection.
- قم بعمل تكرار حلقي لكل TextFragment في كائن TextFragmentCollection واستبدل النص باستخدام طريقة TextFragment.setText(String).
- احفظ ملف PDF المحدث باستخدام طريقة Document.save(String).
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن نص واستبداله في PDF.
// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// افتح المستند
Document pdfDocument = new Document("source.pdf");
// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// تقبل الممتص لجميع صفحات الوثيقة
pdfDocument.getPages().accept(textFragmentAbsorber);
// احصل على أجزاء النص المستخرجة في المجموعة
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// حلقة من خلال الأجزاء
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// تحديث النص وخصائص أخرى
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// احفظ ملف PDF المحدث
pdfDocument.save("Updated_Text.pdf");
البحث عن نص واستبداله في صفحة معينة في PDF
بدلاً من البحث عن النص واستبداله في ملف PDF بأكمله ، يمكنك تحديد صفحة واحدة تريد استبدال تكرارات النص عليها. في هذه الحالة ، ستقبل TextFragmentAbsorber لصفحة معينة فقط عن طريق تحديد فهرس الصفحة.
فيما يلي خطوات البحث عن نص واستبداله في صفحة معينة في PDF في Java.
- قم بتحميل ملف PDF باستخدام فئة مستند.
- قم بإنشاء كائن من فئة TextFragmentAbsorber وقم بتهيئته بالنص الذي تريد البحث عنه واستبداله.
- اقبل أداة الامتصاص لصفحة معينة في ملف PDF باستخدام طريقة Document.getPages().getItem (Int pageIndex) .accept (TextFragmentAbsorber).
- احصل على جميع تكرارات النص التي تم إرجاعها بواسطة TextFragmentAbsorber.getTextFragments() في كائن TextFragmentCollection.
- تكرار كل جزء نص في كائن TextFragmentCollection واستبدال النص باستخدام طريقة TextFragment.setText(string).
- احفظ ملف PDF المحدث باستخدام طريقة Document.save(String).
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن نص واستبداله في صفحة معينة في PDF باستخدام Java.
// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// افتح المستند
Document pdfDocument = new Document("source.pdf");
// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// قبول الممتص للصفحة الأولى من الوثيقة
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// احصل على أجزاء النص المستخرجة في المجموعة
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// حلقة من خلال الأجزاء
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// تحديث النص وخصائص أخرى
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// احفظ ملف PDF المحدث
pdfDocument.save("Updated_Text.pdf");
البحث عن نص واستبداله باستخدام التعبيرات العادية في PDF
يمكنك أيضًا تحديد تعبير عادي للبحث في النص الذي يطابق نمطًا معينًا مثل رسائل البريد الإلكتروني وشبكات الأمان الاجتماعي وما إلى ذلك. فيما يلي الخطوات لتحديد واستخدام التعبير العادي للبحث واستبدال النص في PDF باستخدام Java.
- قم بتحميل ملف PDF باستخدام فئة المستند.
- أنشئ كائنًا من فئة TextFragmentAbsorber وقم بتهيئته بالتعبير العادي الذي تريد استخدامه.
- أنشئ كائنًا من فئة TextSearchOptions وقم بتهيئته باستخدام true لتمكين البحث المستند إلى التعبير العادي.
- اضبط الخيارات باستخدام طريقة TextFragmentAbsorber.setTextSearchOptions (TextSearchOptions).
- قبول الامتصاص للصفحات في PDF باستخدام طريقة Document.getPages().Accept (TextFragmentAbsorber).
- احصل على جميع التكرارات التي تم العثور عليها للنص الذي تم إرجاعه بواسطة TextFragmentAbsorber.getTextFragments() في كائن TextFragmentCollection.
- تكرار كل TextFragment في كائن TextFragmentCollection واستبدل النص باستخدام طريقة TextFragment.setText(String).
- احفظ ملف PDF المحدث باستخدام طريقة Document.save(String).
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن نص واستبداله في PDF باستخدام التعبير العادي.
// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// افتح المستند
Document pdfDocument = new Document("input.pdf");
// قم بإنشاء كائن TextAbsorber للعثور على جميع مثيلات عبارة البحث المدخلة
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// تعيين خيار البحث عن النص لتمكين استخدام التعبير العادي
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// تقبل الممتص لجميع صفحات الوثيقة
pdfDocument.getPages().accept(textFragmentAbsorber);
// احصل على أجزاء النص المستخرجة في المجموعة
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// حلقة من خلال الأجزاء
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// تحديث النص وخصائص أخرى
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// احفظ ملف PDF المحدث
pdfDocument.save("Updated_Text.pdf");
احصل على ترخيص API مجاني
يمكنك تجربة API بدون قيود التقييم مجانًا. احصل على رخصة مؤقتة مجانية الآن.
استنتاج
في هذه المقالة ، تعلمت كيفية البحث عن نص واستبداله في PDF باستخدام Java. علاوة على ذلك ، لقد رأيت كيفية استخدام تعبير عادي للبحث واستبدال النص باتباع نمط معين. يمكنك استكشاف المزيد حول Java PDF API باستخدام التوثيق.