使用的工具包:

pdfbox-1.8

fontbox-1.8

maven中导入:

<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.10</version>
</dependency>

注意: 对要求过高项目不建议使用(转化过程中出现字符重叠现象).

下面看代码

package com.yqrt.core.pdf2img;import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;/*** Hello world!**/
public class App
{public final  static String  IMG_TYPE_JPG = "jpg";public final  static String  IMG_TYPE_PNG = "png";public static void main( String[] args ) throws IOException{App app = new App();app.pdf2img("D:\\api.pdf", "D:",IMG_TYPE_PNG);
//          PDDocument pdDocument = app.pdfInfo("D:\\api.pdf");}/*** * @param pdfPath pdf文件的路径* @param savePath 图片保存的地址* @param imgType 图片保存方式*/public void pdf2img(String pdfPath,String savePath,String imgType){String fileName = pdfPath.substring(pdfPath.lastIndexOf("\\")+1, pdfPath.length());fileName = fileName.substring(0,fileName.lastIndexOf("."));InputStream  is = null;PDDocument pdDocument = null; try {is = new BufferedInputStream(new FileInputStream(pdfPath));PDFParser parser = new PDFParser(is);parser.parse();pdDocument = parser.getPDDocument();List<PDPage> pages = pdDocument.getDocumentCatalog().getAllPages();for (int i = 0; i < pages.size(); i++) {String saveFileName = savePath+"\\"+fileName+i+"."+imgType;PDPage page =  pages.get(i);pdfPage2Img(page,saveFileName,imgType);}} catch (Exception e) {e.printStackTrace();}finally{if(pdDocument != null){try {pdDocument.close();} catch (IOException e) {e.printStackTrace();}}}}/*** pdf页转换成图片* @param page     * @param saveFileName* @throws IOException*/public void pdfPage2Img(PDPage page,String saveFileName,String imgType) throws IOException{BufferedImage img_temp  = page.convertToImage();Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix(imgType);ImageWriter writer = (ImageWriter) it.next(); ImageOutputStream imageout = ImageIO.createImageOutputStream(new FileOutputStream(saveFileName));writer.setOutput(imageout);writer.write(new IIOImage(img_temp, null, null));}public PDDocument pdfInfo(String filePath) throws IOException{InputStream  is  = new BufferedInputStream(new FileInputStream(filePath));PDFParser parser = new PDFParser(is);parser.parse();PDDocument pdDocument =  parser.getPDDocument();System.out.println("pageNum:"+pdDocument.getNumberOfPages());return pdDocument;}public void createPdf() throws COSVisitorException, IOException{PDDocument document = new PDDocument();PDPage blankPage = new PDPage();document.addPage(blankPage);document.save("D:\\test.pdf");document.close();}
}

JAVA使用pdfbox将pdf转换成图片相关推荐

  1. 使用pdfbox将pdf转换成图片的时候,STSong-Light字体不存在解决方案

    问题 使用pdfbox将pdf转换成图片的时候,STSong-Light字体的文字全为空格问题解决. 告警信息:Using fallback MT-Extra for CID-keyed font S ...

  2. pdfbox将pdf转换成图片时,提示STSong-Light字体缺失:No glyph for 20154 (CID 0ca6) in font STSong-Light

    一.pdfbox把pdf转为图片的过程中出错 把pdf文件转为图片展示,但是展示出来的中文都是 口口 ,日志显示一堆No glyph for * (CID *) in font STSong-Ligh ...

  3. PDF转换成图片(Java pdfbox实现 附中文乱码解决方案)

    PDF转换成图片(Java pdfbox实现) pdf转成图片在java中主流的做法就是pdfbox和icepdf 然而我选择pdfbox 废话不多说上代码 引入依赖 <!--pdfbox--& ...

  4. java调用pdfbox转pdf文件为图片文件,有中文时在windows上正常,部署到linux下乱码

    最近遇到了一个很头疼的问题,我们的项目移动端需要一个读pdf的功能,但是手机端开发人员说移动端是用jquerymobile做的,不能直接甩pdf文件过去(原因是pdf文件太大),于是乎我们想到了2个解 ...

  5. C#技术分享【PDF转换成图片——13种方案】

