Java ZIP в PDF

Файлы 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-документов.

Смотрите также