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.
- Görüntü Çıkarma Java API’sı
- Java’daki PDF belgelerinden Görüntü Çıkarma
- Java’daki Word, Excel, PowerPoint belgelerinden Görüntüleri Çıkarın
- Java’daki Belirli Sayfadan Görüntü Çıkarın
Görüntü Çıkarma Java API’sı
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 | |
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
PDF belgesindeki tüm görüntüleri almak için bu basit adımları izleyin.
- Ayrıştırıcı sınıf nesnesini örnekleyin.
- Tüm görüntüleri almak için Parser sınıfının getImages yöntemini çağırın.
- PageImageArea kullanarak görüntüler üzerinde yineleme yapın.
- 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’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.