From 9c0bfff1512e53dc810b1b227310ea89b4cddf01 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 10 四月 2025 15:27:22 +0800
Subject: [PATCH] bug修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java |   36 +++++++++++++++++++++++-------------
 1 files changed, 23 insertions(+), 13 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 54526f7..7fb9d31 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
@@ -5,6 +5,7 @@
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.util.Units;
 import org.apache.poi.xwpf.usermodel.*;
 import org.springframework.mock.web.MockMultipartFile;
@@ -20,11 +21,7 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -184,17 +181,17 @@
             XWPFDocument document = new XWPFDocument(fis);
             XWPFParagraph pic = document.createParagraph();
             XWPFRun picRun = pic.createRun();
-            XWPFPicture xwpfPicture = picRun.addPicture(
-                    new FileInputStream("/usr/local/project/file/1.jpg"), XWPFDocument.PICTURE_TYPE_JPEG,
-                    "/usr/local/project/file/1.jpg",
-                    Units.toEMU(60),
-                    Units.toEMU(30)
-            );
-            dataMap.put("${picture}", xwpfPicture);
-
+            Map<String, Object> dataMap1 = new HashMap<>();
+//            dataMap.put("${picture}", picRun.addPicture(
+//                    new FileInputStream("/usr/local/project/file/1.jpg"), XWPFDocument.PICTURE_TYPE_JPEG,
+//                    "/usr/local/project/file/1.jpg",
+//                    Units.toEMU(60),
+//                    Units.toEMU(30)
+//            ));
             // 处理段落
             for (XWPFParagraph paragraph : document.getParagraphs()) {
                 replaceParagraph(paragraph, dataMap);
+                replaceParagraph1(paragraph);
             }
 
             // 处理表格
@@ -283,6 +280,19 @@
             replaceRunRange(paragraph, info);
         }
     }
+    private static void replaceParagraph1(XWPFParagraph paragraph) throws IOException, InvalidFormatException {
+        List<XWPFRun> runs = paragraph.getRuns();
+        for (XWPFRun r : runs) {
+            String text = r.getText(0);
+            if (text != null && text.contains("{{image}}")) {
+                r.setText("", 0);
+                FileInputStream is = new FileInputStream("/usr/local/project/file/1.jpg");
+                r.addBreak();
+                r.addPicture(is, XWPFDocument.PICTURE_TYPE_JPEG, "/usr/local/project/file/1.jpg", Units.toEMU(60), Units.toEMU(30));
+                is.close();
+            }
+        }
+    }
 
     private static String processPlaceholder(String text, Map<String, Object> dataMap) {
         // 处理括号内的占位符

--
Gitblit v1.7.1