
I file ZIP vengono comunemente utilizzati per comprimere e comprimere più file in un unico archivio. La conversione di questi file nel formato PDF può essere utile per vari scopi come la creazione di report, l’archiviazione di documenti o la condivisione di informazioni in un formato standardizzato. In questo tutorial esploreremo come convertire un file ZIP in un documento PDF utilizzando Java.
Perché convertire ZIP in PDF?
Potrebbe essere necessario convertire i file ZIP in formato PDF per diversi casi d’uso. Qui stiamo discutendo alcuni motivi per la conversione:
Generazione di report: genera report PDF estraendo dati da file ZIP e presentandoli in un documento formattato.
Archiviazione documenti: converti più documenti o file archiviati in un archivio ZIP in un unico PDF per archiviarli e recuperarli facilmente.
Standardizzazione dei documenti: converti diversi formati di file all’interno di un archivio ZIP in un formato PDF uniforme per una condivisione e una visualizzazione più semplici.
Convertitore da ZIP a PDF - Configurazione dell’ambiente Java
Devi configurare l’ambiente di sviluppo, eseguire il codice Java e incorporare la funzionalità nel tuo sistema.
- Assicurati che Java Development Kit (JDK) sia installato sul tuo sistema.
- Assicurati di disporre di un ambiente di sviluppo integrato (IDE) come IntelliJ IDEA, Apache NetBeans per lo sviluppo Java.
- Inoltre, scarica il file JAR di Conholdate.Total for Java o utilizza le seguenti configurazioni Maven:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>
Converti ZIP in PDF in Java
I passaggi seguenti mostrano come convertire ZIP in PDF in Java:
- Inizializza un oggetto ZipInputStream utilizzando il file ZIP di input.
- Specificare la directory di output in cui verranno salvati i file estratti.
- Scorrere ogni file nel file ZIP di input ed estrarlo nella directory di output.
- Mantieni un elenco temporaneo per memorizzare i nomi dei file estratti dalla cartella decompressa.
- Ottieni l’elenco di tutti i file (compresi i percorsi completi) dalla cartella decompressa.
- Scorre ogni file estratto e convertilo in formato PDF.
- Unisci i file PDF convertiti.
- Crea un’istanza della classe Merger con il primo documento PDF di input dall’elenco temporaneo.
- Scorrere l’elenco dei documenti PDF convertiti, a partire dal secondo file.
- Richiamare il metodo di salvataggio dell’istanza della classe Merger per salvare il documento PDF unito.
Il seguente codice di esempio mostra come convertire ZIP in PDF in Java:
// Formati di file supportati: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// Funziona con 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"));
// Per quei formati che vengono archiviati e compressi separatamente. Come tar.gz tar.bz tar.xz Usa
// CompressorInputStream e quindi utilizzare ArchiveInputStream per caricare il file di input.
//CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(inputfile);
//ArchiveInputStream ais = nuovo ArchiveStreamFactory().createArchiveInputStream(cis);
// Per i formati che dispongono del supporto integrato per la compressione. Come Zip RAR JAR 7zip
// ArchiveInputStream per caricare il file di input senza CompressorInputStream
//ArchiveInputStream ais = nuovo 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();
}
// Elenco temporaneo per contenere i nomi dei file estratti dalla cartella decompressa
ArrayList<String> filesList = new ArrayList<>();
// Ottieni l'elenco di tutti i file (con percorsi completi) dalla cartella decompressa
File[] files = outputDir.listFiles();
// Passa in rassegna ogni file decompresso e converti ogni file in PDF
for (File file : files) {
// Carica il file estratto
Converter converter = new Converter(file.getAbsolutePath());
// Imposta le opzioni di conversione per il formato PDF
PdfConvertOptions convertOptions = new PdfConvertOptions();
// Converti in formato PDF
String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
converter.convert(outPath, convertOptions);
// Aggiungi i nomi dei file all'elenco temporaneo dopo la conversione in PDF
filesList.add(outPath);
}
// Unisci file PDF utilizzando l'API GroupDocs.Merger
// Istanzia la fusione con il primo documento PDF di input nell'elenco temporaneo
Merger merger = new Merger(filesList.get(0));
// Scorri l'elenco dei documenti PDF convertiti a partire dal secondo file
for (int i = 1; i < filesList.size(); i++) {
// Chiama il metodo Join dell'istanza della classe Merger e passa i file sorgente rimanenti uno per uno
merger.join(filesList.get(i));
}
// Chiama il metodo Save dell'istanza della classe Merger per salvare il documento PDF unito
merger.save("/tmp/output.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Licenza di valutazione gratuita
Puoi convertire i file ZIP in formato PDF e testare altre funzionalità API al massimo delle loro capacità richiedendo una licenza temporanea gratuita.
Avvolgendo
Questo articolo riassume la conversione di un file ZIP in PDF in Java. Si tratta di estrarre i file dall’archivio ZIP, convertirli in formato PDF e quindi unirli in un unico documento PDF. Inoltre, questo processo può essere ulteriormente automatizzato e personalizzato in base alle vostre esigenze specifiche. In caso di ambiguità, non esitate a contattarci al forum.
Domande frequenti
Posso personalizzare i documenti PDF generati da file ZIP?
Sì, puoi personalizzare i documenti PDF generati da file ZIP. Puoi applicare diverse manipolazioni come impostare caratteri, colori, layout e altri elementi di stile per migliorare la presentazione visiva dei tuoi documenti PDF. Puoi anche aggiungere intestazioni, piè di pagina, filigrane e annotazioni secondo le tue esigenze.
Posso convertire file specifici all’interno di un archivio ZIP in PDF invece di convertire tutti i file?
Sì, puoi convertire file specifici all’interno di un archivio ZIP in PDF modificando di conseguenza il codice Java. Puoi estrarre file specifici in base ai loro nomi, estensioni o altri criteri e quindi convertire solo i file estratti in formato PDF. Ciò consente la conversione e la personalizzazione selettiva in base alle vostre esigenze.
Esiste un modo per proteggere con password il documento PDF risultante durante la conversione?
Sì, puoi proteggere con password il documento PDF risultante poiché le funzionalità supportate includono la crittografia PDF, l’impostazione di password, autorizzazioni e livelli di crittografia per i documenti PDF.