项目中pdf文件太大,在手机端打开缓慢。需要将pdf文件转换成图片。加载比较快,增加用户体验。话不多说,直接上干货。

一、在pom引入依赖的jar

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

二、上代码

package com.wlsj.product.test;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;import javax.imageio.ImageIO;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;/*** <h3>product-jzfp</h3>* <p></p>** @author : 你的名字* @date : 2020-05-11 14:36**/
public class PDFTest {//可自由确定起始页和终止页public static void pdf2png(String fileAddress, String filename, int indexOfStart, int indexOfEnd) {// 将pdf装图片 并且自定义图片得格式大小File file = new File(fileAddress + "\\" + filename + ".pdf");try {PDDocument doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = indexOfStart; i < indexOfEnd; i++) {BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图ImageIO.write(image, "PNG", new File(fileAddress + "\\" + filename + "_" + (i + 1) + ".png"));}} catch (IOException e) {e.printStackTrace();}}//转换全部的pdfpublic static void pdf2png(String fileAddress, String filename) {// 将pdf装图片 并且自定义图片得格式大小File file = new File(fileAddress + "\\" + filename + ".pdf");try {PDDocument doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图ImageIO.write(image, "PNG", new File(fileAddress + "\\" + filename + "_" + (i + 1) + ".png"));}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入需要转换的pdf的地址,例如:D:\\robert");String fileAddress = sc.nextLine();System.out.println("请输入需要转换的pdf的名称,不要加.pdf后缀,例如 操作系统概念:");String filename = sc.nextLine();System.out.println("请输入开始转换的页码,从0开始,例如 5:");int indexOfStart = sc.nextInt();System.out.println("请输入停止转换的页码,-1为全部,例如 10:");int indexOfEnd = sc.nextInt();if (indexOfEnd == -1) {pdf2png(fileAddress, filename);} else {pdf2png(fileAddress, filename, indexOfStart, indexOfEnd);}}}

三、测试输出

pdf文件转图片(java实现)相关推荐

  1. Java实现pdf文件转图片

    Java实现pdf文件转图片 文章顺序是按照测试类- -Service- -Service实现类- -工具类- - POM依赖. test测试类里 pdfPath:存放pdf源文件的地方 imgflo ...

  2. java实现给PDF文件添加图片水印,java实现给PDF文件添加文字水印

    接上一篇,pdf跟tif 是一起做的 java实现 1.给PDF文件添加图片水印: public static void waterMark1(String inputFile,String outp ...

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

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

  4. 上传pdf文件转图片翻页小工具,遇到JSP form中type=file的文件上传及后台Part处理问题(后台取值为null)

    最近公司要求做一个上传pdf文件后将文件转换为翻页图片的小工具,我是这么做的 1.先找图片翻页的demo,微软有现有的产品turn.js感兴趣的可以自己看一下 ,有双页的有单页的,因为我司要求手机端使 ...

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

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

  6. pdf转图片 java_有将pdf文件转图片的格式方法吗?

    有时候我们为了方便传输,需要把图片转为PDF的格式,因为它所占的空间相对要小.但是因为pdf文件的安全性很好所以不能进行编辑,那我们又要进行编辑图片的时候,就又会把PDF文件格式转换成图片来进行编辑. ...

  7. 导出文件_一招解决PDF文件导出图片

    将PDF文件保存为高清图片是经常需要进行的保存方式之一,因为PDF文件虽然安全性高,但是相比较图片而言,还是不易进行查看的,那么如何将PDF文件导出图片呢?以前也了解过很多方法,不过最好的当然不是截图 ...

  8. 前端PDF文件转图片方法(你值得收藏)

    前端PDF文件转图片方法(你值得收藏) 第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的 <script src="pdfjs/build/pdf.j ...

  9. JS逐页转pdf文件为图片格式

    背景 年前的时候,开发一个电子杂志项目,功能需求是通过上传pdf文件,将其转为图片格式,所以杂志的内容其实就是一张张图片 不过当时技术要求用后端实现,所以使用的是PHP实现该功能.项目完成后,寻思着在 ...

  10. 解决word转PDF文件时图片位置改变和字体格式改变的问题

    解决word转PDF文件时图片位置改变和字体格式改变的问题 在写论文的时候,使用word编辑完文本后将其导出为PDF总是出现图片位置改变或者字体格式改变的问题,好不容易在word中编辑好的格式却不能在 ...

最新文章

  1. spring cloud微服务分布式云架构--hystrix的使用
  2. 每天一个知识点linux(八)手动创建交换分区
  3. ggplot2画图教程
  4. mysql下载地址与安装
  5. 大利好!学历低的算法工程师要起飞了,这波惊喜来的太突然!
  6. 软件工程-第一次作业
  7. 使用临界区 CRITICAL_SECTION 实现互斥
  8. 大公司的前端开发地址
  9. 关于for和foreach,兼顾效率与安全
  10. Mysql之增加数据_INSERT INTO
  11. 三维空间长度温度数量_塑料压力和温度对注塑件质量与尺寸的影响研究
  12. 百度贴吧前负责人:做产品16年,我有9条心得[转]
  13. 天赋差的程序员,难道就只能半途而废吗?
  14. 操作系统上机题目(多线程2)
  15. 我很喜欢写作。但总难以坚持!
  16. IronPython 2.0 Alpha2
  17. java怎么控制数据权限_Java权限控制算法
  18. 如何让 select的那个请选择不被选中.获取选中的value值和html
  19. 计算机根号的3次方怎么,excle 开几次方|excel中咋开3次根号啊
  20. 通过小宝的卡牌游戏,看开源SCUT服务器运行使用

热门文章

  1. 用python画雪花 科赫曲线递归_【TCE的编程小讲堂】【Python】【第三期】如何画出科赫雪花?(下)...
  2. 电脑软件:推荐七款实用的效率神器
  3. 无功补偿器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. C#(同步调用、异步调用、异步回调)
  5. 落实“两高”联合发布《关于办理商业贿赂刑事案件适用法律若干问题的意见》的措施
  6. mysql表中文字段提取拼音首字母最便捷实现,中文按拼音首字母排序
  7. MyBatis中@MapKey使用详解
  8. oracle程序窗口,oracle窗口函数的使用
  9. 东南亚移动支付兼并洗牌
  10. 怎么在Word中插入几何画板图形