From c5b71cce5614ad22716efbf941a98688589ef65a Mon Sep 17 00:00:00 2001 From: shichongfu <shi_chongfu@163.com> Date: 星期五, 09 六月 2023 08:57:36 +0800 Subject: [PATCH] 打印转换 --- src/main/java/com/product/file/util/PdfConcurrenceUtil.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/com/product/file/util/FileUtils.java | 18 +++++------------- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/product/file/util/FileUtils.java b/src/main/java/com/product/file/util/FileUtils.java index 77416f6..d97c2bc 100644 --- a/src/main/java/com/product/file/util/FileUtils.java +++ b/src/main/java/com/product/file/util/FileUtils.java @@ -557,10 +557,9 @@ if (placeLocation.indexOf("/") != 0) { placeLocation += "/"; } - //绾跨▼鍚屾 if (threadSync) { - boolean b = convertPdf(uploadServer, isEncrypt, file, placeLocation, fileName +"."+tail); + boolean b = convertPdf(uploadServer, isEncrypt, file, placeLocation, fileName,tail); if (deleteFile && file.isFile()) { file.delete(); } @@ -570,7 +569,7 @@ String finalPlaceLocation = placeLocation; final File ff = FileUtil.copyFile(file, Global.getSystemConfig("temp.dir", "") + "/" + "temp_convert_pdf_" + RandomUtil.randomString(5) + "_" + file.getName(), 0); executorService.submit(() -> { - convertPdf(uploadServer, isEncrypt, ff, finalPlaceLocation, fileName+"."+tail); + convertPdf(uploadServer, isEncrypt, ff, finalPlaceLocation, fileName,tail); if (ff.isFile()) { ff.delete(); } @@ -583,21 +582,14 @@ return false; } - private static boolean convertPdf(boolean uploadServer, boolean isEncrypt, File file, String placeLocation, String fileName) throws BaseException { + private static boolean convertPdf(boolean uploadServer, boolean isEncrypt, File file, String placeLocation, String fileName,String officeType) throws BaseException { File pdfFile = null; String random = RandomUtil.randomString(5); String tempPath = Global.getSystemConfig("temp.dir", "./attachment/temp") + "/" + "convertPDF_" + random + "_" + file.getName(); String tempPathSuccess = Global.getSystemConfig("temp.dir", "./attachment/temp") + "/" + "convertPDF_success_" + random + ".pdf"; try { - int lastIndex = fileName.lastIndexOf("."); - String officeType = fileName.substring(lastIndex+1); - fileName=fileName.substring(0,lastIndex); FileUtil.copyFile(file, tempPath, 0); - if(Global.getPropertyToBoolean("open.office.isEnable", "true")) {//鍚敤oepn office杞崲 - pdfFile = PdfConcurrenceUtil.convertToPdf(tempPath, tempPathSuccess); - }else{ - pdfFile = new File(AsposeUtil.OfficeToPdf(tempPath, tempPathSuccess,officeType)); - } + pdfFile = PdfConcurrenceUtil.convertToPdf(tempPath, tempPathSuccess,officeType); String s = Global.getSystemConfig("temp.dir", "") + "/" + "convertPDF_encryptTemp_" + random + ".pdf"; FileUtil.copyFile(pdfFile, s, isEncrypt ? 1 : 0); pdfFile.delete(); @@ -612,7 +604,7 @@ throw new BaseException(FileCode.CONVERT_PDF_FILE_FAIL); } finally { try { - if (pdfFile !=null && pdfFile.isFile()) { + if (pdfFile!=null && pdfFile.isFile()) { pdfFile.delete(); } com.product.common.io.FileUtils.delFile(tempPath); diff --git a/src/main/java/com/product/file/util/PdfConcurrenceUtil.java b/src/main/java/com/product/file/util/PdfConcurrenceUtil.java index 784fc7c..80d0204 100644 --- a/src/main/java/com/product/file/util/PdfConcurrenceUtil.java +++ b/src/main/java/com/product/file/util/PdfConcurrenceUtil.java @@ -152,6 +152,7 @@ * @param output * @return */ + @Deprecated public static File convertToPdf(String input, String output) throws Exception { File inputFile = null; File outFile = null; @@ -178,4 +179,41 @@ } return outFile; } + /** + * 杞崲pdf + * @param input + * @param output + * @return + */ + public static File convertToPdf(String input, String output,String officeType) throws Exception { + File inputFile = null; + File outFile = null; + OfficeManager officeManager = null; + try { + if(Global.getPropertyToBoolean("open.office.isEnable", "true")) {//鍚敤oepn office杞崲 + officeManager = officeManagerQueue.take(); + inputFile = new File(input); + outFile = new File(output); + SpringMVCContextHolder.getSystemLogger().info("寮�濮嬭浆鎹㈡枃妗o細" + input + "=>" + output); + OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); + converter.convert(inputFile, outFile); // 杞崲鏂囨。 + }else{ + outFile = new File(AsposeUtil.OfficeToPdf(input, output,officeType)); + } + + }catch (Exception e) { + outFile = null; + throw e; + } finally { + SpringMVCContextHolder.getSystemLogger().info("缁撴潫杞崲鏂囨。"); + if (officeManager != null) { + try { + officeManagerQueue.put(officeManager); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + return outFile; + } } -- Gitblit v1.9.2