Java使用icepdf将pdf文件按页转成图片

 更新时间:2018年12月19日 14:20:07   作者:天外游心  
这篇文章主要为大家详细介绍了Java使用icepdf将pdf文件按页转成图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java使用icepdf将pdf文件按页转成图片的具体代码,供大家参考,具体内容如下

Maven icepdf包,这里过滤掉jai-core

<dependency>
 <groupId>org.icepdf.os</groupId>
 <artifactId>icepdf-core</artifactId>
 <version>6.1.2</version> 
 <exclusions>
  <exclusion>
   <groupId>javax.media</groupId>
   <artifactId>jai-core</artifactId>
  </exclusion>
 </exclusions>
</dependency>

代码如下

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;

import org.apache.commons.logging.LogFactory;
import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;


public class test20160929 {
 public static final String FILETYPE_JPG = "jpg";

 /**
  * 
  * 将指定的pdf文件转换为指定路径的图片
  * 
  * @param filepath 原文件路径,例如d:/test/test.pdf
  * 
  * @param imagepath 图片生成路径,例如 d:/test/
  * 
  * @param zoom 缩略图显示倍数,1表示不缩放,0.3则缩小到30%
  * 
  */
 public static void tranfer(String filepath, String imagepath, float zoom) throws PDFException, PDFSecurityException, IOException {
  Document document = null;
  float rotation = 0f;
  document = new Document();
  document.setFile(filepath);
  int maxPages = document.getPageTree().getNumberOfPages();

  for (int i = 0; i < maxPages; i++) {
   BufferedImage img = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, zoom);
   Iterator iter = ImageIO.getImageWritersBySuffix(FILETYPE_JPG);
   ImageWriter writer = (ImageWriter) iter.next();
   File outFile = new File(imagepath + new File(filepath).getName() + "_" + new DecimalFormat("000").format(i) + "." + FILETYPE_JPG);
   FileOutputStream out = new FileOutputStream(outFile);
   ImageOutputStream outImage = ImageIO.createImageOutputStream(out);
   writer.setOutput(outImage);
   writer.write(new IIOImage(img, null, null));
  }
  System.out.println("转换完成");
 }

 public static void main(String[] args) throws PDFException, PDFSecurityException, IOException {
  tranfer("d:/test/test.pdf", "d:/test/", 1);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • springboot mybatis里localdatetime序列化问题的解决

    springboot mybatis里localdatetime序列化问题的解决

    这篇文章主要介绍了springboot mybatis里localdatetime序列化问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Java 添加、读取和删除 Excel 批注的操作代码

    Java 添加、读取和删除 Excel 批注的操作代码

    这篇文章主要介绍了Java 添加、读取和删除 Excel 批注的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • SpringCloud解决Feign异步回调问题(SpringBoot+Async+Future实现)

    SpringCloud解决Feign异步回调问题(SpringBoot+Async+Future实现)

    这篇文章主要介绍了SpringCloud解决Feign异步回调问题(SpringBoot+Async+Future实现),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Spring中Bean扫描原理详情

    Spring中Bean扫描原理详情

    这篇文章主要介绍了Spring中Bean扫描原理详情,文章为荣啊主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Spring Boot中使用 Spring Security 构建权限系统的示例代码

    Spring Boot中使用 Spring Security 构建权限系统的示例代码

    本篇文章主要介绍了Spring Boot中使用 Spring Security 构建权限系统的示例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Java中使用HashMap时指定初始化容量性能解析

    Java中使用HashMap时指定初始化容量性能解析

    这篇文章主要为大家介绍了Java中使用HashMap时指定初始化容量性能解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Spring Cache使用RedisCache案例解析

    Spring Cache使用RedisCache案例解析

    这篇文章主要介绍了Spring Cache使用RedisCache案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Jmeter常见函数使用方法汇总

    Jmeter常见函数使用方法汇总

    这篇文章主要介绍了Jmeter函数使用方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • MybatisPlus代码生成器的使用方法详解

    MybatisPlus代码生成器的使用方法详解

    在这里我将展示如何自动生成实体类、控制层、服务层、mapper等代码,这些基础的代码全部不需要我们手动创建,由MybatisPlus自动帮我们完成,我们只需要告诉MybatisPlus怎么生成这些代码就可以了,在此之前我们需要配置好测试的环境,数据库和表数据 ,需要的朋友可以参考下
    2021-06-06
  • 详解Spring boot Admin 使用eureka监控服务

    详解Spring boot Admin 使用eureka监控服务

    本篇文章主要介绍了详解Spring boot Admin 使用eureka监控服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12

最新评论