Parcourir la source

fix(excel): 修复PDF导出和图片处理功能

- 注释掉可能导致PDF导出异常的收缩适应设置
- 添加空值检查以防止单元格背景图片处理时出现空指针异常
- 添加空值检查以防止浮动图片处理时出现空指针异常
- 确保在文件字节数组为空时不执行图片处理逻辑
xuzhancheng il y a 4 jours
Parent
commit
4a2a074cd2

+ 7 - 1
src/main/java/com/grapecity/controller/GrapeCityController.java

@@ -255,7 +255,7 @@ public class GrapeCityController {
             };
             PdfSaveOptions pdfOptions = new PdfSaveOptions();
             pdfOptions.setIncludeAutoMergedCells(true);
-            pdfOptions.getShrinkToFitSettings().setCanShrinkToFitWrappedText(true);
+//            pdfOptions.getShrinkToFitSettings().setCanShrinkToFitWrappedText(true);
             List<PageInfo> pages = printManager.paginate(workbook);
             printManager.savePageInfosToPDF(byteArrayOutputStream, pages, pdfOptions);
             return byteArrayOutputStream.toByteArray();
@@ -282,6 +282,9 @@ public class GrapeCityController {
      * 处理单元格背景图片
      */
     private void processCellBackgroundImages(IWorksheet worksheet, Map<String, byte[]> fileBytes) {
+        if (fileBytes == null || fileBytes.isEmpty()){
+            return;
+        }
         for (int x = 0; x < worksheet.getRowCount(); x++) {
             for (int y = 0; y < worksheet.getColumnCount(); y++) {
                 IRange range = worksheet.getCells().get(x, y);
@@ -329,6 +332,9 @@ public class GrapeCityController {
      * 处理浮动图片
      */
     private void processFloatingImages(IWorksheet worksheet, Map<String, Object> data, Map<String, byte[]> fileBytes) {
+        if (fileBytes == null || fileBytes.isEmpty()){
+            return;
+        }
         Object illustrationObj = data.get("Illustration");
         if (illustrationObj != null) {
             JSONArray jsonArray;