PDFBox - 将 PDF 转换为图像。



在上一章中,我们了解了如何合并多个 PDF 文档。在本章中,我们将了解如何从 PDF 文档的页面中提取图像。

从 PDF 文档生成图像

PDFBox 库提供了一个名为 PDFRenderer 的类,它可以将 PDF 文档渲染成 AWT BufferedImage。

以下是从 PDF 文档生成图像的步骤。

步骤 1:加载现有的 PDF 文档

使用 PDDocument 类的静态方法 load() 加载现有的 PDF 文档。此方法接受文件对象作为参数,由于这是一个静态方法,因此您可以使用类名调用它,如下所示。

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

步骤 2:实例化 PDFRenderer 类

名为 PDFRenderer 的类将 PDF 文档渲染成 AWT BufferedImage。因此,您需要实例化此类,如下所示。此类的构造函数接受一个文档对象;传递在上一步骤中创建的文档对象,如下所示。

PDFRenderer renderer = new PDFRenderer(document);

步骤 3:从 PDF 文档渲染图像

您可以使用 Renderer 类的 renderImage() 方法渲染特定页面中的图像,此方法需要传递要渲染的图像所在的页面的索引。

BufferedImage image = renderer.renderImage(0);

步骤 4:将图像写入文件

您可以使用 write() 方法将上一步骤中渲染的图像写入文件。此方法需要传递三个参数:

  • 渲染的图像对象。
  • 表示图像类型(jpg 或 png)的字符串。
  • 需要保存提取图像的文件对象。
ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));

步骤 5:关闭文档

最后,使用 PDDocument 类的 close() 方法关闭文档,如下所示。

document.close();

示例

假设我们在路径 C:\PdfBox_Examples\ 中有一个 PDF 文档 — sample.pdf,并且它在第一页包含一个图像,如下所示。

Sample Image

此示例演示如何将上述 PDF 文档转换为图像文件。在这里,我们将检索 PDF 文档第 1 页中的图像并将其保存为 myimage.jpg。将此代码保存为 PdfToImage.java

import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PdfToImage {

   public static void main(String args[]) throws Exception {

      //Loading an existing PDF document
      File file = new File("C:/PdfBox_Examples/sample.pdf");
      PDDocument document = PDDocument.load(file);
       
      //Instantiating the PDFRenderer class
      PDFRenderer renderer = new PDFRenderer(document);

      //Rendering an image from the PDF document
      BufferedImage image = renderer.renderImage(0);

      //Writing the image to a file
      ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));
       
      System.out.println("Image created");
       
      //Closing the document
      document.close();

   }
}

使用以下命令从命令提示符编译并执行保存的 Java 文件。

javac PdfToImage.java 
java PdfToImage

执行后,上述程序将检索给定 PDF 文档中的图像,并显示以下消息。

Image created

如果您验证给定的路径,您可以观察到图像已生成并保存为 myimage.jpg,如下所示。

Generateimage
广告