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