Bir belgeniz varsa ve o belgenin içindeki görüntüleri başka belgelerde kullanmak istiyorsanız işte çözümlerden biri. Bu makalede, Java kullanarak PDF, Excel, PowerPoint ve Word belgelerinden programlı olarak resim çıkarmayı öğreneceğiz.

Java'daki Belgelerden Görüntüleri Çıkarın

Görüntü Çıkarma Java API’sı

Java'da Belgeleri Ayrıştırın ve Verileri Çıkarın

Görüntülerin çıkarılması için GroupDocs.Parser for Java kullanacağız. Bu Java API, belgelerin ayrıştırılmasını ve kelime işlem belgelerinden, elektronik tablolardan, sunumlardan, arşivlerden ve e-posta belgelerinden resim, metin ve meta verilerin çıkarılmasını destekler. Aşağıdakiler, Java API tarafından görüntü ayıklama için desteklenen belge biçimleridir.

Belge Türü Dosya Biçimleri
Kelime İşlem Belgeleri DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
elektronik tablolar XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, SAYILAR
Sunumlar PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Taşınabilir Belgeler PDF
E-postalar EML, EMLX, MSG
Arşivler posta kodu

Aşağıdaki örneklere başlamadan önce, indirilenler bölümünden belge ayrıştırma Java API’sinin en son sürümünü indirerek ortamı kurmanızı tavsiye ederim veya maven tabanlı java uygulamalarınızda aşağıdaki yapılandırmaları ayarlayabilirsiniz:

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

Java’daki PDF Belgelerinden Görüntüleri Çıkarın

Görüntüleri Çıkarmak için PDF Belgesi

PDF belgesindeki tüm görüntüleri almak için bu basit adımları izleyin.

  1. Ayrıştırıcı sınıf nesnesini örnekleyin.
  2. Tüm görüntüleri almak için Parser sınıfının getImages yöntemini çağırın.
  3. PageImageArea kullanarak görüntüler üzerinde yineleme yapın.
  4. Görüntüleri PageImageArea’nın kaydetme yöntemini kullanarak kaydedin.

Bitti. Aşağıdaki kodun tamamına bakın. Ayıklanan görüntüler BMP, GIF, JPEG, PNG ve WebP formatlarında kaydedilebilir.

// GroupDocs.Parser for Java kullanarak Word, Excel, PowerPoint, PDF Belgelerinden Görüntüleri Programlı Olarak Çıkarın
try (Parser parser = new Parser("path/document.pdf")) {
	// Görüntüleri ayıklayın
	Iterable<PageImageArea> images = parser.getImages();

	// Görüntüleri PNG formatında kaydetmek için seçenekler oluşturun
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Görüntüler üzerinde yineleme yapın ve kaydedin
	for (PageImageArea image : images) {
		// Sayfa dizini, dikdörtgen ve görüntü dosyası türünü yazdırın:
		System.out.println(String.format("Page: %d, R: %s, Type: %s", image.getPage().getIndex(), 
				image.getRectangle(), image.getFileType()));
		image.save(String.format("filesPath/image_%d.png", imageNumber), options);
		imageNumber++;
	}
}

Bunlar, yukarıdaki kod kullanılarak PDF belgesinden alınan görüntülerdir.

Java kullanarak Belgeden Çıkarılan Görüntüler

Java’daki Word, Excel, PowerPoint Dosyalarından Görüntüleri Çıkarın

Benzer şekilde, tüm görüntüler, değişmeyen kod tabanı ile kelime işlemci dosyalarından, elektronik tablolardan, sunumlardan çıkarılabilir. Neyi değiştirmek zorundasın? Yalnızca kaynak belge yolu ve doğru dosya uzantısı.

Parser parser = new Parser("path/document.docx") // Word Document
// Parser parser = new Parser("path/document.xlsx") // Excel Spreadsheet
// Parser parser = new Parser("path/document.pptx") // PowerPoint Presentation
// Parser parser = new Parser("path/document.pdf") // PDF Document

Java’daki Belirli Belge Sayfasından Görüntü Çıkarma

Tüm görüntüleri tüm belgeden değil, belirli bir sayfadan çıkarmak istiyorsanız. Aşağıdaki kod, Java’daki belgenin belirli bir sayfasından görüntüleri nasıl çıkarabileceğimizi gösterir.

// GroupDocs.Parser kullanarak Java'daki Word, Excel, PowerPoint, PDF'nin belirli sayfalarından Görüntüleri Çıkarın
try (Parser parser = new Parser("path/document.pdf"")) {
	// Belge bilgilerini al
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Görüntüleri PNG formatında kaydetmek için seçenekler oluşturun
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Sayfalar üzerinde yineleme
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Sayfa Numaralarını Yazdır
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Görüntüler üzerinde yineleme - Örneklerde NULL-Check'i yoksayma
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Görüntü Bilgilerini Yazdır ve Dosyayı Kaydet
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Çözüm

Bugün, Java’da tüm belgeden ve kelime işlem belgelerinin, elektronik tabloların, sunumların ve PDF’nin belirli bir sayfasından görüntüleri nasıl çıkaracağımızı öğrendik. Farklı dosya biçimlerindeki dosyalardan görüntüleri ayıklamamız gerekirse, kodda bir fark yoktur. Sadece doğru yolu ve ismi geçmek zorundayız. Bu kadar.

Ayrıca bakınız