    1.[O2S.Components.PDFRender4NET.dll],第三方DLL,可以实现PDF转图片,支持32位系统.64位系统 官方试用版的dll左上角会有一排红色水印,下面这个是破解版的没 ...

  6. 怎么把PDF转换成图片?这几种转换方法都可以做到

    怎么把PDF文件转换成图片呢?大家在使用PDF文件的时候,很多情况下不仅是用来发送文件,还会用来阅读文件,如果只需要浏览文件中某部分内容的话,远没有图片使用的方便,我们可以将这部分内容转换成图片来更加 ...

  7. pdf转换成jpg python_【PDF转图片】如何将PDF转换成图片格式--Python

    可能会有人问,很多PDF阅读软件都是可以直接将PDF文件保存成图片格式的,为什么非得用Python?? 使用Python(代码)的优势就在于可以批量操作,试想,如果你有成百上千的PDF文件,你很有可能 ...

  8. 将pdf转换成图片在转换回pdf文件

    将pdf转换成图片在转换回pdf文件 之所有要这么做主要是曲线解决pdf文本内容增加覆盖层后依然可以复制出来的问题.查了不少资料发现通过覆盖层的方式并不能去除原有的文字内容,只是达到了掩耳盗铃的效果而 ...

  9. 使用imagick将PDF转换成图片时报Fatal error: Uncaught exception 'ImagickException' with message 'FailedToExecute

    个人博客原文地址:http://www.lampnick.com/php/720 $IM = new imagick(); $IM->setResolution(200, 200); $IM-& ...

  10. android开发将h5转换成pdf_如何将PDF转换成图片?搞定PDF格式转换,就用这招就够了!...

    原标题:如何将PDF转换成图片?搞定PDF格式转换,就用这招就够了! 在我们日常学习和日常工作中,我们有时候会遇到要使用到PDF中某一部分的情况,这时候我们可以将PDF文件转成图片.有什么办法可以把P ...

最新文章

  1. android ndk 界面开发教程,Android NDK开发之入门教程
  2. 解读:一种来自Facebook团队的大规模时间序列预测算法(附github链接)
  3. 通过url 下载文件
  4. java编译时多态和运行时多态_运行时多态、编译时多态和重载、重写的关系(不区分Java和C#,保证能看懂!)...
  5. java for循环遍历解释,三种for循环遍历
  6. Chrome 100发布:全新图标,CPU、内存占用暴降!
  7. QT开发及实例学习之六控件
  8. vue + element-ui 聊天_Vue管理后台框架选择推荐
  9. PHP学习之六:预定义常量
  10. 利用递归统一化函数参数的不固定数据类型
  11. Mac 16进制编辑器Hex Friend
  12. python植物大战僵尸脚本_用 Python 实现植物大战僵尸代码!
  13. 【老生谈算法】matlab实现Kmeans算法源码——Kmeans算法
  14. 5种尊重您隐私的替代搜索引擎
  15. 合肥工业大学计算机网络期中考试,计算机网络实验报告合肥工业大学
  16. 视觉伺服控制工具Visual Servoing Platform---VISP(7)----vpServo这个看懂了就会用VISP了,很简单
  17. html背景图片css怎么添加,css样式怎么插入背景图片?
  18. 北航计算机考研机考,11北航计算机复试上机
  19. 坦白说自动获取有效好友
  20. linux升级内核ivh,Linux内核升级

热门文章

  1. _VMware_虚拟机到_KVM
  2. 微型计算机主机内部结构,微型计算机主机由什么组成
  3. Charles软件怎样解决SSL安全证书过期问题
  4. 简单爬取百度百科周杰伦所有歌的歌词
  5. qq邮箱 服务器认证失败怎么回事,为什么我的QQ邮箱登录不了 QQ邮箱无法登陆怎么解决...
  6. 通过创建Google快讯将定期搜索结果发送到Gmail信箱
  7. gpg4win使用教程_使用gpg4win生成密钥对
  8. Linux加密框架 crypto 哈希算法说明 同步哈希shash_alg | 异步哈希 ahash_alg | 通用部分抽象 hash_alg_common
  9. scrapy手工识别验证码登录超星泛雅
  10. ARP报文目的MAC为什么不是广播地址?