
Файлы ZIP обычно используются для сжатия и упаковки нескольких файлов в один архив. Преобразование этих файлов в формат PDF может быть полезно для различных целей, таких как создание отчетов, архивирование документов или обмен информацией в стандартизированном формате. В этом уроке мы рассмотрим, как преобразовать ZIP-файл в документ PDF с помощью Java.
Зачем конвертировать ZIP в PDF?
Вам может потребоваться конвертировать ZIP-файлы в формат PDF для различных случаев использования. Здесь мы обсуждаем несколько причин конверсии:
Создание отчетов: создавайте отчеты в формате PDF, извлекая данные из ZIP-файлов и представляя их в отформатированном документе.
Архивирование документов: конвертируйте несколько документов или файлов, хранящихся в ZIP-архиве, в один PDF-файл для удобного архивирования и поиска.
Стандартизация документов: конвертируйте различные форматы файлов в ZIP-архиве в единый формат PDF для упрощения совместного использования и просмотра.
Конвертер ZIP в PDF — конфигурация среды Java
Вам необходимо настроить среду разработки, запустить код Java и внедрить эту функцию в вашу систему.
- Убедитесь, что в вашей системе установлен Java Development Kit (JDK).
- Убедитесь, что у вас есть интегрированная среда разработки (IDE), например IntelliJ IDEA, Apache NetBeans для разработки на Java.
- Кроме того, загрузите JAR-файл Conholdate.Total для Java или используйте следующие конфигурации Maven:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>
Конвертировать ZIP в PDF в Java
Следующие шаги демонстрируют, как конвертировать ZIP в PDF в Java:
- Инициализируйте объект ZipInputStream, используя входной ZIP-файл.
- Укажите выходной каталог, в котором будут сохранены извлеченные файлы.
- Переберите каждый файл во входном ZIP-файле и извлеките его в выходной каталог.
- Создайте временный список для хранения имен извлеченных файлов из разархивированной папки.
- Получите список всех файлов (включая их полные пути) из разархивированной папки.
- Переберите каждый извлеченный файл и преобразуйте его в формат PDF.
- Объедините преобразованные файлы PDF.
- Создайте экземпляр класса Merger с первым входным PDF-документом из временного списка.
- Перебирайте список конвертированных PDF-документов, начиная со второго файла.
- Вызовите метод save экземпляра класса Merger, чтобы сохранить объединенный PDF-документ.
В следующем примере кода показано, как преобразовать ZIP в PDF на Java:
// Поддерживаемые форматы файлов: https://docs.groupdocs.com/conversion/java/supported-document-formats/.
// Работает с 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"));
// Для тех форматов, которые отдельно архивируются и сжимаются. Как tar.gz tar.bz tar.xz Использовать
// CompressorInputStream, а затем использовать ArchiveInputStream для загрузки входного файла.
//CompressorInputStream cis = новый CompressorStreamFactory().createCompressorInputStream(inputfile);
//ArchiveInputStream ais = новый ArchiveStreamFactory().createArchiveInputStream(cis);
// Для форматов со встроенной поддержкой сжатия. Нравится Zip RAR JAR 7zip
// ArchiveInputStream для загрузки входного файла без CompressorInputStream.
//ArchiveInputStream ais = новый ArchiveStreamFactory().createArchiveInputStream(входной файл);
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();
}
// Временный список для хранения имен извлеченных файлов из разархивированной папки.
ArrayList<String> filesList = new ArrayList<>();
// Получить список всех файлов (с полными путями) из разархивированной папки.
File[] files = outputDir.listFiles();
// Прокрутите каждый разархивированный файл и преобразуйте каждый файл в PDF.
for (File file : files) {
// Загрузите извлеченный файл
Converter converter = new Converter(file.getAbsolutePath());
// Установите параметры преобразования в формат PDF
PdfConvertOptions convertOptions = new PdfConvertOptions();
// Конвертировать в формат PDF
String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
converter.convert(outPath, convertOptions);
// Добавьте имена файлов во временный список после преобразования в PDF.
filesList.add(outPath);
}
// Объединение PDF-файлов с помощью GroupDocs.Merger API
// Мгновенное слияние с первым входным PDF-документом во временном списке
Merger merger = new Merger(filesList.get(0));
// Прокручивать список конвертированных PDF-документов, начиная со второго файла.
for (int i = 1; i < filesList.size(); i++) {
// Вызовите метод Join экземпляра класса Merger и передайте оставшиеся исходные файлы один за другим.
merger.join(filesList.get(i));
}
// Вызовите метод Save экземпляра класса Merger, чтобы сохранить объединенный PDF-документ.
merger.save("/tmp/output.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Бесплатная пробная лицензия
Вы можете конвертировать ZIP-файлы в формат PDF и протестировать другие функции API на полную мощность, запросив бесплатную временную лицензию.
Подведение итогов
В этой статье описывается преобразование ZIP-файла в PDF на Java. Он включает в себя извлечение файлов из ZIP-архива, преобразование их в формат PDF и последующее объединение в один PDF-документ. Более того, этот процесс можно дополнительно автоматизировать и настроить в соответствии с вашими конкретными требованиями. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форум.
Часто задаваемые вопросы
Могу ли я настроить PDF-документы, созданные из ZIP-файлов?
Да, вы можете настроить PDF-документы, созданные из ZIP-файлов. Вы можете применять различные манипуляции, такие как настройка шрифтов, цветов, макетов и других элементов стиля, чтобы улучшить визуальное представление ваших PDF-документов. Вы также можете добавлять верхние и нижние колонтитулы, водяные знаки и аннотации в соответствии с вашими требованиями.
Могу ли я преобразовать определенные файлы в ZIP-архиве в PDF вместо преобразования всех файлов?
Да, вы можете конвертировать определенные файлы в ZIP-архиве в PDF, соответствующим образом изменив свой Java-код. Вы можете извлечь определенные файлы на основе их имен, расширений или других критериев, а затем преобразовать только эти извлеченные файлы в формат PDF. Это позволяет выборочное преобразование и настройку в соответствии с вашими требованиями.
Есть ли способ защитить паролем полученный PDF-документ во время преобразования?
Да, вы можете защитить паролем полученный PDF-документ, поскольку поддерживаемые функции включают в себя шифрование PDF, установку паролей, разрешений и уровней шифрования для PDF-документов.