Java PDF 转换为图像文件

This article was translated from English: Does it need improvement?
Translated
View the article in English

1.导言

将 PDF 页面/文档转换为 JPEG、PNG 或 TIFF 等图像文件在软件行业有很多应用。 有时,您需要 PDF 文件特定页面的图像,以便在其他地方使用,但您唯一的选择是页面的图像截图。 假设您正在开发一个 Java 项目,该项目具有将 PDF 页面加载和转换为图像文件并将其用于其他用途的功能。 使用传统的 Java 代码,转换几乎是不可能的。 为此,我们将使用IronPDF for Java.

2. IronPDF for Java

IronPDF for Java是一个允许您创建、准备和管理 PDF 文件的软件包。 它之所以受到开发人员的欢迎,是因为它的 PDF 文档生成组件可以让开发人员读取 PDF 文件,并在无需使用 Adobe Acrobat 的情况下生成/创建和修改 PDF 文件。 IronPDF for Java 支持自定义页眉/页脚、签名、附件、密码和安全机制。 一个改进的性能特性是完全的多线程和异步支持。 IronPDF for Java 适用于基于 Maven 的项目。

下面我们将讨论如何使用 Java 将 PDF 页面转换为 JPEG、JPG 或 PNG 等图像格式。

3. 先决条件

在我们开始之前,有几点必须明确以进行此转换。

  1. 系统中应安装Java,并且应在环境变量中设置其路径。 请参考Java 安装指南如果您尚未安装 Java,请安装 Java。

  2. 应该安装一个好的Java IDE,比如Eclipse或IntelliJ。 要下载 Eclipse,请访问Eclipse 下载页面如需下载 IntelliJ,请访问此处IntelliJ 下载页面.

  3. 在开始转换之前,Maven 应与集成开发环境集成。 有关安装 Maven 并将其集成到环境中的教程,请访问此处Maven 安装教程.

4. Java 版 IronPDF 的安装

一旦满足了所有前提条件,安装 IronPDF for Java 就变得简单易行,即使是新的 Java 开发人员也不例外。

要使用 IronPDF for Java,首先您需要一个 IDE。在本文中,我们将使用 JetBrains IntelliJ IDEA 来安装所需的依赖项并运行示例。

首先,打开JetBrains IntelliJ IDEA并创建一个新的Maven项目。

Java PDF 转换为图像 - 图 1:创建新的 Maven 项目

创建新的 Maven 项目

一个新窗口将会出现。 输入项目名称,然后点击完成。

Java PDF 转换为图像 - 图 2:新项目名称

新项目名称

点击完成后,将打开一个新项目,默认情况下,项目中会打开pom.xml,这很好,因为我们需要添加 IronPDF for Java 的 Maven 依赖项。

Java PDF 转换为图像 - 图 3: 新项目

新项目

pom.xml 文件中添加以下依赖项,或从以下网址下载 API 的 JAR 文件IronPDF 的 Maven 资源库页面.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2024.11.4</version>
</dependency>

将依赖项放入 pom.xml 文件后,窗口右上角会出现一个小图标。

Java PDF 转图像 - 图 4:Maven 依赖项

Maven 依赖项

点击此图标以安装Maven依赖项。 这只需要几分钟,具体取决于您的网络连接。

5. 使用 IronPDF for Java 将 PDF 文件转换为图像

使用 IronPDF for Java,将 PDF 转换为 JPEG 等图像格式只需几行代码。 它将输入的 PDF 文档转换成输出的图像流。 toBufferedImages "方法返回一个包含 "BufferedImage "对象集合的列表,该列表按页码升序排列。

使用 IronPDF for Java,您不仅可以从 PDF 文档生成图像,还可以直接从 URL 和 HTML 创建图像。

5.1 将PDF文档转换为图像

在以下示例中,我们将把整个PDF文档转换成图片。 要开始,请编写以下代码并运行程序。

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;

public class main {
    public static void main(String [] args) throws IOException {
        PdfDocument instance = PdfDocument.fromFile(Paths.get("business plan.pdf"));
        List<BufferedImage> extractedImages = instance.toBufferedImages();
        ToImageOptions rasterOptions = new ToImageOptions();
        rasterOptions.setImageMaxHeight(800);
        rasterOptions.setImageMaxWidth(500);

        List<BufferedImage> sizedExtractedImages = instance.toBufferedImages(rasterOptions, PageSelection.allPages());
        int pageIndex = 1;
        for (BufferedImage extractedImage : sizedExtractedImages) {
            String fileName = "assets/images/" + pageIndex++ + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
        }
    }
}
JAVA

以下示例的输出结果将保存在项目的 assets 文件夹中(运行程序前创建该文件夹)编号从 1 开始,所有 PDF 页面的编号都将递增。

Java PDF 转换为图像 - 图 5:新项目

将 PDF 转换为图像输出

5.2. 将URL转换为PDF和PDF转换为图像

使用 IronPDF for Java,您可以直接将 HTML 转换为 PDF,然后将生成的 PDF 的每个页面转换为图像。

在下一个示例中,我们将使用亚马逊网站。下面的程序将把 Amazon.com 上的一个页面渲染为 PDF,然后将 PDF 的每个页面输出为图像,存储在 assets 文件夹中。

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;

public class main {
    public static void main(String [] args) throws IOException {
        PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
        List<BufferedImage> extractedImages = pdf.toBufferedImages();
        ToImageOptions rasterOptions = new ToImageOptions();
        rasterOptions.setImageMaxHeight(800);
        rasterOptions.setImageMaxWidth(500);
        List<BufferedImage> sizedExtractedImages = pdf.toBufferedImages(rasterOptions, PageSelection.allPages());
        int i = 1;
        for (BufferedImage extractedImage : sizedExtractedImages) {
            String fileName = "assets/images/" + i++ + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
        }
    }
}
JAVA
Java PDF 转换为图像 - 图 6:PDF 转图像输出

将 PDF 转换为图像输出

将对 ToImageOptions 实例的调用替换为下面的调用,从而调整根据上述示例创建的图像的分辨率:

rasterOptions.setImageMaxHeight(800);
rasterOptions.setImageMaxWidth(500);
JAVA

调用 toBufferedImage 时,上面两行代码将调整生成的每张图片的宽度和高度。

6. 结论

本操作指南演示了如何使用 IronPDF for Java 将 PDF 转换成图片。 IronPDF生成的PDF页面图像同时包含了页码和文档名称,如前例所示。 IronPDF 可以生成不同格式的图像:JPEG、JPG、TIFF 等多种格式。

IronPDF还允许用户完全控制输出图像的分辨率。 要了解有关 IronPDF for Java 的更多信息,并访问有关如何使用 Java 操作 PDF 的其他 "操作指南",请参考IronPDF Java 文档. 有关如何将 PDF 转换为图片的更多信息,请访问此处IronPDF PDF 转图像示例.

IronPDF for Java 在开发时免费,但商业使用需要许可证。 有关许可证的更多信息,请访问IronPDF Java 许可页面.