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.Java 版 IronPDF

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

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

3.先决条件

在我们开始之前,必须具备以下几点才能进行转换。

1.系统中应安装 Java,并在环境变量中设置其路径。请参考 链接 Java 安装。

2.应安装一个良好的 Java IDE,如 Eclipse 或 IntelliJ。要下载 Eclipse,请访问 链接 并下载 IntelliJ,请点击此处 链接.

3.在开始转换之前,应将 Maven 与集成开发环境集成。有关安装 Maven 并将其集成到环境中的教程,请访问以下网站 链接[链接].

4.安装 IronPDF for Java

一旦满足了所有前提条件,安装 IronPDF for Java 就变得非常简单,即使是新 Java 开发人员也能轻松上手。

要使用 IronPDF for Java,首先需要一个集成开发环境。在本文中,我们将使用 JetBrains IntelliJ IDEA 安装所需的依赖项并运行示例。

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

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

创建新的 Maven 项目

这时会出现一个新窗口。输入项目名称并点击完成。

Java PDF to Image - Figure 2: 新项目名称

新项目名称

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

Java PDF to Image - Figure 3: 新项目

新项目

在 pom.xml 文件中添加以下依赖项,或从以下链接下载 API 的 JAR 文件 链接.

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

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

Java PDF to Image - Figure 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 to Image - Figure 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 的其他操作指南,请参阅以下内容 链接.有关如何将 PDF 转换为图像的更多信息,请访问此页面 链接.

IronPDF for Java 用于开发目的是免费的,但用于商业用途则需要许可证。获取有关许可证的更多信息 这里.