Java ZIP en PDF

Les fichiers ZIP sont couramment utilisés pour compresser et regrouper plusieurs fichiers dans une seule archive. La conversion de ces fichiers au format PDF peut être utile à diverses fins telles que la création de rapports, l’archivage de documents ou le partage d’informations dans un format standardisé. Dans ce didacticiel, nous allons explorer comment convertir un fichier ZIP en document PDF à l’aide de Java.

Pourquoi convertir ZIP en PDF ?

Vous devrez peut-être convertir des fichiers ZIP au format PDF pour différents cas d’utilisation. Nous discutons ici de quelques raisons de la conversion :

Génération de rapports : générez des rapports PDF en extrayant les données des fichiers ZIP et en les présentant dans un document formaté.

Archivage de documents : convertissez plusieurs documents ou fichiers stockés dans une archive ZIP en un seul PDF pour un archivage et une récupération faciles.

Standardisation des documents : convertissez divers formats de fichiers au sein d’une archive ZIP en un format PDF uniforme pour un partage et une visualisation plus faciles.

Convertisseur ZIP en PDF - Configuration de l’environnement Java

Vous devez configurer l’environnement de développement, exécuter le code Java et intégrer la fonctionnalité dans votre système.

  • Assurez-vous que le kit de développement Java (JDK) est installé sur votre système.
  • Assurez-vous de disposer d’un environnement de développement intégré (IDE) tel qu’IntelliJ IDEA, Apache NetBeans pour le développement Java.
  • De plus, téléchargez le fichier JAR de Conholdate.Total for Java ou utilisez les configurations Maven suivantes :
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>

Convertir ZIP en PDF en Java

Les étapes ci-dessous montrent comment convertir un ZIP en PDF en Java :

  • Initialisez un objet ZipInputStream à l’aide du fichier ZIP d’entrée.
  • Spécifiez le répertoire de sortie dans lequel les fichiers extraits seront enregistrés.
  • Parcourez chaque fichier du fichier ZIP d’entrée et extrayez-le dans le répertoire de sortie.
  • Conservez une liste temporaire pour stocker les noms des fichiers extraits du dossier décompressé.
  • Obtenez la liste de tous les fichiers (y compris leurs chemins complets) à partir du dossier décompressé.
  • Parcourez chaque fichier extrait et convertissez-le au format PDF.
  • Fusionnez les fichiers PDF convertis.
  • Créez une instance de la classe Merger avec le premier document PDF d’entrée de la liste temporaire.
  • Parcourez la liste des documents PDF convertis, en commençant par le deuxième fichier.
  • Appelez la méthode save de l’instance de classe Merger pour enregistrer le document PDF fusionné.

L’exemple de code suivant montre comment convertir un ZIP en PDF en Java :

// Formats de fichiers pris en charge : https://docs.groupdocs.com/conversion/java/supported-document-formats/
// Fonctionne avec 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"));

            // Pour les formats qui sont archivés et compressés séparément. Comme tar.gz tar.bz tar.xz Utiliser
            // CompressorInputStream et utilisez ensuite ArchiveInputStream pour charger le fichier d’entrée.
            //CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(inputfile);
            //ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(cis);

            // Pour les formats prenant en charge la compression. J'aime Zip RAR JAR 7zip
            // ArchiveInputStream pour charger le fichier d'entrée sans CompressorInputStream
            //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();
            }

            // Liste temporaire pour contenir les noms des fichiers extraits du dossier décompressé
            ArrayList<String> filesList = new ArrayList<>();

            // Obtenez la liste de tous les fichiers (avec chemins complets) du dossier décompressé
            File[] files = outputDir.listFiles();

            // Parcourez chaque fichier décompressé et convertissez chaque fichier en PDF
           for (File file : files) {
                // Charger le fichier extrait
                Converter converter = new Converter(file.getAbsolutePath());
                // Définir les options de conversion pour le format PDF				
                PdfConvertOptions convertOptions = new PdfConvertOptions();                
                // Convertir au format PDF
                String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
                converter.convert(outPath, convertOptions);
                // Ajoutez les noms de fichiers à la liste temporaire après la conversion en PDF
                filesList.add(outPath);
            }

            // Fusionner des fichiers PDF à l'aide de l'API GroupDocs.Merger
            // Instancier la fusion avec le premier document PDF d'entrée dans la liste temporaire
            Merger merger = new Merger(filesList.get(0));

            // Parcourez la liste des documents PDF convertis à partir du deuxième fichier
           for (int i = 1; i < filesList.size(); i++) {
                // Appelez la méthode Join de l’instance de classe Merger et transmettez les fichiers source restants un par un
                merger.join(filesList.get(i));
            }

            // Appelez la méthode Save de l’instance de classe Merger pour enregistrer le document PDF fusionné
            merger.save("/tmp/output.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Licence d’évaluation gratuite

Vous pouvez convertir des fichiers ZIP au format PDF et tester d’autres fonctionnalités de l’API dans leur pleine capacité en demandant une licence temporaire gratuite.

Emballer

Cet article résume la conversion d’un fichier ZIP en PDF en Java. Cela implique d’extraire les fichiers de l’archive ZIP, de les convertir au format PDF, puis de les fusionner en un seul document PDF. De plus, ce processus peut être automatisé et personnalisé en fonction de vos besoins spécifiques. En cas d’ambiguïté, n’hésitez pas à nous contacter sur forum.

FAQ

Puis-je personnaliser les documents PDF générés à partir de fichiers ZIP ?

Oui, vous pouvez personnaliser les documents PDF générés à partir de fichiers ZIP. Vous pouvez appliquer différentes manipulations telles que la définition des polices, des couleurs, des mises en page et d’autres éléments de style pour améliorer la présentation visuelle de vos documents PDF. Vous pouvez également ajouter des en-têtes, des pieds de page, des filigranes et des annotations selon vos besoins.

Puis-je convertir des fichiers spécifiques d’une archive ZIP en PDF au lieu de convertir tous les fichiers ?

Oui, vous pouvez convertir des fichiers spécifiques d’une archive ZIP en PDF en modifiant votre code Java en conséquence. Vous pouvez extraire des fichiers spécifiques en fonction de leurs noms, extensions ou d’autres critères, puis convertir uniquement ces fichiers extraits au format PDF. Cela permet une conversion et une personnalisation sélectives en fonction de vos besoins.

Existe-t-il un moyen de protéger par mot de passe le document PDF résultant pendant la conversion ?

Oui, vous pouvez protéger par mot de passe le document PDF obtenu, car les fonctionnalités prises en charge incluent le cryptage PDF, la définition de mots de passe, d’autorisations et de niveaux de cryptage pour les documents PDF.

Voir également