From c5990f66b61e124ee678cbb60699d1135c965ce3 Mon Sep 17 00:00:00 2001 From: luofl <1442745593@qq.com> Date: 星期五, 11 四月 2025 17:29:30 +0800 Subject: [PATCH] 修改bug --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java | 56 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 30 insertions(+), 26 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 d6645e9..b57b54b 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 @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.tool; import cn.hutool.core.io.FileUtil; +import com.ruoyi.common.utils.StringUtils; import freemarker.cache.ClassTemplateLoader; import freemarker.template.Configuration; import freemarker.template.Template; @@ -17,6 +18,7 @@ import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.*; +import java.nio.file.Files; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -71,39 +73,41 @@ XWPFDocument document = new XWPFDocument(fis); XWPFParagraph pic = document.createParagraph(); Base64.Decoder decoder = Base64.getDecoder(); - byte[] imageByte = decoder.decode(url); - InputStream stream = new ByteArrayInputStream(imageByte); + if(StringUtils.isNotEmpty(url)){ + byte[] imageByte = decoder.decode(url); + InputStream stream = new ByteArrayInputStream(imageByte); // File tempFile = FileUtil.createTempFile("/usr/local/project/file/temp", ".jpg", true); - File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg"); - tempFile.deleteOnExit(); // 程序结束时删除文件 + File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg"); + tempFile.deleteOnExit(); // 程序结束时删除文件 - try (OutputStream out = new FileOutputStream(tempFile); - InputStream in = stream) { - Thumbnails.of(in).scale(0.8).rotate(270).outputFormat("jpg").toOutputStream(out); - byte[] buffer = new byte[1024]; - int length; - // 从原始流读取数据并写入临时文件 - while ((length = in.read(buffer)) > 0) { - out.write(buffer, 0, length); + try (OutputStream out = Files.newOutputStream(tempFile.toPath()); + InputStream in = stream) { + Thumbnails.of(in).scale(0.8).rotate(270).outputFormat("jpg").toOutputStream(out); + byte[] buffer = new byte[1024]; + int length; + // 从原始流读取数据并写入临时文件 + while ((length = in.read(buffer)) > 0) { + out.write(buffer, 0, length); + } } - } - //处理图片 - for (XWPFParagraph paragraph : document.getParagraphs()) { - List<XWPFRun> runs = paragraph.getRuns(); - for (XWPFRun run : runs) { - String text = run.getText(0); - if (text != null && text.contains("picture")) { - run.setText("", 0); // 清除占位符文本 - run.addPicture( - new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG, - tempFile.getName(), - Units.toEMU(60), - Units.toEMU(30)); // 插入图片 + //处理图片 + for (XWPFParagraph paragraph : document.getParagraphs()) { + List<XWPFRun> runs = paragraph.getRuns(); + for (XWPFRun run : runs) { + String text = run.getText(0); + if (text != null && text.contains("picture")) { + run.setText("", 0); // 清除占位符文本 + run.addPicture( + new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG, + tempFile.getName(), + Units.toEMU(60), + Units.toEMU(30)); // 插入图片 + } } } } - + // 处理段落 for (XWPFParagraph paragraph : document.getParagraphs()) { replaceParagraph(paragraph, dataMap); -- Gitblit v1.7.1