في هذه المقالة ، سأوضح كيفية البحث عن النص واستبداله في مستندات Word (DOC / DOCX) برمجيًا باستخدام Java. سيغطي الدليل التدريجي وعينات التعليمات البرمجية سيناريوهات مختلفة للبحث عن النص واستبداله في مستندات Word.
يوفر MS Word طريقة سهلة للعثور على النص واستبداله في المستندات. قد تكون إحدى حالات الاستخدام الشائعة للبحث عن النص واستبداله هي إزالة المعلومات الحساسة أو استبدالها داخل المستندات قبل مشاركتها بين الكيانات المختلفة. ومع ذلك ، قد تتطلب منك العملية اليدوية تثبيت MS Word وتحديث كل مستند على حدة. في مثل هذه الحالات ، سيكون مفيدًا وموفرًا للوقت خاصةً عند دمج ميزات البحث والاستبدال داخل سطح المكتب أو تطبيق الويب. لذلك دعونا نبدأ ونرى كيفية البحث عن نص واستبداله في مستندات Word باستخدام Java في سيناريوهات مختلفة.
- البحث عن نص واستبداله في Word DOC / DOCX باستخدام Java
- استبدل الكلمات المتشابهة بناءً على نمط Regex في Word DOC / DOCX
- البحث عن نص واستبداله في رأس / تذييل مستند Word
- البحث عن نص واستبداله بأحرف وصفية في Word DOC / DOCX
Java API للبحث عن النص واستبداله في مستندات Word
من أجل تنفيذ ميزة البحث والاستبدال ، سنستخدم Aspose.Words for Java وهي واجهة برمجة تطبيقات معالجة كلمات قوية وغنية بالميزات وسهلة الاستخدام لمنصة Java. يمكنك إما تنزيل JAR الخاص به أو تثبيته داخل التطبيق المستند إلى 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-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
البحث عن نص واستبداله في مستندات Word (DOC / DOCX) باستخدام Java
لنبدأ بمعالجة سيناريو بحث واستبدال بسيط حيث سنجد كلمة “حزين” في مستند Word المدخل. فيما يلي خطوات إجراء هذه العملية.
- قم بإنشاء مثيل لفئة Document وتمرير مسار مستند Word إليه.
- ابحث عن نص واستبدله باستخدام طريقة Document.getRange.replace (String ، String ، FindReplaceOptions).
- احفظ المستند باستخدام طريقة Document.save(String).
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن نص واستبداله في مستندات Word DOCX باستخدام Java.
// قم بتحميل مستند Word DOCX
Document doc = new Document("document.docx");
// ابحث عن النص واستبدله في المستند
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// احفظ مستند Word
doc.save("Find-And-Replace-Text.docx");
يوجد أدناه إدخال مستند Word الذي استخدمناه في هذه المقالة.
التالي هو الناتج بعد البحث عن كلمة “حزين” واستبدالها.
البحث عن الكلمات المتشابهة واستبدالها في Word DOC / DOCX باستخدام Java
يمكنك أيضًا تخصيص واجهة برمجة التطبيقات للبحث عن النص واستبداله بناءً على التشابه. على سبيل المثال ، الكلمات “حزين” و “مجنون” و “سيئ” تتبع نمطًا مشابهًا ينتهي بالكلمة “إعلان”. معرفات البريد الإلكتروني هي مثال آخر على مثل هذا النص. في مثل هذه الحالات ، يمكنك تحديد نمط regex للبحث عن واستبدال كل تكرارات النص التي لها نمط معين. فيما يلي الخطوات لتحقيق ذلك.
- قم بإنشاء مثيل لفئة Document وتمرير مسار مستند Word إليه.
- حدد نمط regex باستخدام طريقة Pattern.compile() وقم بتمريره إلى طريقة Document.getRange().استبدل (Pattern pattern، String replace، FindReplaceOptions options).
- احفظ المستند المحدث باستخدام طريقة Document.save(String).
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن الكلمات المتشابهة واستبدالها بناءً على نمط معين باستخدام Java.
// قم بتحميل مستند Word DOCX
Document doc = new Document("document.docx");
// ابحث عن الكلمات المتشابهة في المستند واستبدلها
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// احفظ مستند Word
doc.save("Find-And-Replace-Text.docx");
فيما يلي لقطة شاشة من مستند Word بعد تحديث الكلمات المتشابهة.
استبدال النص في رأس / تذييل مستند Word
يسمح لك Aspose.Words أيضًا بالعثور على النص واستبداله فقط في رأس / تذييل مستند Word. فيما يلي خطوات إجراء هذه العملية.
- قم بإنشاء مثيل لفئة Document وقم بتمرير مسار مستند Word إليه.
- احصل على HeaderFooterCollection من المستند باستخدام طريقة Document.getFirstSection().getHeadersFooters().
- استرداد رأس / تذييل معين في كائن HeaderFooter.
- استخدم طريقة HeaderFooter.getRange().replace() للبحث عن النص واستبداله.
- احفظ مستند Word المحدث.
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن النص واستبداله في رأس / تذييل مستند Word باستخدام Java.
// قم بتحميل مستند Word DOCX
Document doc = new Document("document.docx");
// الوصول إلى مجموعة رأس التذييل
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// تعيين خيارات البحث والاستبدال
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// احفظ مستند Word
doc.save("Find-And-Replace-Text.docx");
تُظهر لقطة الشاشة التالية النص المحدث في تذييل مستند Word.
البحث عن النص واستبداله بأحرف وصفية في Word DOCX باستخدام Java
قد تكون هناك حالة عندما تحتاج إلى البحث عن عبارة مقسمة إلى عدة أسطر أو فقرات واستبدالها. في مثل هذه الحالات ، سيتعين عليك الاهتمام بالفقرة أو القسم أو فواصل الأسطر. يجعل Aspose.Words for Java من السهل عليك التعامل مع مثل هذه الحالات بسهولة تامة. فيما يلي الأحرف الوصفية التي يمكنك استخدامها لفواصل مختلفة:
- & p: فاصل فقرة
- & ب: فاصل مقطعي
- & م: فاصل صفحة
- & l: فاصل الأسطر
يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن النص واستبداله بفاصل فقرة في مستند Word.
// قم بتحميل مستند Word DOCX
Document doc = new Document("document.docx");
// اضبط الخيارات
FindReplaceOptions options = new FindReplaceOptions();
// تعطيل مطابقة الحالة وإيجاد الكلمات الكاملة فقط
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// استبدال النص بفاصل الفقرة
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// احفظ مستند Word
doc.save("Find-And-Replace-Text.docx");
فيما يلي لقطة شاشة من مستند Word الناتج.
استنتاج
في هذه المقالة ، رأيت كيفية البحث عن نص واستبداله في مستندات Word DOC / DOCX برمجيًا باستخدام Java. تمت معالجة سيناريوهات مختلفة للعثور على النص واستبداله في ملفات MS Word DOCX بمساعدة عينات التعليمات البرمجية. يمكنك معرفة المزيد حول Aspose.Words for Java من التوثيق.