From c5990f66b61e124ee678cbb60699d1135c965ce3 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期五, 11 四月 2025 17:29:30 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java |   56 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 30 insertions(+), 26 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java
index d6645e9..b57b54b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java
@@ -1,6 +1,7 @@
 package com.ruoyi.web.controller.tool;
 
 import cn.hutool.core.io.FileUtil;
+import com.ruoyi.common.utils.StringUtils;
 import freemarker.cache.ClassTemplateLoader;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -17,6 +18,7 @@
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.*;
+import java.nio.file.Files;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -71,39 +73,41 @@
             XWPFDocument document = new XWPFDocument(fis);
             XWPFParagraph pic = document.createParagraph();
             Base64.Decoder decoder = Base64.getDecoder();
-            byte[] imageByte = decoder.decode(url);
-            InputStream stream = new ByteArrayInputStream(imageByte);
+            if(StringUtils.isNotEmpty(url)){
+                byte[] imageByte = decoder.decode(url);
+                InputStream stream = new ByteArrayInputStream(imageByte);
 //            File tempFile = FileUtil.createTempFile("/usr/local/project/file/temp", ".jpg", true);
-            File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg");
-            tempFile.deleteOnExit(); // 程序结束时删除文件
+                File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg");
+                tempFile.deleteOnExit(); // 程序结束时删除文件
 
-            try (OutputStream out = new FileOutputStream(tempFile);
-                 InputStream in = stream) {
-                Thumbnails.of(in).scale(0.8).rotate(270).outputFormat("jpg").toOutputStream(out);
-                byte[] buffer = new byte[1024];
-                int length;
-                // 从原始流读取数据并写入临时文件
-                while ((length = in.read(buffer)) > 0) {
-                    out.write(buffer, 0, length);
+                try (OutputStream out = Files.newOutputStream(tempFile.toPath());
+                     InputStream in = stream) {
+                    Thumbnails.of(in).scale(0.8).rotate(270).outputFormat("jpg").toOutputStream(out);
+                    byte[] buffer = new byte[1024];
+                    int length;
+                    // 从原始流读取数据并写入临时文件
+                    while ((length = in.read(buffer)) > 0) {
+                        out.write(buffer, 0, length);
+                    }
                 }
-            }
 
-            //处理图片
-            for (XWPFParagraph paragraph : document.getParagraphs()) {
-                List<XWPFRun> runs = paragraph.getRuns();
-                for (XWPFRun run : runs) {
-                    String text = run.getText(0);
-                    if (text != null && text.contains("picture")) {
-                        run.setText("", 0); // 清除占位符文本
-                        run.addPicture(
-                                new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG,
-                                tempFile.getName(),
-                                Units.toEMU(60),
-                                Units.toEMU(30)); // 插入图片
+                //处理图片
+                for (XWPFParagraph paragraph : document.getParagraphs()) {
+                    List<XWPFRun> runs = paragraph.getRuns();
+                    for (XWPFRun run : runs) {
+                        String text = run.getText(0);
+                        if (text != null && text.contains("picture")) {
+                            run.setText("", 0); // 清除占位符文本
+                            run.addPicture(
+                                    new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG,
+                                    tempFile.getName(),
+                                    Units.toEMU(60),
+                                    Units.toEMU(30)); // 插入图片
+                        }
                     }
                 }
             }
-            
+
             // 处理段落
             for (XWPFParagraph paragraph : document.getParagraphs()) {
                 replaceParagraph(paragraph, dataMap);

--
Gitblit v1.7.1