Cari kata dalam PDF menggunakan Java

Anda mungkin perlu mencari teks tertentu dari dokumen Word atau PDF. Sebagai pengembang Java, Anda dapat mencari teks apa pun dari dokumen PDF secara terprogram. Pada artikel ini, Anda akan mempelajari cara mencari kata dalam dokumen PDF menggunakan Java. Topik-topik berikut dibahas/dibahas dalam artikel ini:

API Java untuk Mencari Teks

Saya akan menggunakan GroupDocs.Search for Java API untuk mencari di dokumen PDF. Ini memungkinkan Anda untuk melakukan operasi pencarian teks di semua format dokumen populer seperti PDF, Word, Excel, PowerPoint, dan banyak lagi. Anda dapat mengambil informasi yang diperlukan dari file, dokumen, email, dan arsip dengan mudah menggunakan API ini. Ini juga memungkinkan Anda untuk membuat dan menggabungkan beberapa indeks. Anda dapat menggunakan sederhana, Boolean, Ekspresi Reguler (Regex), Fuzzy, dan jenis kueri lainnya untuk menelusuri indeks dengan cepat dan cerdas.

Unduh dan Konfigurasi

Anda dapat mengunduh JAR API atau cukup menambahkan konfigurasi pom.xml berikut di aplikasi Java berbasis Maven Anda untuk mencoba contoh kode yang disebutkan di bawah ini.

<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>

Cari Teks dalam PDF menggunakan Java

Anda dapat dengan mudah mencari teks atau kata tertentu dalam dokumen PDF Anda dengan mengikuti langkah-langkah sederhana yang disebutkan di bawah ini:

  • Buat Indeks
  • Tentukan jalur ke folder indeks
  • Berlangganan ke acara indeks
  • Tambahkan file ke Indeks dengan memanggil metode add.
  • Lakukan pencarian menggunakan metode search.
  • Gunakan SearchResult dan cetak ringkasan
  • Sorot hasil yang dicari di output menggunakan metode highlight. Contoh kode berikut menunjukkan cara mencari kata dari dokumen PDF menggunakan 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
    // Create a new index or
    // Open an existing index
    Index index = new Index(indexFolder);
    // Subscribe to index events
    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
    }
    });
    // Add files synchronously
    index.add(documentsFolder); // Synchronous indexing documents from the specified folder
    // Perform search
    String query = "elementum"; // Specify a search query
    SearchResult result = index.search(query); // Searching in the index
    // Use search results
    // Printing the result
    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());
    }
    // Highlight occurrences in text
    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());
    }
    Contoh kode di atas akan menghasilkan output berikut:
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
Cari kata dalam dokumen PDF menggunakan Java

Cari kata dalam dokumen PDF menggunakan Java

Indeks dan Acara Indeks

Kelas Index adalah kelas utama untuk mengindeks dokumen dan menelusurinya. Indeks dapat dibuat di memori atau di disk dengan memanggil konstruktor kelas ini. Saya telah membuatnya di disk sehingga dapat digunakan kembali. Untuk menerima informasi tentang kesalahan pengindeksan, saya telah berlangganan ke acara ErrorOccurred. Ini akan menunjukkan kesalahan jika terjadi selama pengindeksan file.

Tambahkan File ke Indeks

Metode add dari kelas Index menambahkan file atau semua file dalam folder atau subfolder dengan jalur absolut atau relatif. Semua dokumen di jalur yang diberikan akan diindeks.

Melakukan Operasi Pencarian

Kelas Index menyediakan berbagai metode search untuk melakukan operasi pencarian. Anda dapat mencari dengan kata kunci sederhana atau dengan menentukan SearchQuery. Kelas SearchResult memberikan detail hasil penelusuran yang cocok dengan kueri penelusuran. Beberapa metode dijelaskan di sini:

Sorot Hasil Penelusuran

Kelas HtmlHighlighter memfasilitasi penyorotan hasil pencarian di seluruh teks dokumen yang diformat dalam HTML. Metode highlight dari kelas Index menghasilkan keluaran HTML yang menyoroti kemunculan istilah yang ditemukan. Anda dapat menemukan detail lebih lanjut tentang “Menyorot Hasil Pencarian” di dokumentasi.

Dapatkan Lisensi Gratis

Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mencari kata dalam dokumen PDF menggunakan Java. Anda dapat mempelajari lebih lanjut tentang GroupDocs.Search for Java API menggunakan dokumentasi. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum.

Lihat juga