From b6d2a806e6572ffc4c226c91f0a60b31a7b1fbc0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 05 三月 2024 14:02:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java |   15 +++++++++++++++
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java  |   34 ++++++++++++++++++++++++++++++----
 2 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 4ddccfc..a98cbd2 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -21,6 +21,7 @@
 import java.io.*;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.net.URL;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.text.SimpleDateFormat;
@@ -885,10 +886,12 @@
             sxssfWorkbook.write(out);
             byte [] bookByteAry = out.toByteArray();
             InputStream     in = new ByteArrayInputStream(bookByteAry);
+            String tempExcel = saveIsToFile(in);
             String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
-            ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+//            ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+            ExcelToPdfTool.excelToPdf(tempExcel,tempPdf);//杞琍DF
             File f = new File(tempPdf);
-            if(f!=null && f.isFile()){
+            if(f!=null && f.isFile() && f.length()>0){
                 return tempPdf;
             }
         } catch (Exception e) {
@@ -1108,10 +1111,12 @@
             sxssfWorkbook.write(out);
             byte [] bookByteAry = out.toByteArray();
             InputStream     in = new ByteArrayInputStream(bookByteAry);
+            String tempExcel = saveIsToFile(in);
             String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
-            ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+//            ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF
+            ExcelToPdfTool.excelToPdf(tempExcel,tempPdf);//杞琍DF
             File f = new File(tempPdf);
-            if(f!=null && f.isFile()){
+            if(f!=null && f.isFile() && f.length()>0){
                 return tempPdf;
             }
         } catch (Exception e) {
@@ -1120,6 +1125,27 @@
         return null;
     }
 
+    private String saveIsToFile(InputStream inputStream) {
+            try {
+                String fileName =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".xlsx";
+                File file = new File(fileName); // 鎸囧畾淇濆瓨鍒版湰鍦扮殑鏂囦欢鍚嶅強璺緞
+                file.createNewFile();
+                OutputStream outputStream = new FileOutputStream(file);
+                byte[] buffer = new byte[1024];
+                int bytesRead;
+                while ((bytesRead = inputStream.read(buffer)) != -1) {
+                    outputStream.write(buffer, 0, bytesRead);
+                }
+
+                outputStream.close();
+                inputStream.close();
+                return fileName;
+            }catch (Exception e){
+
+            }
+            return null;
+    }
+
 
     @Data
     @AllArgsConstructor
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
index 517deba..07f459e 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
@@ -2,6 +2,7 @@
 import com.spire.xls.Workbook;
 import com.spire.xls.Worksheet;
 
+import java.io.File;
 import java.io.InputStream;
 
 /**
@@ -56,5 +57,19 @@
             worksheet.saveToPdf(outputPdfPath);
 
         }
+        public static void excelToPdf(String file, String outputPdfPath) {
+            //鍒涘缓Workbook 瀹炰緥骞跺姞杞界ず渚嬫枃妗�
+            Workbook workbook = new Workbook();
+            workbook.loadFromFile(file);
+            //杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害
+            workbook.getConverterSetting().setSheetFitToWidth(true);
+
+            //鑾峰彇绗竴涓伐浣滆〃
+            Worksheet worksheet = workbook.getWorksheets().get(0);
+
+            //淇濆瓨涓篜DF鏂囨。鏍煎紡
+            worksheet.saveToPdf(outputPdfPath);
+
+        }
 
 }

--
Gitblit v1.9.3