java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java PDF转图片

Java开发之将PDF转换为多种图片格式的方法指南

作者:用户372157426135

本文将详细介绍如何使用 Java 将 PDF 转换为 PNG、JPG、TIFF 以及 SVG 格式,同时给出完整示例代码和解析,有需要的小伙伴可以参考一下

引言

在实际开发中,PDF 文件广泛用于存储合同、报告、发票以及技术文档。然而,有时我们需要将 PDF 转换为图片格式,以便在网页上显示、生成缩略图、进行图像处理或打印。例如:

借助编程方式批量处理 PDF 转图片,能够大幅提高效率,保证输出一致性。本文将详细介绍如何使用 Java 将 PDF 转换为 PNG、JPG、TIFF 以及 SVG 格式,同时给出完整示例代码和解析。

环境准备

引入 Spire.PDF for Java

Spire.PDF for Java 是一个功能强大的 PDF 操作库,支持 PDF 的读取、编辑、转换等多种功能。

如果项目使用 Maven,可以在 pom.xml 中添加:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>11.8.3</version>
    </dependency>
</dependencies>

非 Maven 项目可直接下载 JAR 包并导入项目。引入完成后即可使用 import com.spire.pdf.* 操作 PDF 文档。

PDF 转 PNG / JPG

使用场景及说明:

当我们需要在网页或系统中展示 PDF 页面预览,或者生成报表、发票等文档的缩略图、便于打印或嵌入到其他文档中时,通常会选择将 PDF 转为位图格式(如 PNG 或 JPG)。PNG 支持透明背景,适合网页显示;JPG 压缩率高,适合打印或存储大量图像。以下示例展示如何将 PDF 的每一页转换为高分辨率图片,并保存为单独文件。

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PDFtoImage {
    public static void main(String[] args)throws IOException {
        // 实例化 PdfDocument
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文档
        pdf.loadFromFile("示例文档.pdf");

        // 遍历 PDF 每一页
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            // 将页面保存为 Bitmap 图片,并设置水平和垂直分辨率
            BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap, 500, 500);

            // 保存为 PNG 文件
            File file = new File(String.format("转换图片-%d.png", i));
            ImageIO.write(image, "PNG", file);
        }

        // 关闭文档
        pdf.close();
    }
}

说明:

PDF 转 SVG

使用场景及说明:

如果希望在网页或应用程序中展示矢量预览,而不失真,SVG 是最佳选择。与位图不同,矢量图可以任意缩放,保证清晰度。使用 PDF 转 SVG 可以直接将 PDF 页面转换为可嵌入 HTML 的矢量图,适合需要动态缩放或进行前端渲染的场景。

import com.spire.pdf.*;

public class PDFToSVG {
    public static void main(String[] args) {
        // 创建 PdfDocument 对象
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文档
        pdf.loadFromFile("示例文档.pdf");

        // 将 PDF 保存为 SVG
        pdf.saveToFile("转换结果.svg", FileFormat.SVG);
    }
}

说明:

PDF 转 TIFF

使用场景及说明:

TIFF 格式常用于打印、档案保存和多页图像处理。与 PNG/JPG 不同,TIFF 支持多页文档,可以一次性保存整个 PDF 或指定页码。此方法适合需要生成多页打印文档、档案存储或在图像处理软件中进一步处理 PDF 内容的场景。

import com.spire.pdf.*;

public class PDFtoTiff {
    public static void main(String[] args) {
        // 加载 PDF 文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("示例文档.pdf");

        // 保存整篇文档为 TIFF
        pdf.saveToTiff("转换结果.tiff");

        // 保存指定页面范围为 TIFF(第 2 页到第 3 页,设置 DPI)
        pdf.saveToTiff("转换结果部分.tiff", 1, 2, 400, 600);
    }
}

说明:

批量 PDF 转图片

使用场景及说明:

在实际项目中,经常会遇到需要处理大量 PDF 文件的需求,例如批量生成报表预览图、发票图片或图像备份。手动处理效率低且容易出错,使用程序批量处理可大幅提高效率,并保持输出一致性。

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class BatchPDFtoImage {
    public static void main(String[] args) throws IOException {
        // 指定 PDF 文件夹
        File folder = new File("pdf文件夹");
        File[] files = folder.listFiles((dir, name) -> name.endsWith(".pdf"));

        for (File file : files) {
            // 加载 PDF
            PdfDocument pdf = new PdfDocument();
            pdf.loadFromFile(file.getAbsolutePath());

            // 遍历每页并保存为 PNG
            for (int i = 0; i < pdf.getPages().getCount(); i++) {
                BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap, 300, 300);
                String outputFile = "图片输出/" + file.getName().replace(".pdf", "_页_" + (i + 1) + ".png");
                ImageIO.write(image, "PNG", new File(outputFile));
            }

            System.out.println(file.getName() + " 已成功转换为图片");
            pdf.close();
        }
    }
}

说明:

总结

本文详细介绍了如何使用 Java 将 PDF 文档转换为多种图片格式,包括 PNG、JPG、TIFF 和 SVG。通过设置分辨率、指定页码和批量处理,可以满足不同应用场景的需求,如网页预览、打印、图像处理等。

掌握 PDF 转图片的编程方法,能够提高开发效率,确保输出效果一致,是开发者在 PDF 自动化处理中的常用技能。

到此这篇关于Java开发之将PDF转换为多种图片格式的方法指南的文章就介绍到这了,更多相关Java PDF转图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文