JAVA实现PDF转图片

前言

使用wps自带的转换工具,需要花钱,不花钱的话还带水印。于是,使用java程序将pdf转换为图片。

代码

依赖
xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>fontbox</artifactId>
        <version>2.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.4</version>
    </dependency>
</dependencies>
方法
java 复制代码
    /**
     * 转换全部的pdf
     * @param pdfFile 需要转换的pdf文件
     * @param fileAddress 图片文件保存地址
     * @param filename 图片文件名
     * @param type 图片类型
     */
    private static void pdf2png(File pdfFile,String fileAddress,String filename,String type){
        try {
            PDDocument doc = PDDocument.load(pdfFile);
            PDFRenderer renderer = new PDFRenderer(doc);
            int pageCount = doc.getNumberOfPages();
            for (int i = 0; i < pageCount; i++) {
                BufferedImage image = renderer.renderImageWithDPI(i, 144);
                ImageIO.write(image,type,new File(fileAddress+"\\"+filename+"_"+(i+1)+"."+type));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 指定转换页数
     * @param pdfFile 需要转换的pdf文件
     * @param fileAddress 图片文件保存地址
     * @param filename 图片文件名
     * @param type 图片类型
     * @param startIndex 起始页
     * @param endIndex 结束页
     */
    private static void pdf2png(File pdfFile,String fileAddress,String filename,String type,int startIndex,int endIndex){
        try {
            PDDocument doc = PDDocument.load(pdfFile);
            PDFRenderer renderer = new PDFRenderer(doc);
            int pageCount = doc.getNumberOfPages();
            for (int i = startIndex; i < endIndex; i++) {
                BufferedImage image = renderer.renderImageWithDPI(i, 144);
                ImageIO.write(image,type,new File(fileAddress+"\\"+filename+"_"+(i+1)+"."+type));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
测试结果
java 复制代码
    public static void main(String[] args) {
        File file = new File("D:\\BaiduNetdiskDownload\\JOJO彩色版第3部:星尘斗士_15.pdf");
        pdf2png(file,"D:\\BaiduNetdiskDownload\\JOJO","image","png",92,100);
    }

pdf格式

转换后

相关推荐
玄〤13 小时前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
tb_first13 小时前
SSM速通3
java·jvm·spring boot·mybatis
独自破碎E13 小时前
总持续时间可被 60 整除的歌曲
java·开发语言
Python+JAVA+大数据13 小时前
TCP_IP协议栈深度解析
java·网络·python·网络协议·tcp/ip·计算机网络·三次握手
丶小鱼丶13 小时前
Java基础之【多线程】
java
东东51614 小时前
基于vue的电商购物网站vue +ssm
java·前端·javascript·vue.js·毕业设计·毕设
她说..14 小时前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
鹿角片ljp14 小时前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
skywalker_1114 小时前
网络编程篇
java·网络协议·网络编程
毕设源码-朱学姐14 小时前
【开题答辩全过程】以 基于Java的九价疫苗预约系统为例,包含答辩的问题和答案
java·开发语言