基于maven项目

1.引入jar包

<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.21</version>
</dependency>

2.创建工具类

package com.telit.tpc.school.web.homework.web;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import sun.misc.BASE64Encoder;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;/*** @description: ${description}* @author: ssang* @create: 2021/2/20 0020 11:13**/
public class PdfUtil {/**** PDF文件转PNG图片* @param PdfFilePath pdf完整路径* @param dstImgFolder 图片存放的文件夹* @param dpi dpi越大转换后越清晰,相对转换速度越慢* @param flag 页数 为0则转换全部页数* @return*/public static List pdf2Image(String PdfFilePath, String dstImgFolder, int dpi,int flag) {List list = new ArrayList();File file = new File(PdfFilePath);PDDocument pdDocument;try {String imgPDFPath = file.getParent();int dot = file.getName().lastIndexOf('.');String imagePDFName = file.getName().substring(0, dot);String imgFolderPath = null;if (dstImgFolder.equals("")) {imgFolderPath = imgPDFPath ;} else {imgFolderPath = dstImgFolder;}if (createDirectory(imgFolderPath)) {pdDocument = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(pdDocument);int pages = pdDocument.getNumberOfPages();if(flag > 0) {//大于0则打印具体页数if(flag<pages) {pages = flag;}}StringBuffer imgFilePath = null;for (int i = 0; i < pages; i++) {//开始根据分页转换图片String imgFilePathPrefix = imgFolderPath+ File.separator+ imagePDFName;imgFilePath = new StringBuffer();imgFilePath.append(imgFilePathPrefix);imgFilePath.append("-");imgFilePath.append(i + 1);imgFilePath.append(".png");File dstFile = new File(imgFilePath.toString());BufferedImage bufferedImage = renderer.renderImageWithDPI(i, dpi);ImageIO.write(bufferedImage, "png", dstFile);//当前页的PDF转为图片结束//将图片转换成base64格式,并加入list,返回到页面InputStream in;byte[] data;in = new FileInputStream(dstFile);data = new byte[in.available()];in.read(data);BASE64Encoder encoder = new BASE64Encoder();String png_base64 = encoder.encode(data).trim();png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");in.close();//注意data后面的png,需要和文件格式相同,jpg文件就是jpglist.add("data:image/png;base64,"+png_base64);}}} catch (Exception e) {System.out.println("Exception");e.printStackTrace();}return list;}private static boolean createDirectory(String folder) {File dir = new File(folder);if (dir.exists()) {return true;} else {return dir.mkdirs();}}
}

3.调用

public static void main(String[] args) {pdf2Image("E:\\工作\\test.pdf", "E:\\工作\\image", 300,0);
}

使用Java实现,PDF转换成图片(每一页保存为一张图片)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 怎么把pdf转换成图片?这个方法你值得拥有

    想要高效率的工作,除了需要大家合理安排时间之外,一些能够辅助高效工作的工具也是必不可少的.就拿要把一份pdf文件转换成若干图片来说,如果不知道方法,找不到合适的转换工具,那么想要完成这一任务,势必要花 ...

  10. PDF转换成图片——11种方案

    最近公司安排了个任务:要求交付一个DLL,实现[PDF转换成图片],最好的效果是能够掌握所有源码,实在不行才交付第三方DLL.研究了6个工作日+1双休+每晚9点下班,逛遍了国内外各种论坛,还是没能成功 ...

最新文章

  1. 左线性文法和右线性文法_线性代数期末考试复习资料
  2. java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程
  3. AVFoundation和 GPUImage初探
  4. 北京智能计算产业研究院成立
  5. .net之 datagrid
  6. 99% 的人都能看懂的「补偿」以及最佳实践
  7. 实例使用pyhanlp创建中文词云
  8. 力扣面试题 01.07. 旋转矩阵
  9. git reset后本地拉取_Git 代码防丢指南
  10. IOS 获取.plist文件的数据
  11. 由一个DAOHelper类引发的思考
  12. Web安全漏洞介绍及防御-文件上传漏洞
  13. unity3d 资源打包加密 整理
  14. win10 cortana 没反应解决方法
  15. SQL50题(MySQL)
  16. win10 和ubuntu双系统设置启动顺序和时间
  17. M1 芯片版 Mac 抹掉重装系统教程
  18. 程序员的悲哀--动车追尾
  19. Python爬虫实例(3)--BeautifulSoup的CSS选择器
  20. adc0809c语言编程,单片机C语言程序设计之ADC0809数模转换与显示

热门文章

  1. 计算机专业指南考试,计算机专业指南考试题.doc
  2. C#之常用设计模式(unity版本)
  3. 35. 池化层 / 汇聚层 代码实现
  4. 02-SpringBoot工程中JDBC应用实践
  5. Exp2 后门原理与实践
  6. 麒麟V10 x86_64系统 人大金仓数据库安装
  7. 新玺配资:结构性牛市 选对方向比什么都重要
  8. python读RAW图片以及大小端转换
  9. 都去炒AI和大数据了,落地的事儿谁来做?
  10. OpenSSL密码库算法笔记——第5.1.2章 椭圆曲线算法集