Java实现将PDF转为图片格式的方法详解

 更新时间:2023年03月23日 14:35:03   作者:Carina-baby  
PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,本文将介绍如何通过Java应用程序快速高效地将PDF转为图片格式。一起来看看吧

PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,大家在工作中遇到PDF文件转图片文件的问题时是怎么解决的呢?你们使用的方法简单方便吗?如果很麻烦的话,不妨来了解一下这篇文章分享的方法哦。本文将介绍如何通过Java应用程序快速高效地将PDF转为图片格式。一起来看看吧!

  • 将整个 PDF 文档转换为多个图片
  • 将指定 PDF 页面转换为图片

代码编译环境

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.0

1.引入jar

导入方法1:

手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

 导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

        </repository>

    </repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

将整个 PDF 文档转换为多个图片

仅需三步即可将整个 PDF 文档转换为多个图片,详细步骤如下:

  • 创建 PdfDocument 类的对象,并通过 PdfDocument.loadFromFile(String filename) 方法加载 PDF 文档。
  • 循环遍历 PDF 每一页,并通过 PdfDocument.saveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) 方法将 PDF 页面保存为图片格式。
  • 指定图片格式为 .png 格式。

完整代码

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++) {
            //将页面保存为图片,并设置DPI分辨率
            BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap,500,500);
            //将图片保存为png格式
            File file = new File( String.format(("ToImage-img-%d.png"), i));
            ImageIO.write(image, "PNG", file);
        }
        pdf.close();
    }
}

效果图

将指定 PDF 页面转换为图片

以下是实现格式转换的主要步骤:

  • 创建 PdfDocument 类的实例。
  • 通过 PdfDocument.loadFromFile(String filename) 方法加载 PDF 文档。
  • 调用 PdfDocument.saveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) 方法将 PDF 指定页面保存为图片。
  • 设置图片格式为 .png 格式。

完整代码

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第1页保存为图片,并设置图片DPI分辨率
        BufferedImage image= pdf.saveAsImage(0, PdfImageType.Bitmap,500,500);

        //保存为png格式
        ImageIO.write(image, "PNG", new File("ToPNG.png"));
    }
}

效果图

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

相关文章

  • SpringBoot+TestNG单元测试的实现

    SpringBoot+TestNG单元测试的实现

    本文主要介绍了SpringBoot+TestNG单元测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • 解析ConcurrentHashMap: 预热(内部一些小方法分析)

    解析ConcurrentHashMap: 预热(内部一些小方法分析)

    ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment的结构和HashMap类似,是一种数组和链表结构,今天给大家普及java面试常见问题---ConcurrentHashMap知识,一起看看吧
    2021-06-06
  • Java使用split截取字符串过程解析

    Java使用split截取字符串过程解析

    这篇文章主要介绍了Java使用split截取字符串过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java 数据结构哈希算法之哈希桶方式解决哈希冲突

    Java 数据结构哈希算法之哈希桶方式解决哈希冲突

    实际上哈希桶是解决哈希表冲突的一种方法。常见的解决冲突的两种方法:分离链接法、开放定址法。其中使用分离链接法,得到的对应关系即为哈希桶
    2022-02-02
  • spring boot 学习笔记(入门篇)

    spring boot 学习笔记(入门篇)

    ing Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。这篇文章给大家带来了spring boot 入门学习笔记,需要的朋友参考下
    2018-02-02
  • java 2d画图示例分享(用java画图)

    java 2d画图示例分享(用java画图)

    这篇文章主要介绍了java 2D画图示例(用java画图),需要的朋友可以参考下
    2014-04-04
  • java中for循环执行的顺序图文详析

    java中for循环执行的顺序图文详析

    关于java的for循环想必大家非常熟悉,它是java常用的语句之一,这篇文章主要给大家介绍了关于java中for循环执行顺序的相关资料,需要的朋友可以参考下
    2021-06-06
  • 通过IDEA快速定位和排除依赖冲突问题

    通过IDEA快速定位和排除依赖冲突问题

    这篇文章主要介绍了通过IDEA快速定位和排除依赖冲突问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • SpringBoot实现根据手机号获取归属地

    SpringBoot实现根据手机号获取归属地

    这篇文章主要为大家详细介绍了SpringBoot如何实现根据手机号获取归属地,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 关于springboot使用rocketmq RocketMQMessageListener参数问题

    关于springboot使用rocketmq RocketMQMessageListener参数问题

    这篇文章主要介绍了springboot使用rocketmq RocketMQMessageListener参数问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值需要的朋友可以参考下
    2022-11-11

最新评论