Java kullanarak PDF'de bir kelime arayın

Word veya PDF belgelerinden belirli bir metni aramanız gerekebilir. Bir Java geliştiricisi olarak, PDF belgelerindeki herhangi bir metni programlı olarak arayabilirsiniz. Bu makalede, Java kullanarak PDF belgelerinde bir kelimeyi nasıl arayacağınızı öğreneceksiniz.

Bu makalede aşağıdaki konular tartışılmaktadır/kapsanmaktadır:

Metin Aramak için Java API

PDF belgelerinde arama yapmak için GroupDocs.Search for Java API’sini kullanacağım. PDF, Word, Excel, PowerPoint ve çok daha fazlası gibi tüm popüler belge formatlarında metin arama işlemlerini gerçekleştirmenize olanak tanır. Bu API’yi kullanarak gerekli bilgilerinizi dosyalardan, belgelerden, e-postalardan ve arşivlerden kolayca alabilirsiniz. Ayrıca birden fazla dizin oluşturmanıza ve birleştirmenize olanak tanır. Dizinlerde hızlı ve akıllı bir şekilde arama yapmak için basit, Boolean, Normal İfade (Regex), Fuzzy ve diğer sorgu türlerini kullanabilirsiniz.

İndirin ve Yapılandırın

Aşağıda belirtilen kod örneklerini denemek için API’nin JAR’ını indirebilir veya yalnızca aşağıdaki pom.xml yapılandırmasını Maven tabanlı Java uygulamalarınıza ekleyebilirsiniz.

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

Java kullanarak PDF’de Metin Arama

Aşağıda belirtilen basit adımları izleyerek PDF belgelerinizdeki herhangi bir metni veya belirli bir kelimeyi kolayca arayabilirsiniz:

  • Bir Dizin oluşturun
  • Dizin klasörünün yolunu belirtin
  • [Dizin etkinliklerine] abone olun8
  • add yöntemini çağırarak dosyaları Dizine ekleyin
  • search yöntemini kullanarak arama yapın
  • AramaSonucu‘i kullanın ve özeti yazdırın
  • highlight yöntemini kullanarak çıktıda aranan sonuçları vurgulayın

Aşağıdaki kod örneği, Java kullanarak bir PDF belgesinden bir sözcüğün nasıl aranacağını gösterir.

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

// Yeni bir dizin oluşturun veya
// Mevcut bir dizini aç
Index index = new Index(indexFolder);

// Dizin etkinliklerine abone olun
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
    }
});

// Dosyaları eşzamanlı olarak ekleyin
index.add(documentsFolder); // Synchronous indexing documents from the specified folder

// Arama gerçekleştir
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

// Arama sonuçlarını kullan
// Sonucun yazdırılması
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());
}

// Metindeki oluşumları vurgulayın
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());
}

Yukarıdaki kod örneği aşağıdaki çıktıyı oluşturacaktır:

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
Java kullanarak PDF belgesinde bir kelime arayın

Java kullanarak PDF belgesinde bir kelime arayın

Dizin ve Dizin Etkinliği

Index sınıfı, belgeleri indekslemek ve bunlar arasında arama yapmak için kullanılan ana sınıftır. Bu sınıfın yapıcısı çağrılarak bellekte veya diskte bir dizin oluşturulabilir. Tekrar kullanılabilmesi için diskte oluşturdum.

İndeksleme hataları hakkında bilgi almak için ErrorOccurred olayına abone oldum. Dosyaların indekslenmesi sırasında herhangi bir hata meydana gelmişse, hataları gösterecektir.

Dosyaları Dizine Ekle

Index sınıfının add yöntemi, bir dosyayı veya bir klasör veya alt klasörlerdeki tüm dosyaları mutlak veya göreceli bir yolla ekler. Verilen yoldaki tüm belgeler indekslenecektir.

Arama İşlemi Gerçekleştirin

Index sınıfı, arama işlemini gerçekleştirmek için çeşitli arama yöntemleri sağlar. Basit bir anahtar kelimeye göre veya bir AramaSorgusu tanımlayarak arama yapabilirsiniz.

SearchResult sınıfı, bir arama sorgusuyla eşleşen arama sonucunun ayrıntılarını sağlar. Yöntemlerden bazıları burada açıklanmaktadır:

Arama Sonuçlarını Vurgulayın

HtmlHighlighter sınıfı, HTML ile biçimlendirilmiş bir belge metninin tamamında arama sonuçlarının vurgulanmasını kolaylaştırır.

Index sınıfının highlight yöntemi, bulunan terimlerin oluşumlarını vurgulayan HTML çıktısı üretir. “Arama Sonuçlarını Vurgulama" hakkında daha fazla ayrıntıyı belgelerde bulabilirsiniz.

Ücretsiz Lisans Alın

Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmadan deneyebilirsiniz.

Çözüm

Bu makalede, Java kullanarak bir PDF belgesinde bir sözcüğü nasıl arayacağınızı öğrendiniz. GroupDocs.Search for Java API hakkında daha fazla bilgiyi belgeleri kullanarak öğrenebilirsiniz. Herhangi bir belirsizlik durumunda lütfen forum üzerinden bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız