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