ZIP dosyaları genellikle birden fazla dosyayı tek bir arşivde sıkıştırmak ve paketlemek için kullanılır. Bu dosyaların PDF formatına dönüştürülmesi rapor oluşturmak, belgeleri arşivlemek veya standart bir formatta bilgi paylaşmak gibi çeşitli amaçlar için faydalı olabilir. Bu eğitimde, bir ZIP dosyasını Java kullanarak PDF belgesine nasıl dönüştüreceğimizi inceleyeceğiz.
ZIP’i neden PDF’ye dönüştürmelisiniz?
Farklı kullanım durumları için ZIP dosyalarını PDF formatına dönüştürmeniz gerekebilir. Burada dönüşümün birkaç nedenini tartışıyoruz:
Rapor Oluşturma: ZIP dosyalarından veri çıkarıp bunları formatlanmış bir belgede sunarak PDF raporları oluşturun.
Belge Arşivleme: Kolay arşivleme ve erişim için ZIP arşivinde saklanan birden çok belgeyi veya dosyayı tek bir PDF’ye dönüştürün.
Belge Standardizasyonu: Daha kolay paylaşım ve görüntüleme için ZIP arşivindeki çeşitli dosya formatlarını tek tip bir PDF formatına dönüştürün.
ZIP’den PDF’ye Dönüştürücü - Java Ortamı Yapılandırması
Geliştirme ortamını yapılandırmanız, Java kodunu çalıştırmanız ve özelliği sisteminize yerleştirmeniz gerekir.
- Sisteminizde Java Development Kit’in (JDK) kurulu olduğundan emin olun.
- Java geliştirme için IntelliJ IDEA, Apache NetBeans gibi bir Entegre Geliştirme Ortamına (IDE) sahip olduğunuzdan emin olun.
- Ayrıca, Conholdate.Total for Java JAR dosyasını indirin veya aşağıdaki Maven yapılandırmalarını kullanın:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>
Java’da ZIP’i PDF’ye dönüştürün
Aşağıdaki adımlar Java’da ZIP’in PDF’ye nasıl dönüştürüleceğini göstermektedir:
- Giriş ZIP dosyasını kullanarak bir ZipInputStream nesnesini başlatın.
- Çıkarılan dosyaların kaydedileceği çıktı dizinini belirtin.
- Giriş ZIP dosyasındaki her dosyayı yineleyin ve onu çıkış dizinine çıkarın.
- Sıkıştırılmış klasörden çıkartılan dosyaların adlarını saklamak için geçici bir liste tutun.
- Sıkıştırılmış klasörden tüm dosyaların listesini (tam yolları dahil) alın.
- Çıkarılan her dosyayı yineleyin ve PDF formatına dönüştürün.
- Dönüştürülen PDF dosyalarını birleştirin.
- Geçici listeden ilk giriş PDF belgesiyle Merger sınıfının bir örneğini oluşturun.
- İkinci dosyadan başlayarak dönüştürülen PDF belgelerinin listesini yineleyin.
- Birleştirilmiş PDF belgesini kaydetmek için Merger sınıfı örneğinin kaydetme yöntemini çağırın.
Aşağıdaki örnek kod, Java’da ZIP’in PDF’ye nasıl dönüştürüleceğini gösterir:
// Desteklenen dosya formatları: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// OpenJDK 17 ile çalışır
package com.mycompany.asposejavatest;
import java.io.*;
import java.util.ArrayList;
import org.apache.commons.compress.archivers.*;
import org.apache.commons.compress.compressors.*;
import com.groupdocs.conversion.*;
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import com.groupdocs.conversion.contracts.PossibleConversions;
import com.groupdocs.conversion.options.convert.ConvertOptions;
import com.groupdocs.merger.*;
import com.groupdocs.merger.Merger;
public class AsposeJavaTest {
public static void main(String[] args) {
try {
InputStream inputfile = new BufferedInputStream(new FileInputStream("input.zip"));
// Ayrı olarak arşivlenen ve sıkıştırılan formatlar için. tar.gz gibi tar.bz tar.xz Kullan
// CompressorInputStream'i kullanın ve giriş dosyasını yüklemek için ArchiveInputStream'i kullanın.
//CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(inputfile);
//ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(cis);
// Sıkıştırma için yerleşik desteğe sahip formatlar için. Zip RAR JAR 7zip gibi
// Giriş dosyasını CompressorInputStream olmadan yüklemek için ArchiveInputStream
//ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(inputfile);
ArchiveEntry entry = ais.getNextEntry();
File outputDir = new File("/tmp/output");
if (!outputDir.exists()) {
outputDir.mkdirs();
}
while (entry != null) {
String filePath = outputDir.getAbsolutePath() + File.separator + entry.getName();
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
byte[] bytesIn = new byte[1024];
int read;
while ((read = ais.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
ais.close();
bos.close();
entry = ais.getNextEntry();
}
// Sıkıştırılmış klasörden çıkartılan dosyaların adlarını tutan Geçici Liste
ArrayList<String> filesList = new ArrayList<>();
// Sıkıştırılmış klasördeki tüm dosyaların (tam yollarla) listesini alın
File[] files = outputDir.listFiles();
// Sıkıştırılmış her dosyada döngü yapın ve her dosyayı PDF'ye dönüştürün
for (File file : files) {
// Çıkarılan dosyayı yükleyin
Converter converter = new Converter(file.getAbsolutePath());
// PDF formatı için dönüştürme seçeneklerini ayarlama
PdfConvertOptions convertOptions = new PdfConvertOptions();
// PDF formatına dönüştür
String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
converter.convert(outPath, convertOptions);
// PDF'ye dönüştürdükten sonra dosya adlarını geçici Listeye ekleyin
filesList.add(outPath);
}
// GroupDocs.Merger API'sini kullanarak PDF dosyalarını birleştirme
// Geçici Listedeki ilk giriş PDF belgesiyle Birleşmeyi Örneklendirin
Merger merger = new Merger(filesList.get(0));
// İkinci dosyadan başlayarak dönüştürülen PDF belgelerinin listesi arasında dolaşın
for (int i = 1; i < filesList.size(); i++) {
// Birleşme sınıfı örneğinin Birleştirme yöntemini çağırın ve kalan kaynak dosyalarını birer birer iletin
merger.join(filesList.get(i));
}
// Birleştirilmiş PDF belgesini kaydetmek için Birleşme sınıfı örneğinin Kaydetme yöntemini çağırın
merger.save("/tmp/output.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ücretsiz Değerlendirme Lisansı
Ücretsiz geçici lisans talep ederek ZIP dosyalarını PDF formatına dönüştürebilir ve diğer API özelliklerini tam kapasiteyle test edebilirsiniz.
Kapanış
Bu makale, bir ZIP dosyasının Java’da PDF’ye dönüştürülmesini özetlemektedir. Dosyaların ZIP arşivinden çıkarılmasını, PDF formatına dönüştürülmesini ve ardından tek bir PDF belgesinde birleştirilmesini içerir. Üstelik bu süreç, özel gereksinimlerinize göre daha da otomatikleştirilebilir ve özelleştirilebilir. Herhangi bir belirsizlik durumunda lütfen forum adresinden bizimle iletişime geçmekten çekinmeyin.
SSS
ZIP dosyalarından oluşturulan PDF belgelerini özelleştirebilir miyim?
Evet, ZIP dosyalarından oluşturulan PDF belgelerini özelleştirebilirsiniz. PDF belgelerinizin görsel sunumunu geliştirmek için yazı tiplerini, renkleri, düzenleri ve diğer stil öğelerini ayarlamak gibi farklı işlemler uygulayabilirsiniz. Gereksinimlerinize göre üstbilgiler, altbilgiler, filigranlar ve ek açıklamalar da ekleyebilirsiniz.
Tüm dosyaları dönüştürmek yerine ZIP arşivindeki belirli dosyaları PDF’ye dönüştürebilir miyim?
Evet, Java kodunuzu uygun şekilde değiştirerek ZIP arşivindeki belirli dosyaları PDF’ye dönüştürebilirsiniz. Belirli dosyaları adlarına, uzantılarına veya diğer ölçütlere göre çıkarabilir ve ardından yalnızca çıkarılan dosyaları PDF formatına dönüştürebilirsiniz. Bu, gereksinimlerinize göre seçici dönüştürme ve özelleştirmeye olanak tanır.
Ortaya çıkan PDF belgesini dönüştürme sırasında parolayla korumanın bir yolu var mı?
Evet, desteklenen özellikler arasında PDF şifreleme, parola ayarlama, izinler ve PDF belgeleri için şifreleme düzeyleri bulunduğundan, ortaya çıkan PDF belgesini parolayla koruyabilirsiniz.