上传PDF文件转换图片工具类
一,pdf图片转换工具
import org.apache.http.entity.ContentType;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;/*** pdf转换成图片工具类*/
@Component
public class PdfConvertPictureUtil {@Resourceprivate MultipartFileToFile multipartFileToFile;@Resourceprivate OOSUtils oosUtils;/*** pdf转换图片* bucketName 桶名* objectKey key* @param fileInput*/public List<File> pdf2png(MultipartFile fileInput) {String originalFilename = fileInput.getOriginalFilename();//String currentUserGroupType = transferUtil.getCurrentEnterpriseId().toString();//当前用户所在的企业id
// String currentUserGroupType = "1562634732836425730";//当前用户所在的企业
// String original = originalFilename.split("\\.")[0];
// String path=currentUserGroupType+"/"+original+"/";//企业文件夹+pdf文件名List<File> fileList=new ArrayList<>();PDDocument doc=null;try {File file = multipartFileToFile.ultipartFileToFile(fileInput);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);//产生缩略图File file1 = new File("./file" + "/" + originalFilename + "_" + (i + 1) + "." + "jpg");//写出的文件ImageIO.write(image, "jpg", file1);fileList.add(file1);
// String key=path+original + "_" + (i + 1) + "." + "jpg";
// oosUtils.putObjectFile1(bucketName,key,file1);}} catch (Exception e) {e.printStackTrace();}finally {if (doc != null) {try {doc.close();} catch (IOException ioe){ioe.printStackTrace();}}}return fileList;}/*** File文件转为MultipartFile文件** @param file* @return*/private MultipartFile getMultipartFile(File file) {if(!file.exists()){throw new RuntimeException("文件不存在");}FileInputStream fileInputStream = null;MultipartFile multipartFile = null;try {fileInputStream = new FileInputStream(file);multipartFile = new MockMultipartFile(file.getName(), file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);} catch (Exception e) {e.printStackTrace();}return multipartFile;}}
二 删除临时文件 方
public void deleteFiles(File file ) {if (!file.exists()) {System.out.println("文件:" + file+ "不存在!");}if (!file.delete()) System.out.println("文件:" + "删除失败!");System.out.println("文件:" + "删除成功");}
删除临时文件方法二
/*** 删除临时文件** @param files*/public void deleteFiles(Set<Map<String, String>> files) {for (Map<String, String> file : files) {File f = new File(file.get("path"));if (!f.exists()) {System.out.println("文件:" + file.get("name") + "不存在!");continue;}if (!f.delete()) System.out.println("文件:" + file.get("name") + "删除失败!");System.out.println("文件:" + file.get("name") + "删除成功");}}
上传PDF文件转换图片工具类相关推荐
- 上传pdf文件转图片翻页小工具,遇到JSP form中type=file的文件上传及后台Part处理问题(后台取值为null)
最近公司要求做一个上传pdf文件后将文件转换为翻页图片的小工具,我是这么做的 1.先找图片翻页的demo,微软有现有的产品turn.js感兴趣的可以自己看一下 ,有双页的有单页的,因为我司要求手机端使 ...
- PHP文件上传,下载,Sql工具类!
PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> & ...
- mactxt文件如何转换成html,最佳的用于Mac上的PDF文件转换到HTML文件的转换器
您是否正在寻找一种在Mac上将PDF文件转换为HTML文件的方法?您经常因为这个情况感到苦恼吗?有许多在线服务和桌面应用程序都可以帮助您将PDF文件转换为HTML文件.市面上有几款不同的PDF转换软件 ...
- php上传pdf文件错误,php上传pdf文件,一些特殊字符丢失
php上传pdf文件,上传到服务器上发现pdf文件里面一些特殊字符不显示了,将pdf文件压缩成zip文件上传后,提示压缩包损坏 求高手解答 回复讨论(解决方案) php上传文件时,不会破坏文件内容.这 ...
- pdf上传及预览;file上传pdf文件及预览;vue上传pdf文件及预览;vue-pdf预览pdf文件
需求:上传pdf文件,并点击可以打开预览.使用input的file功能即可完成,预览只需要跳转到pdf的url地址即可.还可以配合vue-pdf直接预览,点击看这篇. 以下代码可直接复制使用!!!有效 ...
- 免费PDF批量转换图片工具
免费PDF批量转换图片工具 免费PDF批量转换图片工具 程序界面 测试效果 程序说明 使用说明 使用注意 开发环境 测试环境 程序版本 源文章出处 下载地址(百度云) 免费PDF批量转换图片工具 一款 ...
- java pdf文件转换图片,pdf文件转图片(java实现)
项目中pdf文件太大,在手机端打开缓慢.需要将pdf文件转换成图片.加载比较快,增加用户体验.话不多说,直接上干货. 一.在pom引入依赖的jar org.apache.pdfbox fontbox ...
- elment上传pdf文件至服务器,基于element-ui组件手动实现单选和上传功能.pdf
基基于于element-ui组组件件手手动动实实现现单单选选和和上上传传功功能能 在用户使用过程中提出一键导入的功能,需求如下:点击导入按钮显示提示框,然后是单选框以及上传按钮.这篇 文章 要介绍了基 ...
- Java实现七牛云上传下载文件或图片
文章目录 写在前面 一.准备工作 1.1.为什么选择七牛云? 1.2.七牛云注册 二.java操作七牛云对象存储下载 2.1.pom.xml引入依赖 2.2.上传下载具体代码 三.具体业务例子(七牛云 ...
最新文章
- EventBus的使用(一看就懂)
- 按键精灵安卓怎么可以获取屏幕上的数字_安卓11来了,感受一下
- MyBatis运行原理(三)接口式编程及创建代理对象原理分析
- VC,VB程序button、图标样式美化
- 动态反射——Load,LoadFrom和LoadFile
- SANS研究所:7大最危险的攻击技术介绍
- 无线模块在“水盾”防溺水安全预警系统的应用
- 汉仪尚巍手书可以商用吗_【商用车维修】夏天修空调可以撑起全年修车收入的一半,你会了吗?...
- ASP.NET从字符串中查找字符出现次数的方法
- LeetCode —— 146. LRU缓存机制(Python)
- python常用模块-time和datatime
- 【报告分享】2022金融科技趋势研究报告.pdf(附下载链接)
- html5盒子层级设置,解决CSS中子元素z-index与父元素兄弟节点的层级问题
- 免费素材大荟萃:免费图标和UI设计
- Android:PopupWindow、自定义菜单
- python项目如何打包_python项目怎么打包运行?
- Echart词云图自定义形状,少词显示不全,配置项相关设置
- 虚拟机黑裙加载硬盘_适合练手,在虚拟机中安装黑群晖,想要组建NAS服务器的看这里...
- 压摆率和上升时间的区别
- Docker配置阿里云镜像加速器以及镜像的常用操作命令
热门文章
- 项目:信息系统项目管理和开发经验分享
- 比 Nginx 性能更强的下一代 Web 服务器
- 螺栓拧紧的力学分析以及如何选型?
- 马里兰大学计算机专业水平,马里兰大学帕克分校计算机工程本科专业.pdf
- 苹果智能拨号软件_App Store 上的“CeleDial 智能拨号”
- 解决 Threejs 无法加载 GLTF 模型的材质,报错 Unknown extension “KHR_materials_pbrSpecularGlossiness
- “2018可信区块链峰会”8大分论坛精彩提要!
- 青铜三人行之两数之和
- QCoreApplication
- openwrt的静态路由