开发手册 欢迎您!
软件开发者资料库

PDFBox - 提取图像

PDFBox提取图像 - 从简单和简单的步骤学习PDFBox,从基本到高级概念,包括概述,环境,创建PDF文档,添加页面,加载文档,删除页面,文档属性,添加文本,添加多行,阅读文本,插入图像,加密PDF文档,PDF文档中的JavaScript,拆分PDF文档,合并多个PDF文档,提取图像,添加矩形。

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

PDF文档生成图像

PDFBox library为您提供了一个名为 PDFRenderer 的类,它将PDF文档呈现为AWT BufferedImage.

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

步骤1:加载现有PDF文档

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

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步:将图像写入文件

您可以将上一步中呈现的图像写入a文件使用 write()方法.对于此方法,您需要传递三个参数 :

  • 渲染的图像对象.

  • 表示图像类型的字符串(jpg或png).

  • 需要保存提取图像的文件对象.

ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));

步骤5:关闭文档

最后,使用关闭() PDDocument类的方法如下所示.

document.close();

示例

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

示例图像

此示例演示如何将上述PDF文档转换为图像文件.在这里,我们将在PDF文档的第一页中检索图像并将其另存为 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