From 099ea14bba367fd86f0dde37d908f07cc04c3d39 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 10 四月 2025 15:38:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/xizang --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java | 39 +++++++++++++++++++++++++++++++++------ 1 files changed, 33 insertions(+), 6 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 60d821a..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,17 +5,22 @@ 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; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -174,10 +179,19 @@ System.setProperty("file.encoding", "UTF-8"); XWPFDocument document = new XWPFDocument(fis); - + XWPFParagraph pic = document.createParagraph(); + XWPFRun picRun = pic.createRun(); + 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); } // 处理表格 @@ -266,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