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格式

转换后

相关推荐
Java 码农31 分钟前
Centos7 maven 安装
java·python·centos·maven
harmful_sheep39 分钟前
maven mvn 安装自定义 jar 包
java·maven·jar
007php0071 小时前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
JH30731 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
皮皮林5513 小时前
订单分库分表后,商家如何高效的查询?
java
Roye_ack3 小时前
【项目实战 Day12】springboot + vue 苍穹外卖系统(Apache POI + 工作台模块 + Excel表格导出 完结)
java·spring boot·后端·excel·苍穹外卖
Code blocks4 小时前
SpringBoot自定义请求前缀
java·spring boot·后端
Jabes.yang5 小时前
Java求职面试:从Spring Boot到Kafka的技术探讨
java·spring boot·面试·kafka·互联网大厂
canonical_entropy5 小时前
DDD本质论:从哲学到数学,再到工程实践的完整指南之实践篇
java·后端·领域驱动设计
_Power_Y6 小时前
Java面试常用算法api速刷
java·算法·面试