Bu gönderide, Java kullanarak PDF dosyalarından nasıl sorunsuz bir şekilde metin çıkaracağınızı öğreneceksiniz. Metin çıkarma, metin analizi, bilgi alma, belge ayrıştırma vb. gibi çeşitli senaryolarda yararlı olabilir. PDF en yaygın kullanılan dijital belgelerden biri olduğundan, PDF belgelerinden metin çıkarma kullanım durumları daha fazladır. Öyleyse başlayalım ve Java uygulamalarından PDF metin ayıklamanın nasıl gerçekleştirileceğini kontrol edelim.
- Java Metin Çıkarma API’sı - Ücretsiz İndirme
- Java kullanarak PDF’den Metin Çıkarma
- PDF’deki Belirli Sayfadan Metin Çıkarın
- PDF’deki Bir Sayfa Bölgesinden Metin Çıkarma
PDF’den Metin Çıkarmak için Java API - Ücretsiz İndirme
Aspose.PDF for Java, PDF dosyalarını oluşturmak ve işlemek için çok çeşitli özellikler sağlayan, iyi bilinen bir PDF dosyası işleme API’sidir. API, birkaç kod satırıyla PDF belgelerinden metin ayıklamanın çeşitli yollarını sağlayan güçlü bir metin çıkarıcı içerir. API’nin JAR’ını indirebilir veya aşağıdaki yapılandırmaları kullanarak Maven tabanlı uygulamalarınıza kurabilirsiniz.
<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>20.11</version>
</dependency>
Java kullanarak PDF’den Metin Çıkarma
Aşağıda, Aspose.PDF for Java kullanarak bir PDF belgesinden metin ayıklamak için izlenecek adımlar yer almaktadır.
- PDF dosyasını yüklemek için Belge sınıfını kullanın.
- TextAbsorber sınıfından bir nesne oluşturun.
- Document.getPages().accept(TextAbsorber) yöntemini kullanarak PDF’nin tüm sayfaları için TextAbsorber’ı kabul edin.
- PDF’den tüm metni almak için TextAbsorber.getText() yöntemini kullanın.
- Metni bir TXT dosyasına kaydedin (isteğe bağlı).
Aşağıdaki kod örneği, Java kullanılarak PDF’den nasıl metin çıkarılacağını gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Belgeyi aç
Document pdfDocument = new Document("input.pdf");
// Metni çıkarmak için TextAbsorber nesnesi oluşturun
TextAbsorber textAbsorber = new TextAbsorber();
// Tüm sayfalar için emiciyi kabul edin
pdfDocument.getPages().accept(textAbsorber);
// Ayıklanan metni al
String extractedText = textAbsorber.getText();
// Bir yazar oluşturun ve dosyayı açın
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// tw.WriteLine(extractedText) dosyasına bir satır metin yazın;
// akışı kapat
writer.close();
PDF’deki Belirli Sayfadan Metin Çıkarın
Aşağıdaki adımları kullanarak PDF belgesinin belirli bir sayfasından da metin çıkarabilirsiniz.
- PDF dosyasını yüklemek için Belge sınıfını kullanın.
- TextDevice sınıfının bir örneğini oluşturun.
- TextExtractionOptions sınıfını kullanarak ek seçenekler tanımlayın.
- TextDevice.setExtractionOptions(TextExtractionOptions) yöntemini kullanarak seçenekleri ayarlayın.
- Metni belirtilen sayfadan çıkarmak için TextDevice.Process(Page, String) kullanın.
Aşağıdaki kod örneği, Java kullanarak PDF’deki belirli bir sayfadan nasıl metin çıkarılacağını gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// belgeyi aç
Document pdfDocument = new Document("input.pdf");
// metin cihazı oluştur
TextDevice textDevice = new TextDevice();
// metin çıkarma seçeneklerini ayarla - metin çıkarma modunu ayarla (Ham veya Saf)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// metni PDF'nin ilk sayfasından alın ve dosya biçiminde kaydedin
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
PDF’deki Bir Sayfa Bölgesinden Metin Çıkarma
PDF’de sayfanın belirli bir bölgesinden de metin çıkarabilirsiniz. Bunun için, metni çıkartmanız gereken bölgeyi kapsayacak şekilde bir dikdörtgen tanımlayabilirsiniz. Aşağıdakiler, bir sayfa bölgesinden metin ayıklama adımlarıdır.
- PDF dosyasını yüklemek için Belge sınıfını kullanın.
- TextAbsorber sınıfından bir nesne oluşturun.
- Sayfa bağlama sınırını ayarlayın ve TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) ve TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)) öğelerini kullanarak bir dikdörtgen oluşturun ] yöntemleri sırasıyla.
- Belirli bir sayfa için emiciyi kabul edin.
- Metni çıkarmak için TextAbsorber.getText() yöntemini kullanın.
Aşağıdaki kod örneği, Java’da belirli bir sayfa bölgesinden metnin nasıl çıkarılacağını gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// belgeyi aç
Document doc = new Document("page_0001.pdf");
// metni ayıklamak için TextAbsorber nesnesi oluşturun
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// emiciyi ilk sayfa için kabul et
doc.getPages().get_Item(1).accept(absorber);
// çıkarılan metni al
String extractedText = absorber.getText();
// bir yazar oluştur ve dosyayı aç
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// çıkarılan içerikleri yaz
writer.write(extractedText);
// yazarı kapat
writer.close();
Çözüm
Bu makalede, Java kullanarak PDF’den nasıl metin çıkarılacağını öğrendiniz. Tüm bir PDF’den, belirli bir sayfadan veya belirli bir sayfa bölgesinden metin ayıklamak gibi çeşitli metin çıkarma yöntemleri gördünüz. Belgeleri kullanarak Java PDF API hakkında daha fazla bilgi edinebilirsiniz.
Ayrıca bakınız
Bilgi: Aspose kısa bir süre önce, metinleri canlandırmanıza veya basit metinlerden GIF’ler oluşturmanıza olanak tanıyan ücretsiz bir çevrimiçi Metin’den GIF’e hizmeti geliştirdi.