ابحث عن كلمة في ملف PDF باستخدام Java

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

تتم مناقشة / تغطية الموضوعات التالية في هذه المقالة:

Java API للبحث عن النص

سأستخدم GroupDocs.Search for Java API للبحث في مستندات PDF. يسمح لك بإجراء عمليات البحث عن نص في جميع تنسيقات المستندات الشائعة مثل PDF و Word و Excel و PowerPoint وغيرها الكثير. يمكنك جلب المعلومات المطلوبة من الملفات والمستندات ورسائل البريد الإلكتروني والمحفوظات بسهولة باستخدام واجهة برمجة التطبيقات هذه. كما أنها تمكنك من إنشاء ودمج فهارس متعددة. يمكنك استخدام تعبير بسيط ، منطقي ، عادي (Regex) ، غامض ، وأنواع أخرى من الاستعلامات للبحث بسرعة وذكاء من خلال الفهارس.

التنزيل والتكوين

يمكنك تنزيل JAR الخاص بواجهة برمجة التطبيقات أو فقط إضافة تكوين pom.xml التالي في تطبيقات Java المستندة إلى Maven لتجربة أمثلة التعليمات البرمجية المذكورة أدناه.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>20.11</version> 
</dependency>

ابحث عن نص في PDF باستخدام Java

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

  • أنشئ فهرس
  • حدد المسار إلى مجلد الفهرس
  • الاشتراك في أحداث الفهرس
  • أضف ملفات إلى الفهرس باستدعاء طريقة إضافة
  • قم بإجراء بحث باستخدام طريقة البحث
  • استخدم SearchResult واطبع الملخص
  • قم بتمييز النتائج التي تم البحث عنها في الإخراج باستخدام طريقة التحديد

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

String indexFolder = "C:\\Index\\"; // Specify the path to the index folder
String documentsFolder = "C:\\Files\\"; // Specify the path to a folder containing documents to search

// قم بإنشاء فهرس جديد أو
// افتح فهرسًا موجودًا
Index index = new Index(indexFolder);

// اشترك في فهرس الأحداث
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
    public void invoke(Object sender, IndexErrorEventArgs args) {
        System.out.println(args.getMessage()); // Writing error messages to the console
    }
});

// أضف الملفات بشكل متزامن
index.add(documentsFolder); // Synchronous indexing documents from the specified folder

// قم بإجراء البحث
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

// استخدم نتائج البحث
// طباعة النتيجة
System.out.println("Documents found: " + result.getDocumentCount());
System.out.println("Total occurrences found: " + result.getOccurrenceCount());
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
}

// قم بتمييز التكرارات في النص
if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0); // Getting the first found document
    String path = "C:\\Output\\Highlighted.html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); // Creating the output adapter to a file
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the HtmlHighlighter object
    index.highlight(document, highlighter); // Generating output HTML formatted document with highlighted search results

    System.out.println();
    System.out.println("Generated HTML file can be opened with Internet browser.");
    System.out.println("The file can be found by the following path:");
    System.out.println(Paths.get(path).toAbsolutePath().toString());
}

يجب أن ينتج عن نموذج الكود أعلاه المخرجات التالية:

Documents found: 1
Total occurrences found: 6
	Document: C:\Files\Lorem ipsum.pdf
	Occurrences: 6

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Output\Highlighted.html
ابحث عن كلمة في مستند PDF باستخدام Java

ابحث عن كلمة في مستند PDF باستخدام Java

حدث الفهرس والفهرس

فئة فهرس هي الفئة الرئيسية لفهرسة المستندات والبحث فيها. يمكن إنشاء فهرس في الذاكرة أو على القرص عن طريق استدعاء مُنشئ هذه الفئة. لقد قمت بإنشائه على القرص حتى يمكن إعادة استخدامه.

لتلقي معلومات حول أخطاء الفهرسة ، اشتركت في حدث ErrorOccurred. سيعرض الأخطاء في حالة حدوث أي منها أثناء فهرسة الملفات.

أضف ملفات إلى الفهرس

تضيف طريقة add لفئة الفهرس ملفًا أو جميع الملفات في مجلد أو مجلدات فرعية بواسطة مسار مطلق أو نسبي. سيتم فهرسة جميع المستندات الموجودة على المسار المحدد.

قم بإجراء عملية بحث

توفر فئة الفهرس طرق بحث مختلفة لإجراء عملية البحث. يمكنك البحث بكلمة مفتاحية بسيطة أو بتحديد SearchQuery.

توفر فئة SearchResult تفاصيل نتيجة البحث المطابقة لاستعلام البحث. بعض الطرق موصوفة هنا:

قم بتمييز نتائج البحث

تسهل فئة HtmlHighlighter إبراز نتائج البحث في نص مستند كامل منسق بتنسيق HTML.

تقوم طريقة تمييز لفئة الفهرس بتوليد إخراج HTML يبرز تكرارات المصطلحات التي تم العثور عليها. يمكنك العثور على مزيد من التفاصيل حول “Highlighting Search Results” في الوثائق.

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

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

استنتاج

في هذه المقالة ، تعلمت كيفية البحث عن كلمة في مستند PDF باستخدام Java. يمكنك معرفة المزيد حول GroupDocs. ابحث عن Java API باستخدام التوثيق. في حالة وجود أي غموض ، فلا تتردد في الاتصال بنا على المنتدى.

أنظر أيضا