Java ZIP'den PDF'ye

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.

Ayrıca bakınız