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