From 4fcd294f79c626f3a8889d1e92a02d810c754747 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 10 四月 2025 16:19:47 +0800 Subject: [PATCH] bug修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java | 34 +++++++++++++++++++++------------- 1 files changed, 21 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 1960ab0..267a564 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 @@ -13,14 +13,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -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.io.*; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -118,10 +111,10 @@ } - public String generatePdf(String basePackagePath, String templateFileName, Map<String,Object> templateParam, String fileName, String saveDirectory) { + public String generatePdf(String basePackagePath, String templateFileName, Map<String,Object> templateParam, String fileName, String saveDirectory,String url) { try { - fillTemplate(basePackagePath+templateFileName, saveDirectory+fileName+".docx", templateParam); + fillTemplate(basePackagePath+templateFileName, saveDirectory+fileName+".docx", templateParam,url); // 创建 Freemarker 的 Configuration 对象,设置默认的不兼容改进选项 // Configuration configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS); @@ -173,7 +166,7 @@ } } - public static void fillTemplate(String templatePath, String outputPath,Map<String, Object> dataMap) { + public static void fillTemplate(String templatePath, String outputPath,Map<String, Object> dataMap,String url) { try (FileInputStream fis = new FileInputStream(templatePath)) { // 设置默认编码为UTF-8 System.setProperty("file.encoding", "UTF-8"); @@ -181,9 +174,24 @@ XWPFDocument document = new XWPFDocument(fis); XWPFParagraph pic = document.createParagraph(); XWPFRun picRun = pic.createRun(); + Base64.Decoder decoder = Base64.getDecoder(); + byte[] imageByte = decoder.decode(url); + InputStream stream = new ByteArrayInputStream(imageByte); + File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg"); + tempFile.deleteOnExit(); // 程序结束时删除文件 + + try (OutputStream out = new FileOutputStream(tempFile); + InputStream in = stream) { + byte[] buffer = new byte[1024]; + int length; + // 从原始流读取数据并写入临时文件 + while ((length = in.read(buffer)) > 0) { + out.write(buffer, 0, length); + } + } dataMap.put("${picture}", picRun.addPicture( - new FileInputStream("/usr/local/project/file/1.jpg"), XWPFDocument.PICTURE_TYPE_JPEG, - "/usr/local/project/file/1.jpg", + new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG, + "/usr/local/project/file/sign.jpg", Units.toEMU(60), Units.toEMU(30) )); -- Gitblit v1.7.1