Java'da pdf dosyası nasıl okunur

PDF en yaygın kullanılan dijital belge formatıdır. PDF belgelerini ayrıştırabilir ve bunlardan metin ve görüntüleri programlı olarak çıkarabiliriz. Metin analizi, bilgi alma, belge dönüştürme vb. gibi birçok durumda yararlı olabilir. Bu makalede, Java kullanarak PDF belgelerinden metin ve görüntülerin nasıl çıkarılacağını öğreneceğiz.

Bu makalede aşağıdaki konular ele alınacaktır:

PDF Belgelerinden Metin ve Görüntü Çıkarmak için Java API

PDF belgelerinden metin ve görsel çıkarmak için GroupDocs.Parser for Java API’sini kullanacağız. Desteklenen formatlar dosyalarından ham, formatlanmış ve yapılandırılmış metin, meta veriler ve görsellerin çıkarılmasına olanak tanır. Lütfen API’nin JAR’ını indirin veya Maven tabanlı bir Java uygulamasına aşağıdaki pom.xml yapılandırmasını ekleyin.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

Java PDF Metin Çıkarma

Aşağıdaki adımları izleyerek herhangi bir PDF belgesini ayrıştırabilir ve metni çıkartabiliriz:

  • Öncelikle Parser sınıfını kullanarak PDF dosyasını yükleyin.
  • Daha sonra, yüklenen belgeden metin çıkarmak için Parser.getText() yöntemini çağırın.
  • Ardından, TextReader sınıf nesnesinde sonuçları alın.
  • Son olarak, metin okuyucunun geçerli konumundan sonuna kadar tüm karakterleri okumak ve bunları tek bir dize olarak döndürmek için TextReader.readToEnd() yöntemini çağırın.

Aşağıdaki kod örneği, Java kullanarak bir PDF dosyasından nasıl metin çıkarılacağını gösterir.

