Java-ZIP naar PDF

ZIP-bestanden worden vaak gebruikt om meerdere bestanden te comprimeren en in één enkel archief te verpakken. Het converteren van deze bestanden naar het PDF-formaat kan nuttig zijn voor verschillende doeleinden, zoals het maken van rapporten, het archiveren van documenten of het delen van informatie in een gestandaardiseerd formaat. In deze zelfstudie onderzoeken we hoe u een ZIP-bestand met Java naar een PDF-document kunt converteren.

Waarom ZIP naar PDF converteren?

Mogelijk moet u ZIP-bestanden naar PDF-indeling converteren voor verschillende gebruiksscenario’s. Hier bespreken we enkele redenen voor de conversie:

Rapport genereren: Genereer PDF-rapporten door gegevens uit ZIP-bestanden te extraheren en deze in een opgemaakt document te presenteren.

Documentarchivering: Converteer meerdere documenten of bestanden die zijn opgeslagen in een ZIP-archief naar één PDF voor eenvoudig archiveren en terugvinden.

Documentstandaardisatie: Converteer diverse bestandsformaten binnen een ZIP-archief naar een uniform PDF-formaat voor eenvoudiger delen en bekijken.

ZIP naar PDF-converter - Java-omgevingsconfiguratie

U moet de ontwikkelomgeving configureren, de Java-code uitvoeren en de functie in uw systeem insluiten.

  • Zorg ervoor dat de Java Development Kit (JDK) op uw systeem is geïnstalleerd.
  • Zorg ervoor dat u over een Integrated Development Environment (IDE) beschikt, zoals IntelliJ IDEA, Apache NetBeans voor Java-ontwikkeling.
  • Download bovendien het JAR-bestand van Conholdate.Total for Java of gebruik de volgende Maven-configuraties:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>

Converteer ZIP naar PDF in Java

De onderstaande stappen laten zien hoe u ZIP naar PDF converteert in Java:

  • Initialiseer een ZipInputStream-object met behulp van het invoer-ZIP-bestand.
  • Geef de uitvoermap op waar de uitgepakte bestanden worden opgeslagen.
  • Doorloop elk bestand in het invoer-ZIP-bestand en pak het uit naar de uitvoermap.
  • Houd een tijdelijke lijst bij om de namen van uitgepakte bestanden uit de uitgepakte map op te slaan.
  • Haal de lijst met alle bestanden (inclusief hun volledige paden) op uit de uitgepakte map.
  • Doorloop elk uitgepakt bestand en converteer het naar PDF-formaat.
  • Voeg de geconverteerde PDF-bestanden samen.
  • Maak een exemplaar van de klasse Merger met het eerste ingevoerde PDF-document uit de tijdelijke lijst.
  • Blader door de lijst met geconverteerde PDF-documenten, beginnend bij het tweede bestand.
  • Roep de opslagmethode van de Merger-klasse-instantie aan om het samengevoegde PDF-document op te slaan.

De volgende voorbeeldcode laat zien hoe u ZIP naar PDF converteert in Java:

// Ondersteunde bestandsformaten: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// Werkt met 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"));

            // Voor de formaten die afzonderlijk worden gearchiveerd en gecomprimeerd. Zoals tar.gz tar.bz tar.xz Gebruiken
            // CompressorInputStream en gebruik vervolgens ArchiveInputStream om het invoerbestand te laden.
            //CompressorInputStream cis = nieuwe CompressorStreamFactory().createCompressorInputStream(invoerbestand);
            //ArchiveInputStream ais = nieuw ArchiveStreamFactory().createArchiveInputStream(cis);

            // Voor formaten met ingebouwde ondersteuning voor compressie. Zoals Zip RAR JAR 7zip
            // ArchiveInputStream om het invoerbestand te laden zonder CompressorInputStream
            //ArchiveInputStream ais = nieuw ArchiveStreamFactory().createArchiveInputStream(invoerbestand);

            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();
            }

            // Tijdelijke lijst met namen van uitgepakte bestanden uit de uitgepakte map
            ArrayList<String> filesList = new ArrayList<>();

            // Haal de lijst op met alle bestanden (met volledige paden) uit de uitgepakte map
            File[] files = outputDir.listFiles();

            // Loop door elk uitgepakt bestand en converteer elk bestand naar PDF
           for (File file : files) {
                // Laad het uitgepakte bestand
                Converter converter = new Converter(file.getAbsolutePath());
                // Stel de conversieopties voor het PDF-formaat in				
                PdfConvertOptions convertOptions = new PdfConvertOptions();                
                // Converteren naar PDF-formaat
                String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
                converter.convert(outPath, convertOptions);
                // Voeg de bestandsnamen toe aan de tijdelijke lijst na het converteren naar PDF
                filesList.add(outPath);
            }

            // Voeg PDF-bestanden samen met de GroupDocs.Merger API
            // Instantie van de fusie met het eerste ingevoerde PDF-document in de tijdelijke lijst
            Merger merger = new Merger(filesList.get(0));

            // Loop door de lijst met geconverteerde PDF-documenten, beginnend bij het tweede bestand
           for (int i = 1; i < filesList.size(); i++) {
                // Roep de Join-methode van de Merger-klasse-instantie aan en geef de resterende bronbestanden één voor één door
                merger.join(filesList.get(i));
            }

            // Roep de Save-methode van de Merger-klasse-instantie aan om het samengevoegde PDF-document op te slaan
            merger.save("/tmp/output.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Gratis evaluatielicentie

U kunt ZIP-bestanden naar PDF-formaat converteren en andere API-functies ten volle testen door een gratis tijdelijke licentie aan te vragen.

Afsluiten

Dit artikel vat het converteren van een ZIP-bestand naar PDF in Java samen. Het gaat om het extraheren van de bestanden uit het ZIP-archief, het converteren naar PDF-formaat en het vervolgens samenvoegen tot één PDF-document. Bovendien kan dit proces verder worden geautomatiseerd en aangepast op basis van uw specifieke wensen. Mocht u onduidelijkheden hebben, neem dan gerust contact met ons op via forum.

Veelgestelde vragen

Kan ik de PDF-documenten aanpassen die zijn gegenereerd op basis van ZIP-bestanden?

Ja, u kunt de PDF-documenten aanpassen die zijn gegenereerd op basis van ZIP-bestanden. U kunt verschillende manipulaties toepassen, zoals het instellen van de lettertypen, kleuren, lay-outs en andere stijlelementen om de visuele presentatie van uw PDF-documenten te verbeteren. U kunt ook kopteksten, voetteksten, watermerken en annotaties toevoegen volgens uw vereisten.

Kan ik specifieke bestanden binnen een ZIP-archief naar PDF converteren in plaats van alle bestanden te converteren?

Ja, u kunt specifieke bestanden binnen een ZIP-archief naar PDF converteren door uw Java-code dienovereenkomstig aan te passen. U kunt specifieke bestanden extraheren op basis van hun naam, extensie of andere criteria en vervolgens alleen die uitgepakte bestanden naar PDF-indeling converteren. Dit maakt selectieve conversie en maatwerk mogelijk op basis van uw vereisten.

Is er een manier om het resulterende PDF-document tijdens de conversie met een wachtwoord te beveiligen?

Ja, u kunt het resulterende PDF-document met een wachtwoord beveiligen, aangezien de ondersteunde functies onder meer PDF-codering, het instellen van wachtwoorden, machtigingen en coderingsniveaus voor PDF-documenten omvatten.

Zie ook