JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。

一、icepdf。有收费版和开源版,几种方法里最推荐的。转换的效果比较好,能识别我手头文件中的中文,就是转换后可能字体的关系部分字间距有点宽。因为,字体支持是要收费的,所以转换的图片会带有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法

1、下载icepdf的架包,并导入项目中,这里用到4个,如下:

icepdf-core.jar、icepdf-viewer.jar、icepdf-pro.jar(貌似是去水印)、icepdf-pro-intl.jar(貌似是去水印)

icepdf-core.jar、icepdf-viewer.jar下载地址:http://download.csdn.net/detail/romantic_pk/9672082

2、附上代码例子:

import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.util.GraphicsRenderingHints;/*** pdf文件转图片(icepdf技术)* @author songjinzhou* @day 2016-11-03*/
public class PDF2IMGTest {public static void main(String[] args) {String filePath = "D:/fileUpload/ftpDownload/xxx.pdf";Document document = new Document();try {document.setFile(filePath);float scale = 1.1f;// 缩放比例(大图)// float scale = 0.2f;// 缩放比例(小图)float rotation = 90f;// 旋转角度for (int i = 0; i < document.getNumberOfPages(); i++) {BufferedImage image = (BufferedImage) document.getPageImage(i,GraphicsRenderingHints.SCREEN,org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX,rotation, scale);RenderedImage rendImage = image;try {File file = new File("D:/fileUpload/ftpDownload/icepdf_a" + i + ".jpg");// 这里png作用是:格式是jpg但有png清晰度ImageIO.write(rendImage, "png", file);} catch (IOException e) {e.printStackTrace();}image.flush();}document.dispose();} catch (PDFException e1) {e1.printStackTrace();} catch (PDFSecurityException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}System.out.println("======================完成============================");}
}

