Java ZIP ke PDF

File ZIP biasanya digunakan untuk mengompresi dan mengemas banyak file ke dalam satu arsip. Mengonversi file-file ini ke format PDF dapat berguna untuk berbagai tujuan seperti membuat laporan, mengarsipkan dokumen, atau berbagi informasi dalam format standar. Dalam tutorial ini, kita akan mempelajari cara mengonversi file ZIP menjadi dokumen PDF menggunakan Java.

Mengapa Mengonversi ZIP ke PDF?

Anda mungkin perlu mengonversi file ZIP ke format PDF untuk berbagai kasus penggunaan. Di sini kita membahas beberapa alasan konversi:

Pembuatan Laporan: Hasilkan laporan PDF dengan mengekstrak data dari file ZIP dan menyajikannya dalam dokumen berformat.

Pengarsipan Dokumen: Ubah beberapa dokumen atau file yang disimpan dalam arsip ZIP menjadi satu PDF untuk memudahkan pengarsipan dan pengambilan.

Standardisasi Dokumen: Konversikan beragam format file dalam arsip ZIP ke format PDF yang seragam agar lebih mudah dibagikan dan dilihat.

Konverter ZIP ke PDF - Konfigurasi Lingkungan Java

Anda harus mengonfigurasi lingkungan pengembangan, menjalankan kode Java dan menyematkan fitur tersebut ke dalam sistem Anda.

  • Pastikan Java Development Kit (JDK) terinstal di sistem Anda.
  • Pastikan Anda memiliki Lingkungan Pengembangan Terpadu (IDE) seperti IntelliJ IDEA, Apache NetBeans untuk pengembangan Java.
  • Selanjutnya unduh file JAR Conholdate.Total for Java atau gunakan konfigurasi Maven berikut:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>

Konversi ZIP ke PDF di Java

Langkah-langkah di bawah ini menunjukkan cara mengonversi ZIP ke PDF di Java:

  • Inisialisasi objek ZipInputStream menggunakan file ZIP input.
  • Tentukan direktori keluaran tempat file yang diekstraksi akan disimpan.
  • Ulangi setiap file dalam file ZIP masukan dan ekstrak ke direktori keluaran.
  • Pertahankan daftar sementara untuk menyimpan nama file yang diekstrak dari folder yang tidak di-zip.
  • Dapatkan daftar semua file (termasuk path lengkapnya) dari folder yang belum di-zip.
  • Ulangi setiap file yang diekstraksi dan konversikan ke format PDF.
  • Gabungkan file PDF yang dikonversi.
  • Buat instance kelas Penggabungan dengan masukan dokumen PDF pertama dari daftar sementara.
  • Ulangi daftar dokumen PDF yang dikonversi, mulai dari file kedua.
  • Panggil metode penyimpanan dari instance kelas Penggabungan untuk menyimpan dokumen PDF yang digabungkan.

Contoh kode berikut menunjukkan cara mengonversi ZIP ke PDF di Java:

// Format file yang didukung: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// Bekerja dengan OpenJDK 17

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"));

            // Untuk format-format yang diarsipkan dan dikompresi secara terpisah. Seperti tar.gz tar.bz tar.xz Gunakan
            // CompressorInputStream dan kemudian gunakan ArchiveInputStream untuk memuat file input.
            //CompressorInputStream cis = CompressorStreamFactory() baru.createCompressorInputStream(inputfile);
            //ArchiveInputStream ais = ArchiveStreamFactory() baru.createArchiveInputStream(cis);

            // Untuk format yang memiliki dukungan bawaan untuk kompresi. Seperti Zip RAR JAR 7zip
            // ArchiveInputStream untuk memuat file input tanpa CompressorInputStream
            //ArchiveInputStream ais = ArchiveStreamFactory() baru.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();
            }

            // Daftar Sementara untuk menyimpan nama file yang diekstrak dari folder yang tidak di-zip
            ArrayList<String> filesList = new ArrayList<>();

            // Dapatkan daftar semua file (dengan jalur lengkap) dari folder yang tidak di-zip
            File[] files = outputDir.listFiles();

            // Ulangi setiap file yang belum di-zip dan konversikan setiap file ke PDF
           for (File file : files) {
                // Muat file yang diekstrak
                Converter converter = new Converter(file.getAbsolutePath());
                // Atur opsi konversi untuk format PDF				
                PdfConvertOptions convertOptions = new PdfConvertOptions();                
                // Konversikan ke format PDF
                String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
                converter.convert(outPath, convertOptions);
                // Tambahkan nama file ke Daftar sementara setelah mengonversi ke PDF
                filesList.add(outPath);
            }

            // Gabungkan file PDF menggunakan GroupDocs.Merger API
            // Buat Instansi Penggabungan dengan memasukkan dokumen PDF pertama ke dalam Daftar sementara
            Merger merger = new Merger(filesList.get(0));

            // Ulangi daftar dokumen PDF yang dikonversi mulai dari file kedua
           for (int i = 1; i < filesList.size(); i++) {
                // Panggil metode Gabung dari instance kelas Penggabungan dan teruskan file sumber yang tersisa satu per satu
                merger.join(filesList.get(i));
            }

            // Panggil Metode Simpan instance kelas Penggabungan untuk menyimpan dokumen PDF yang digabungkan
            merger.save("/tmp/output.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Lisensi Evaluasi Gratis

Anda dapat mengonversi file ZIP ke format PDF dan menguji fitur API lainnya hingga kapasitas penuhnya dengan meminta lisensi sementara gratis.

Membungkus

Artikel ini merangkum konversi file ZIP ke PDF di Java. Ini melibatkan mengekstraksi file dari arsip ZIP, mengonversinya ke format PDF, dan kemudian menggabungkannya menjadi satu dokumen PDF. Selain itu, proses ini selanjutnya dapat diotomatisasi dan disesuaikan berdasarkan kebutuhan spesifik Anda. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum.

FAQ

Bisakah saya menyesuaikan dokumen PDF yang dihasilkan dari file ZIP?

Ya, Anda dapat menyesuaikan dokumen PDF yang dihasilkan dari file ZIP. Anda dapat menerapkan berbagai manipulasi seperti mengatur font, warna, tata letak, dan elemen gaya lainnya untuk menyempurnakan presentasi visual dokumen PDF Anda. Anda juga dapat menambahkan header, footer, tanda air, dan anotasi sesuai kebutuhan Anda.

Bisakah saya mengonversi file tertentu dalam arsip ZIP ke PDF alih-alih mengonversi semua file?

Ya, Anda dapat mengonversi file tertentu dalam arsip ZIP ke PDF dengan memodifikasi kode Java Anda. Anda dapat mengekstrak file tertentu berdasarkan nama, ekstensi, atau kriteria lainnya, lalu mengonversi hanya file yang diekstraksi tersebut ke format PDF. Hal ini memungkinkan konversi dan penyesuaian selektif berdasarkan kebutuhan Anda.

Apakah ada cara untuk melindungi dokumen PDF yang dihasilkan dengan kata sandi selama konversi?

Ya, Anda dapat melindungi dokumen PDF yang dihasilkan dengan kata sandi karena fitur yang didukung mencakup enkripsi PDF, pengaturan kata sandi, izin, dan tingkat enkripsi untuk dokumen PDF.

Lihat juga