public void docToImg() {
//// ------------------------------
UploadFile item = getFile("filePdf", SysUtil.getFilePath("/advertorialPdf"));
String path = item.getUploadPath() + item.getFileName();
String pdfImgage = PropKit.use("config.properties").get("base_image_path");
SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMDDHHssmm");
//上传的文件 实体类,可用可不用( 纯属业务 )
FilePdf bean = getBean(FilePdf.class,"");
bean.setCreateTime(new Date());
bean.setName(item.getFileName());
bean.setPath(item.getUploadPath());
bean.setCreateUser(ShiroUtils.getUserId());
bean.save();
//
Map<String, Object> map = new HashMap<String, Object>();
String pic = ""; // 图片
PDDocument pdf = null;
// 获取生成图片的路径
String picPath = null;
ImageOutputStream imageout = null;
try {
// 获取
pdf = PDDocument.load(item.getFile());
// 获取pdf渲染器,主要用来后面获取BufferedImage
PDFRenderer renderer = new PDFRenderer(pdf);
// 获取pdf文件总页数
int pageCount = pdf.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
//获取file至Image的对象 实体类,根据自己业务需要,也可以不必创建
FilePics pics = getBean(FilePics.class);
pics.setFileId(bean.getId());
// 获取当前页对象
PDPage page = pdf.getPage(i);
// 构造图片
BufferedImage img_temp = renderer.renderImage(i);
// 设置图片格式
Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix("png");
// 将文件写出
ImageWriter writer = (ImageWriter) it.next();
//生成五位的随机数
String rangNum = "";
for(int j = 0;j<6;j++) {
rangNum += String.valueOf(new Random().nextInt(10));
}
//图片文件 图片的上传路径+随机数+第几张+图片格式
picPath = item.getUploadPath().replaceAll(".pdf", "") + rangNum + i +".png";
imageout = ImageIO.createImageOutputStream(new FileOutputStream(picPath));
writer.setOutput(imageout);
writer.write(new IIOImage(img_temp, null, null));
//
pics.setPath(picPath);
pics.setSeq(i+1);
pics.save();
pic += "," + picPath;
imageout.flush();
}
//根据上传文件查询此次pdf文件图片的顺序 ( 纯属业务 )
// SQL: Select * from g_file_pics where file_id = ? order by seq asc
List<FilePics> picList = FilePics.dao.queryList(bean.getId());
//转化为json字符串
JSONArray json= (JSONArray) JSONArray.toJSON(picList);
map.put("pic", pic);
map.put("ps", pdfImgage);
map.put("json", json);
} catch (InvalidPasswordException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
imageout.close();
pdf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
renderJson(map);
}
将PDF进行读取转为图片
3星 · 超过75%的资源 需积分: 48 144 浏览量
2018-06-28
09:06:11
上传
评论
收藏 4.26MB RAR 举报
忆墨飞
- 粉丝: 0
- 资源: 1
最新资源
- 401456189681268WIFI调试器.apk
- HPSoftwareFramework
- 在C语言中,文件读写操作主要通过标准库中的stdio.h头文件提供的函数来实现 这些函数包括fopen()用于打开文件,fclo
- 重庆君歌电子科技有限公司简介-20240316-V23.pdf
- 数据库课程设计涵盖了从需求分析、概念设计、逻辑设计到物理设计的整个数据库设计流程 为了帮助学生更好地理解和掌握这些内容,课程设计
- Python是一种功能强大且广泛使用的编程语言,它在多个领域都发挥着重要作用 以下是对Python资源的500字介绍: Pyt
- 2022级高等数学A2期中试题B.doc
- 基于遥感影像处理的土地利用专题图分析-以武汉市为例
- A Description of the Fundamentals of Analog Electronics
- A Description of the Fundamentals of Analog Electronics
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