//import com.spire.pdf.PdfDocument;
/**
*这种方法如果想等比例的转图片得经过抽图这一步骤,也可能是有方法,但是我不知道
*/
public String pdfToImage(String PdfFilePath,int width,int height) throws IOException {// 加载PDF文件if(width == 0) {width = 1043;}if(height == 0) {height = 1501;}//      System.out.println("开始读pdf文件");File file = new File(PdfFilePath);String path = "";int dot = file.getName().lastIndexOf('.');
//      System.out.println("dot:" + dot);String imagePDFName = file.getName().substring(0, dot); // 获取图片文件名
//      System.out.println("imagePDFName:" + imagePDFName);PdfDocument doc = new PdfDocument();doc.loadFromFile(PdfFilePath);// 保存PDF的每一页到图片BufferedImage image;for (int i = 0; i < doc.getPages().getCount(); i++) {String imgFilePathPrefix = historyDataPlugin.pdfPicPath + File.separator + "temp"  + File.separator + imagePDFName + ".png";image = doc.saveAsImage(i);File fileImg=new File(imgFilePathPrefix); ImageIO.write(image, "PNG", fileImg);//           path = imgFilePathPrefix;String name=fileImg.getName();try{BufferedImage input = ImageIO.read(fileImg);Image big = input.getScaledInstance(Integer.valueOf(width), Integer.valueOf(height),Image.SCALE_DEFAULT);BufferedImage inputbig = new BufferedImage(Integer.valueOf(width), Integer.valueOf(height),BufferedImage.TYPE_INT_BGR);inputbig.getGraphics().drawImage(input, 0, 0, Integer.valueOf(width), Integer.valueOf(height), null); //画图File file2 =new File(historyDataPlugin.pdfPicPath);            //此目录保存缩小后的关键图if(file2.exists()){
//                       System.out.println("多级目录已经存在不需要创建!!");}else{//如果要创建的多级目录不存在才需要创建。file2.mkdirs();}ImageIO.write(inputbig, "PNG", new File(historyDataPlugin.pdfPicPath+ File.separator+name));   //将其保存在C:/imageSort/targetPIC/下path = historyDataPlugin.pdfPicPath+ File.separator+name;} catch (Exception ex) {ex.printStackTrace();}}doc.close();return path;}/**** PDF文件转PNG图片,全部页数* 这种方法对于部分pdf来说,会转图片失败* @param PdfFilePath*            pdf完整路径* @param imgFilePath*            图片存放的文件夹* @param dpi*            dpi越大转换后越清晰,相对转换速度越慢* @return* @throws IOException*/public String pdf2Image(String PdfFilePath/* , int dpi */) throws IOException {System.out.println("开始读pdf文件");File file = new File(PdfFilePath);String path = "";PDDocument pdDocument;String imgPDFPath = file.getParent();int dot = file.getName().lastIndexOf('.');System.out.println("dot:" + dot);String imagePDFName = file.getName().substring(0, dot); // 获取图片文件名System.out.println("imagePDFName:" + imagePDFName);// String imgFolderPath = null;// if (dstImgFolder.equals("")) {// imgFolderPath = pdfPath + File.separator + imagePDFName;// 获取图片存放的文件夹路径// } else {// imgFolderPath = dstImgFolder + File.separator + imagePDFName;// }System.out.println("imgFolderPath:" + historyDataPlugin.pdfPicPath);// if (createDirectory(imgFolderPath)) {pdDocument = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(pdDocument);/* dpi越大转换后越清晰,相对转换速度越慢 */PdfReader reader = new PdfReader(PdfFilePath);int pages = reader.getNumberOfPages();StringBuffer imgFilePath = null;for (int i = 0; i < pages; i++) {String imgFilePathPrefix = historyDataPlugin.pdfPicPath + File.separator + imagePDFName;imgFilePath = new StringBuffer();imgFilePath.append(imgFilePathPrefix);imgFilePath.append(".png");File dstFile = new File(imgFilePath.toString());path = imgFilePath.toString();// 根据pdf大小等比例转图片,此处第二个参数设置为1就是等比例抽取BufferedImage image = renderer.renderImage(i, 1F);// BufferedImage image = renderer.renderImageWithDPI(i, dpi);ImageIO.write(image, "png", dstFile);}System.out.println("PDF文档转PNG图片成功!");// } else {// System.out.println("PDF文档转PNG图片失败:" + "创建" + imgFolderPath + "失败");// }return path;}

使用的jar包:
fontbox-2.0.1.jar
pdfbox-2.0.1.jar
spire.pdf-2.2.0.jar

java pdf转图片相关推荐

  1. java pdf转 图片

    我也是从网上找的,原文没找到,写个文章祭奠下原博主,勿怪勿怪 依赖 <dependency><groupId>org.apache.pdfbox</groupId> ...

  2. java pdf转图片 pdfbox_JAVA基于PDF box将PDF转为图片

    在一项目中用到,本身我是.NET的,团队中有用到JAVA,故此我处理这个功能,记录以下备用. 1.引用:fontbox-2.0.16.jar.pdfbox-app-2.0.16.jar 版本一定要正确 ...

  3. java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用于添加文本水印addTextWartermark()和图片水印addImageWartermark()到P ...

  4. java pdf输出图片_Java PDF转换成图片并输出给前台展示

    首先需要导入所需工具类 org.apache.pdfbox fontbox 2.0.1 org.apache.pdfbox pdfbox 2.0.1 cn.hutool hutool-all 4.1. ...

  5. java pdf添加图片_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  6. java pdf 插入图片_java在pdf模板的指定位置插入图片

    个人感觉pdf的操作比word舒心多了 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextpdf 5.5.6 com.itextpdf itext- ...

  7. java pdf 插入图片_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  8. java pdf转图片原理_pdf转图片程序(java实现)

    所需要的jar包如下,可自行从maven官网上下载 所需要的jar包 import java.awt.image.BufferedImage; import java.io.File; import ...

  9. java PDF转换图片(IMG)

    public static void pdfImg(String inputPdf, long ItemId, String outPut){//加载PDF文件PdfDocument doc = ne ...

  10. JAVA pdf转图片 图片ocr文字

    PDF文件 转图片 之前用可很多其他的 都不好用 很多内容根本读不到 pom.xml <dependency><groupId>org.icepdf.os</groupI ...

最新文章

  1. 2022-2028年中国聚硫橡胶行业市场研究及前瞻分析报告
  2. 1、代理服务器及haproxy基础
  3. 推荐一些冷门但是超级实用的工具
  4. 给华为S5700交换机配下链路聚合
  5. 如何把你的Windows PC变成瘦客户机
  6. 【解答】一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备(?)组电池,(?)个充电器,可以让模型每次行驶完可以立即换电池行驶不用等待。
  7. 在CDH上用外部Spark2.2.1安装和配置 CarbonData
  8. Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式
  9. 计算机组成原理6-20,计算机组成原理课后题6.20教案.ppt
  10. 微软开源 Tye 项目,可简化微服务开发
  11. 用户表如何区分普通用户和管理员_Gate.io 比特百科:什么是ETH 2.0及普通用户如何参与ETH 2.0质押挖矿...
  12. 使用dropwizard(3)-加入DI-dagger2
  13. Gopher一定要会的代码自动化检查
  14. 如何开始一个深度学习项目
  15. Algorithm:多维数组和矩阵
  16. 神舟战神换cpu教程_神舟战神做工如何?神舟战神K650D-A29拆机图解教程
  17. 第62篇:批量去除EXCEL文件密码
  18. 记录五年前的天马行空的想象
  19. win10“User Profile Service 服务未能登录,无法加载用户配置文件问题
  20. Android WebView最佳优化(WebView池)

热门文章

  1. pip install xx 时遇到There was a problem confirming the ssl certificate…的解决办法
  2. 教你几个Excel常用的数据分析技巧!
  3. 如何设置Android手机的sqlite3命令环境
  4. 微信中无法下载APP的解决办法
  5. 两个表格合并怎么做?
  6. C++ 罗马数字转整数
  7. MATLAB实现各种概率密度函数(概率密度/分布/逆概率分布函数)
  8. openssl1.1.1下载地址
  9. RouterOS 重置密码
  10. Jenkins自动化部署学习笔记(二、在Windows系统上使用Jenkins.war直接运行 )