From b80c87567d893dfc6f3f71d9e8f4b87845b41005 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 14 Dec 2022 11:18:10 +0800 Subject: [PATCH] 1 --- .../java/util/convertPDF/PDFConverUtil.java | 18 ++++++----- .../com/ibeetl/jlw/entity/FileEntity.java | 31 +++++++++++++++++++ .../ibeetl/jlw/web/TempFileController.java | 31 ++----------------- 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/admin-framework/admin-convert-pdf/src/main/java/util/convertPDF/PDFConverUtil.java b/admin-framework/admin-convert-pdf/src/main/java/util/convertPDF/PDFConverUtil.java index 9efb9690..a7edc056 100644 --- a/admin-framework/admin-convert-pdf/src/main/java/util/convertPDF/PDFConverUtil.java +++ b/admin-framework/admin-convert-pdf/src/main/java/util/convertPDF/PDFConverUtil.java @@ -33,7 +33,7 @@ public final class PDFConverUtil { final private static Map> types = new HashMap<>(); public static enum TypeEnum { - WORD, EXCEL, PPT, PPTX, OTHER + WORD, EXCEL, PPT, PPTX, IMG, OTHER } static { @@ -41,7 +41,8 @@ public final class PDFConverUtil { types.put(EXCEL, Arrays.asList("XLS", "XLSX")); types.put(PPT, Arrays.asList("PPT")); types.put(PPTX, Arrays.asList("PPTX")); - types.put(OTHER, Arrays.asList("OOXML", "RTF HTML", "OpenDocument", "PDF","EPUB", "XPS", "SWF")); + types.put(IMG, Arrays.asList("JPEG", "JPG", "PNG")); + types.put(OTHER, Arrays.asList("OOXML", "RTF HTML", "OpenDocument", "EPUB", "XPS", "SWF")); } @@ -51,14 +52,14 @@ public final class PDFConverUtil { **/ public static boolean imgToPdf(InputStream inputStream, OutputStream outputStream) { - Document document = null; + Document document = null; PdfWriter pdfWriter = null; try { // 创建文档,设置PDF页面的大小 A2-A9, 个人觉得A3最合适 - document = new Document(PageSize.A6, 20, 20, 20, 20); + document = new Document(PageSize.A6, 0, 0, 0, 0); // 新建pdf文档,具体逻辑看.getInstance方法 - PdfWriter.getInstance(document, outputStream); + pdfWriter = PdfWriter.getInstance(document, outputStream); document.open(); document.newPage(); @@ -97,6 +98,7 @@ public final class PDFConverUtil { e.printStackTrace(); return false; } finally { + close(document, pdfWriter); closeOutput(outputStream); closeInput(inputStream); } @@ -466,6 +468,9 @@ public final class PDFConverUtil { if (types.get(PPTX).contains(fileSuffix)) { return pptxToPdf(inputStream, outputStream); } +// if (types.get(IMG).contains(fileSuffix)) { +// return imgToPdf(inputStream, outputStream); +// } if (types.get(OTHER).contains(fileSuffix)) { return wordToPdfByAspose(inputStream, outputStream); } @@ -483,7 +488,6 @@ public final class PDFConverUtil { */ private static String getFileSuffix(String fileName) { String[] split = fileName.split("\\."); - int length = split.length; - return split[length - 1]; + return split[split.length - 1]; } } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/entity/FileEntity.java b/web/src/main/java/com/ibeetl/jlw/entity/FileEntity.java index 4cdd64bc..f05a5c22 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/FileEntity.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/FileEntity.java @@ -1,11 +1,17 @@ package com.ibeetl.jlw.entity; +import cn.hutool.core.io.FileUtil; import com.ibeetl.admin.core.entity.BaseEntity; import org.apache.commons.lang3.StringUtils; +import util.convertPDF.PDFConverUtil; +import java.io.BufferedInputStream; import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.util.Date; +@SuppressWarnings("ALL") public class FileEntity extends BaseEntity { //文件全路径 @@ -293,4 +299,29 @@ public class FileEntity extends BaseEntity { return base64; } */ + + /** + * 功能描述:
+ * 尝试去根据文件类型,来转换成PDF格式 + * + * @param fileEntity + * @Author: lx + * @Date: 2022/12/14 0:46 + */ + public static void tryConvertPDF(FileEntity fileEntity) throws FileNotFoundException { + if (null != fileEntity) { + // 相对路径 + String absoluteUrl = fileEntity.getAbsoluteUrl(); + BufferedInputStream inputStream = FileUtil.getInputStream(absoluteUrl); + // 同名文件,多生成一个pdf文件 + String pdfName = absoluteUrl.replaceAll("\\.[^\\.]+", ".pdf"); + FileOutputStream outputStream = new FileOutputStream(pdfName); + // 根据类型来转换成为pdf + boolean convertedSuccess = PDFConverUtil.convertToPDFByFileNameSuffix(absoluteUrl, inputStream, outputStream); + if(convertedSuccess) { + // 转换成功,则返回给前端 + fileEntity.set("cvPDFAbsoluteUrl", pdfName); + } + } + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TempFileController.java b/web/src/main/java/com/ibeetl/jlw/web/TempFileController.java index 5051a23a..21bbf92d 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TempFileController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TempFileController.java @@ -1,22 +1,20 @@ package com.ibeetl.jlw.web; -import cn.hutool.core.io.FileUtil; import cn.jlw.Interceptor.RFile; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.FileEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; -import util.convertPDF.PDFConverUtil; -import java.io.BufferedInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.ResourceBundle; +import static com.ibeetl.jlw.entity.FileEntity.tryConvertPDF; + //临时文件管理层 @Controller public class TempFileController { @@ -86,31 +84,6 @@ public class TempFileController { //return JsonResult.success(); } - /** - * 功能描述:
- * 尝试去根据文件类型,来转换成PDF格式 - * - * @param fileEntity - * @Author: lx - * @Date: 2022/12/14 0:46 - */ - private void tryConvertPDF(FileEntity fileEntity) throws FileNotFoundException { - if (null != fileEntity) { - // 相对路径 - String absoluteUrl = fileEntity.getAbsoluteUrl(); - BufferedInputStream inputStream = FileUtil.getInputStream(absoluteUrl); - // 同名文件,多生成一个pdf文件 - String pdfName = absoluteUrl.replaceAll("\\.[^\\.]+", ".pdf"); - FileOutputStream outputStream = new FileOutputStream(pdfName); - // 根据类型来转换成为pdf - boolean convertedSuccess = PDFConverUtil.convertToPDFByFileNameSuffix(absoluteUrl, inputStream, outputStream); - if(convertedSuccess) { - // 转换成功,则返回给前端 - fileEntity.set("cvPDFAbsoluteUrl", pdfName); - } - } - } - //多个文件上传 @PostMapping(MODEL + "/updates.do") @ResponseBody