Преобразование PNG в PDF с помощью Java

Преобразование PNG в PDF с помощью Java

PNG и PDF являются популярными и наиболее широко используемыми форматами файлов на текущий момент времени. PNG — это формат файла изображения, тогда как PDF (Portable Document Format) предлагает надежное и эффективное представление данных. В некоторых случаях вам необходимо преобразовать формат файла изображения в PDF. Поэтому в этом сообщении блога мы узнаем, как конвертировать PNG в PDF с помощью Java PDF API. Мы напишем фрагмент кода и шаги для выполнения этого преобразования в приложении Java.

В этой статье мы рассмотрим следующие темы:

Java-библиотека PDF

Эта библиотека Java PDF проста в установке и содержит документацию по установке. Это API корпоративного уровня, который предлагает надежные функции преобразования и манипулирования. Однако вы можете скачать JAR или установить его, используя следующие конфигурации Maven:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>21.11</version>
    <type>pom</type>
</dependency>

Преобразование PNG в PDF с помощью Java

Мы собираемся использовать классы и методы, предоставляемые этой библиотекой Java PDF. Он позволяет выполнять преобразование PNG в PDF, написав несколько строк исходного кода на Java.

Вы можете выполнить шаги и фрагмент кода, указанные ниже:

  1. Создайте экземпляр класса Document.
  2. Создайте объект класса DocumentBuilder, чтобы упростить добавление содержимого в документ.
  3. Загрузите файл входного изображения, вызвав метод createImageInputStream и назначив его объекту ImageInputStream.
  4. Вызовите метод getImageReaders, который возвращает Iterator, содержащий все зарегистрированные на данный момент ImageReaders, и присваивает его объекту класса ImageReader.
  5. Вызовите метод setInput, который устанавливает источник ввода для использования с данным ImageInputStream.
  6. Получите количество кадров в изображении, вызвав метод getNumImages.
  7. Перебрать все кадры.
  8. Выберите активный кадр и назначьте его объекту класса BufferedImage.
  9. Вызовите метод getPageSetup, чтобы получить доступ к текущей настройке страницы и назначить ее объекту класса PageSetup.
  10. Установите высоту страницы, вызвав метод setPageWidth.
  11. Вызовите метод setPageHeight, чтобы установить ширину страницы.
  12. Вставьте изображение в документ и расположите его в левом верхнем углу страницы, вызвав метод insertImage.
  13. Сохраните файл в формате PDF, вызвав метод save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // Создать экземпляр класса Document  
    Document doc = new Document();
    // Создайте объект класса DocumentBuilder, чтобы упростить добавление содержимого в документ.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Загрузите изображения с диска, используя соответствующий ридер.
    // Форматы файлов, которые можно загрузить, зависят от программ чтения изображений, доступных на машине.
    // Загрузите файл входного изображения, вызвав метод createImageInputStream, и назначьте его объекту ImageInputStream.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // Вызовите метод getImageReaders, который возвращает Iterator, содержащий все зарегистрированные на данный момент ImageReaders, и назначает его объекту класса ImageReader.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // Вызовите метод setInput, который задает источник ввода для использования с данным ImageInputStream или другим объектом. 
    reader.setInput(iis, false);

    // Получите количество кадров в изображении, вызвав метод getNumImages  
    int framesCount = reader.getNumImages(true);

    // Перебрать все кадры.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // Вставляйте разрыв раздела перед каждой новой страницей, если изображение состоит из нескольких кадров.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // Выберите активный кадр и назначьте его объекту класса BufferedImage 
        BufferedImage image = reader.read(frameIdx);

        // Мы хотим, чтобы размер страницы был таким же, как размер изображения.
	      // Преобразуйте пиксели в точки, чтобы размер страницы соответствовал фактическому размеру изображения.
	      // Вызовите метод getPageSetup, чтобы получить доступ к текущей настройке страницы и назначить ее объекту класса PageSetup.   
        PageSetup ps = builder.getPageSetup();
        // Установите высоту страницы, вызвав метод setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // Вызовите метод setPageHeight, чтобы установить ширину страницы. 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // Вставьте изображение в документ и поместите его в верхний левый угол страницы, вызвав метод insertImage.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // Сохраните файл в формате PDF, вызвав метод сохранения
    doc.save(outputFileName);
}

Вы можете увидеть результат на изображении ниже:

Преобразование PNG в PDF

Преобразование PNG в PDF

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы опробовать API за пределами ознакомительных ограничений.

Подведение итогов

Мы можем закончить этот пост в блоге здесь. Мы продемонстрировали реализацию библиотеки Java PDF для программного преобразования PNG в PDF с использованием Java. Эта библиотека позволяет вам создать конвертер PNG в PDF, используя несколько строк кода. Кроме того, вы можете посетить документацию этого API преобразования PNG в PDF. conholdate.com постоянно пишет на новые интересные темы. Поэтому, пожалуйста, оставайтесь на связи, чтобы быть в курсе последних обновлений.

Задайте вопрос

Вы можете сообщить нам о своих вопросах или запросах на нашем форуме.

Часто задаваемые вопросы

Как вы конвертируете PNG в PDF?

Вы можете использовать эту библиотеку для программного преобразования PNG в PDF на Java. Он предлагает исчерпывающую документацию по его использованию.

Как сохранить PNG в формате PDF без потери качества?

Просмотрите этот раздел, чтобы узнать, как сохранить PNG в виде файла PDF с помощью библиотеки Java. Вы можете вызвать метод save, чтобы сохранить файл PNG как файл PDF.

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