  从转换效果来看png的清晰度会比jpg相对较高。有个小技巧请看如下两行代码,也就是转换成jpg格式但有png清晰度的图片。

File file = new File("D:/fileUpload/ftpDownload/icepdf_a" + i + ".jpg");
ImageIO.write(rendImage, "png", file);

二、pdfbox。转换效果还可以,能识别我手中文件大部分内容,有部分内容无法识别。

1、下载pdfbox的架包,并导入项目,这里用到1个jar包,如下:

pdfbox-app-2.0.2.jar      jar包免费下载地址:http://download.csdn.net/detail/romantic_pk/9679121

2、附上代码例子:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;public class PDF2IMGTest {public static void main(String[] args) {File file = new File("c:\\test.pdf");try {PDDocument doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {// 方式1,第二个参数是设置缩放比(即像素)BufferedImage image = renderer.renderImageWithDPI(i, 296);// 方式2,第二个参数是设置缩放比(即像素)// BufferedImage image = renderer.renderImage(i, 2.5f);ImageIO.write(image, "PNG", new File("C:\\pdfbox_image.png"));}} catch (IOException e) {e.printStackTrace();}}
}

三、jpedal。效果不太理想,貌似对中文支持不太好,下面的lgpl版本是开源版。

1、下载jpedal的架包,并导入项目中,如下:

2、附上代码例子:

 1   PdfDecoder decode_pdf = new PdfDecoder(true);
 2   try {
 3     decode_pdf.openPdfFile("c:\\test.pdf"); //file
 4 //   decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file
 5 //      decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF
 6 //      decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false);
 7 //      decode_pdf.openPdfFileFromInputStream(in, false);
 8
 9     int start = 1, end = decode_pdf.getPageCount();
10     for(int i = start; i < end+1; i++){
11       BufferedImage img=decode_pdf.getPageAsImage(i);
12       try {
13         ImageIO.write(img, "png", new File("C:\\jpedal_image.png"));
14       } catch (IOException e) {
15         e.printStackTrace();
16       }
17     }
18     decode_pdf.closePdfFile();
19   } catch (PdfException e) {
20     e.printStackTrace();
21   }

  例子的3-7行还提供了几种不同的pdf打开方式,可以根据自己的需要选择使用。

转载地址:http://www.cnblogs.com/pcheng/p/5704470.html

JAVA的pdf转图片方法相关推荐

  1. Java制作PDF转图片小工具

    背景: 前几日一位朋友突然找我帮忙将PDF转换成图片,我仗义相助,建议他使用福昕阅读器,然而他说转换需要VIP会员,老贵了.我花了半天时间寻找免费会员,结果不出所料没有找到,我一怒之下,便决定亲自动手 ...

  2. 【老徐子杰】PDF转图片方法(解决中文乱码)

    [老徐子杰]PDF转图片方法(解决中文乱码) 欢迎交流使用(本文原创:转载请注明出处) 在做项目的时候,说实话大公司不可能使用破解版的DLL进行开发.所以ADOBE的组建不用,基本的BIMP转法面对各 ...

  3. java生成pdf方法_详解Java生成PDF文档方法|chu

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持iText,生成PDF文档,还支持将XML ...

  4. java之pdf转图片的几种方式,以及在使用过程中遇到的问题和处理方案

    java之pdf转图片的几种方式,以及在使用过程中遇到的问题和处理方案 方式 pdfBox iText(方式同上) spire.pdf.free(方式同上) 遇到的问题 图片清晰度.这种方式都有这个问 ...

  5. Java实现pdf转图片的工具类(三种方法实现PDF转图片的案例)【亲测可用】

    提示:有些时候我们需要在项目中展示PDF,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好.Java使用各种技术将pdf转换成图片格式,并且内容不失帧.清晰可见,该工具类也是开发中常用到的 ...

  6. Java 实现PDF转图片,去除PDF水印,图片转PDF

    1.依赖jar包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian& ...

  7. Java给PDF添加图片水印,且可以文字定位

    这两天公司开发需要对PDF增加特定图片,类似于电子印章效果,试了许多网上的方式,经过测试PDF只可以插入图片或者通过RSA实现专属签章,我觉得插入图片好用一些,效果如下: 这是定位了<盖章> ...

  8. java生成PDF(图片,模板,表格)

    刚接到了一个需求,生成一个pdf,一开始以为挺简单的,通过模板生成嘛,我也发过相应的文章,根据模板直接生成pdf,响应到前端或者根据模板生成pdf,直接指定下载位置,这两种方案都可以,不过这篇文章主要 ...

  9. 转https_PDF怎么转成JPG最简单?分享免费的PDF转图片方法

    PDF怎么转成JPG最简单?能够独立完成PDF文件转换是我们日常工作中需要掌握的一项技能,PDF转换方面就有PDF转Word.PDF转PPT.PDF转图片等,也包括Word转PDF.PPT转PDF.图 ...

最新文章

  1. MONGODB 数据的存储顺序发现不是按_ID 的顺序存储的原因
  2. 安装引导黑屏_南京课工场IT培训:引导过程与服务控制(理论笔记篇)
  3. webpack学习之路(四)webpack-hot-middleware实现热更新
  4. SGU 117 Counting
  5. ssm框架逻辑删除mysql_MybatisPlus--CRUD接口及主键增长策略、自动填充、乐观锁更新数据...
  6. 【SQL】血缘解析 SQL parser 工具介绍
  7. 即插即用!开源项目【云框架】发布“基于Spring cloud的微服务架构”
  8. 用《内网穿山甲》共享内网中的远程桌面服务
  9. 计算机实验报告简要实验步骤,计算机实验报告模板
  10. RUBY发送验证码通知短信(互亿无线)
  11. vue中如何使用h5自定义标签?
  12. 林信良(良葛格)在CSDN上也开专栏了~
  13. 如何从零开始解读什么叫产品经理
  14. [学习SLAM]数学中的几何变换-向量叉乘/旋转轴、旋转角度和旋转矩阵/坐标系变换
  15. css 实现图片间用间隔线(竖线)
  16. error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
  17. 【ASE入门学习】ASE入门系列六——塞尔达扰动火焰
  18. vi 跳到文件最后一行
  19. JNI官方规范中文版
  20. 编译release版本签名系统

热门文章

  1. 过拟合解决方案 —— early stopping
  2. 腾讯和华为领导的中国区块链联盟将推出无币区块链
  3. ElementUI入门到入土
  4. chrome打开指定网址
  5. 一分钟教你-ps制作液态流体效果
  6. mysql好友关系数据表设计_社交系统中用户好友关系数据库设计
  7. Anaconda创建虚拟环境、配环境变量步骤笔记
  8. 中等专业学校校园广播系统解决方案-职业中专校园IP网络广播应用
  9. Solr 7 - 多字段查询及 PHP 调用篇
  10. 「HTML和CSS入门指南」hr 标签详解