В некоторых случаях изображения более гибкие, чем файлы 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"));
}
}