Java/Преобразование PDF в PNG изображения

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

  • Преобразование всего PDF-документа в несколько изображений
  • Преобразование конкретной страницы PDF в изображение.

Установка

Для выполнения этой задачи требуется бесплатная библиотека Java, и существует 2 способа ее установки.
Метод 1: Скачайте бесплатную библиотеку (Free Spire.PDF for Java) и распакуйте ее. Затем добавьте файл Spire.Pdf.jar в ваш проект в качестве зависимости.

Способ 2: Непосредственно добавьте зависимость jar в проект maven, добавив следующие конфигурации в pom.xml.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
Войти в полноэкранный режим Выйти из полноэкранного режима

Снимок экрана входного PDF-файла, содержащего 3 страницы.

Бесплатный Spire.PDF для Java позволяет пользователям конвертировать все страницы или определенную страницу PDF-файла в изображения и устанавливать Dpi изображения с помощью метода PdfDocument.saveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY).

Преобразование всего PDF-документа в несколько изображений

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;

public class WholePDFToImages {
    public static void main(String[] args) throws IOException {
        //Create a PdfDocument instance
        PdfDocument pdf = new PdfDocument();

        //Load a PDF sample document
        pdf.loadFromFile("input.pdf");

        //Loop through every page
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            //Convert all pages to images and set the image Dpi
            BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap,500,500);
            //Save images to a specific folder as a .png files
            File file = new File("C:\Users\Administrator\Desktop\PDFToImages" + "/" + String.format(("ToImage-img-%d.png"), i));
            ImageIO.write(image, "PNG", file);
        }
        pdf.close();
    }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Преобразование отдельной страницы PDF в изображение

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;

public class ParticularPDFToImage {
    public static void main(String[] args) throws IOException {
        //Create a PdfDocument instance
        PdfDocument pdf = new PdfDocument();

        //Load a PDF sample document
        pdf.loadFromFile("input.pdf");

        //Convert the third page to an image and set the image Dpi
        BufferedImage image= pdf.saveAsImage(2, PdfImageType.Bitmap,500,500);

        //Save the image to another file as a .png format 
        ImageIO.write(image, "PNG", new File("ToPNG.png"));
    }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий