1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 上传PDF文件转换图片工具类

上传PDF文件转换图片工具类

时间:2022-04-03 00:21:39

相关推荐

上传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.ponent;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转换成图片工具类*/@Componentpublic 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") + "删除成功");}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。