// Bu kod örneği, bir PDF'nin nasıl ayrıştırılacağını ve metnin nasıl çıkarılacağını gösterir.
// Ayrıştırıcı sınıfının bir örneğini oluşturun
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Bir metni okuyucuya çıkarma
try (TextReader reader = parser.getText()) {
    // Belgeden bir metin yazdırma
    // Metin çıkarma desteklenmiyorsa okuyucu boştur
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Java kullanarak PDF Belgelerinden Metin Çıkarma

Java kullanarak PDF Belgelerinden Metin Çıkarma

Java kullanarak bir PDF Belgesinin Belirli Sayfasından Metin Çıkarma

Aşağıda belirtilen basit adımları izleyerek bir PDF belgesini ayrıştırabilir ve belirli bir sayfadaki metni çıkarabilirsiniz:

Aşağıdaki kod örneği, Java kullanarak belirli bir sayfadan nasıl metin çıkarılacağını gösterir.

// Bu kod örneği, bir PDF'nin nasıl ayrıştırılacağını ve belirli bir sayfadan metnin nasıl çıkarılacağını gösterir.
// Ayrıştırıcı sınıfının bir örneğini oluşturun
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Belge bilgilerini alın
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Belgede sayfa olup olmadığını kontrol edin
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// Bir metni okuyucuya çıkarma
try (TextReader reader = parser.getText(1)) {
    // Belgeden bir metin yazdırma
    // Metin çıkarma desteklenmiyorsa okuyucu boştur
    System.out.println(reader.readToEnd());
}

API ayrıca belgenin metin çıkarma özelliğini destekleyip desteklemediğini kontrol etmenizi sağlar. Bu amaçla Parser.getFeatures().isText() özelliğini kullanabiliriz. Lütfen desteklenen özellikler hakkında daha fazla bilgi edinin.

PDF’den Görüntüleri Çıkarma (Java)

Aşağıdaki adımları izleyerek herhangi bir PDF belgesini ayrıştırabilir ve görüntüleri çıkartabiliriz:

  • Öncelikle Parser sınıfını kullanarak PDF dosyasını yükleyin.
  • Daha sonra, Parser.getImages() yöntemini çağırın ve yüklenen belgeden PageImageArea nesnelerinin koleksiyonunu edinin.
  • Ardından koleksiyonun boş olup olmadığını kontrol edin.
  • Bundan sonra bulunan tüm görüntüleri yineleyin.
  • Son olarak görsel ayrıntılarını gösterin.

Aşağıdaki kod örneği, Java kullanarak bir PDF dosyasından görüntü ayrıntılarının nasıl alınacağını gösterir.

// Bu kod örneği, PDF'nin nasıl ayrıştırılacağını ve görüntülerin nasıl alınacağını gösterir.
// Ayrıştırıcı sınıfının bir örneğini oluşturun
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Görüntüleri çıkarın
Iterable<PageImageArea> images = parser.getImages();

// Görüntü çıkarmanın desteklenip desteklenmediğini kontrol edin
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// Görüntüler üzerinde yineleme
for (PageImageArea image : images) {
    // Bir sayfa dizini, dikdörtgen ve resim türü yazdırın:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
Java kullanarak PDF Belgelerinden görseller alın

Java kullanarak PDF Belgelerinden Görüntüler Alın

Java kullanarak bir PDF Belgesinin Belirli Sayfasından Görüntüleri Çıkarma

Aşağıda belirtilen basit adımları izleyerek belirli bir sayfadan görseller çıkarabiliriz:

  • Öncelikle Parser sınıfını kullanarak PDF dosyasını yükleyin.
  • Daha sonra, Parser.getDocumentInfo() yöntemini kullanarak belge bilgilerini alın.
  • Ardından, IDocumentInfo.getPageCount() değerinin sıfır olup olmadığını kontrol edin.
  • Bundan sonra, söz konusu sayfadaki görüntüleri çıkarmak için sayfa dizini ile Parser.getImages() yöntemini çağırın.
  • Son olarak, bulunan tüm görüntüleri yineleyin ve ayrıntıları gösterin.

Aşağıdaki kod örneği, Java kullanarak belirli bir sayfadaki görüntülerin nasıl çıkarılacağını gösterir.

// Bu kod örneği, bir PDF'nin nasıl ayrıştırılacağını ve belirli bir sayfadan görüntülerin nasıl alınacağını gösterir.
// Ayrıştırıcı sınıfının bir örneğini oluşturun
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Belge bilgilerini alın
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Belgede sayfa olup olmadığını kontrol edin
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// Görüntüler üzerinde yineleme
// Görüntü çıkarma özelliği desteğini daha önce kontrol ettiğimizden boş denetimini göz ardı ediyoruz
for (PageImageArea image : parser.getImages(pageIndex)) {
  // Bir sayfa dizini, dikdörtgen ve resim türü yazdırın:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

Java kullanarak Görüntüleri Dosyalara Çıkarma ve Kaydetme

Çıkarılan görüntüleri aşağıdaki adımları izleyerek de kaydedebiliriz:

  • Öncelikle Parser sınıfını kullanarak PDF dosyasını yükleyin.
  • Daha sonra, Parser.getImages() yöntemini çağırın ve yüklenen belgeden PageImageArea nesnelerinin koleksiyonunu edinin.
  • Ardından ImageOptions sınıfının bir örneğini oluşturun ve görüntü formatını ayarlayın.
  • Bundan sonra bulunan tüm görüntüleri yineleyin.
  • Son olarak save() yöntemini kullanarak kaydedin. Bağımsız değişken olarak çıktı dosyası yolunu ve ImageOptions’ı alır.

Aşağıdaki kod örneği, Java kullanarak görüntülerin nasıl ayıklanıp dosyalara kaydedileceğini gösterir.

// Bu kod örneği, dizindeki görüntülerin nasıl çıkarılacağını gösterir.
// Ayrıştırıcı sınıfının bir örneğini oluşturun
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Belgeden görüntüleri çıkarın
Iterable<PageImageArea> images = parser.getImages();

// Görüntü çıkarmanın desteklenip desteklenmediğini kontrol edin
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// Görüntüleri PNG formatında kaydetme seçeneklerini oluşturun
ImageOptions options = new ImageOptions(ImageFormat.Png);

int imageNumber = 0;

// Görüntüler üzerinde yineleme
for (PageImageArea image : images)
{
    // Resmi PNG dosyasına kaydedin
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
Java kullanarak görüntüleri dosyalara ayıklayın ve kaydedin

Java kullanarak görüntüleri dosyalara ayıklayın ve kaydedin

Ücretsiz Lisans Alın

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

Çözüm

Bu makalede şunların nasıl yapılacağını öğrendik:

  • Java kullanarak tüm metni bir PDF belgesinin tamamından veya belgenin belirli sayfalarından çıkarın;
  • PDF dosyasındaki görüntüleri programlı olarak çıkarın;
  • Çıkarılan görüntüleri yerel bir diske kaydedin.

Ayrıca, dokümantasyon‘u kullanarak GroupDocs.Parser for Java API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda lütfen forum üzerinden bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız