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