From 98db15c66a1d4f2d701c24b751a9d43d362660a0 Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Fri, 5 Sep 2025 10:02:50 +0800 Subject: [PATCH] =?UTF-8?q?word=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=87=BAdemov8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/demo/domain/WordExportTest.java | 75 ++++++++++++------ .../src/main/resources/score_template.docx | Bin 30551 -> 31120 bytes 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/WordExportTest.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/WordExportTest.java index 7894e7d..af4f20c 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/WordExportTest.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/WordExportTest.java @@ -13,6 +13,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; +import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -56,9 +57,13 @@ public class WordExportTest { // 4. ✅ 使用 EasyPOI 填充模板(传 File) XWPFDocument document = WordExportUtil.exportWord07(String.valueOf(tempFile), data); - + List descriptions = Arrays.asList( + "这是第一张图片的描述", + "这是第二张图片的描述", + "这是第三张图片的描述" + ); // 5. ✅ 在文档末尾追加图片 - appendImages(document, IMAGE_PATHS); + appendImages(document, IMAGE_PATHS, descriptions); // 5. 导出到本地 @@ -74,34 +79,54 @@ public class WordExportTest { System.out.println("✅ Word 文件已生成:" + outputPath); } - // ✅ 新增方法:追加图片到文档末尾 - private static void appendImages(XWPFDocument document, List imagePaths) throws Exception { + private static void appendImages(XWPFDocument document, List imagePaths, List descriptions) throws Exception { if (imagePaths == null || imagePaths.isEmpty()) { System.out.println("📭 无图片需要插入"); return; } - for (String imagePath : imagePaths) { + // 确保描述的数量不超过图片数量 + if (descriptions != null && descriptions.size() > imagePaths.size()) { + descriptions = descriptions.subList(0, imagePaths.size()); + } + + for (int i = 0; i < imagePaths.size(); i++) { + String imagePath = imagePaths.get(i); File imageFile = new File(imagePath); if (!imageFile.exists()) { System.err.println("⚠️ 图片未找到:" + imagePath); continue; } - // 创建新段落 - XWPFParagraph paragraph = document.createParagraph(); - paragraph.setAlignment(ParagraphAlignment.CENTER); // 居中 - XWPFRun run = paragraph.createRun(); + // 创建新段落用于图片(居中) + XWPFParagraph imgParagraph = document.createParagraph(); + imgParagraph.setAlignment(ParagraphAlignment.CENTER); // 居中 + XWPFRun imgRun = imgParagraph.createRun(); // 读取图片 try (FileInputStream is = new FileInputStream(imageFile)) { int pictureType = getPictureType(imageFile.getName()); - run.addPicture(is, pictureType, imageFile.getName(), + // 设置图片大小,这里使用300x150 EMU + imgRun.addPicture(is, pictureType, imageFile.getName(), Units.toEMU(300), Units.toEMU(150)); } + // 如果提供了描述,则在图片下方添加描述段落 + if (descriptions != null && i < descriptions.size()) { + String desc = descriptions.get(i); + + XWPFParagraph captionParagraph = document.createParagraph(); + captionParagraph.setAlignment(ParagraphAlignment.CENTER); // 描述也居中 + + XWPFRun captionRun = captionParagraph.createRun(); + captionRun.setText("图" + (i + 1) + ":" + desc); // 使用描述内容 + captionRun.setColor("666666"); // 灰色文字,更像图注 + captionRun.setFontSize(10); // 字体小一点 + captionRun.setItalic(true); // 斜体(可选) + captionRun.setFontFamily("宋体"); // 设置字体 + } - // 每张图后空一行 + // 每张图和描述后空一行 document.createParagraph(); } } @@ -223,27 +248,27 @@ public class WordExportTest { data.put("o_time", "4.2"); // 用户手动填写,单位:min,不参与任何计算 //----------PM10 测试---------- - double pm10Display = 0.8; - double pm10Std = 0.78; + double pmTenDisplay = 0.8; + double pmTenStd = 0.78; - data.put("pm10_display", String.valueOf(pm10Display)); - data.put("pm10_std", String.valueOf(pm10Std)); - data.put("pm10_error", calcError(pm10Display, pm10Std)); // 自动计算:相对误差 + data.put("pm_ten_display", String.valueOf(pmTenDisplay)); + data.put("pm_ten_std", String.valueOf(pmTenStd)); + data.put("pm_ten_error", calcError(pmTenDisplay, pmTenStd)); // 自动计算:相对误差 - data.put("pm10_k", 0.8); - data.put("k0_A", 0.8); + data.put("pm_ten_k", 0.8); + data.put("slope_a", 0.8); //----------PM2 测试---------- - double pm2Display = 0.8; - double pm2Std = 0.78; + double pmTwoDisplay = 0.8; + double pmTwoStd = 0.78; - data.put("pm2_display", String.valueOf(pm2Display)); - data.put("pm2_std", String.valueOf(pm2Std)); - data.put("pm2_error", calcError(pm2Display, pm2Std)); // 自动计算:相对误差 + data.put("pm_two_display", String.valueOf(pmTwoDisplay)); + data.put("pm_two_std", String.valueOf(pmTwoStd)); + data.put("pm_two_error", calcError(pmTwoDisplay, pmTwoStd)); // 自动计算:相对误差 - data.put("pm2_k", 0.5); - data.put("k0_B", 0.5); + data.put("pm_two_k", 0.5); + data.put("slope_b", 0.5); System.out.println("✅ 数据准备完成!"); System.out.println(JSONUtil.toJsonStr(data)); diff --git a/ruoyi-modules/ruoyi-demo/src/main/resources/score_template.docx b/ruoyi-modules/ruoyi-demo/src/main/resources/score_template.docx index 92e44f868ca6b2054a11d4364904f0aa31e052e8..d9a13087251dff83ca2ebdb2176c33e33e400c63 100644 GIT binary patch delta 17101 zcmX6^Q+OEt*Nko3Mq}Hyo5ogSV`JNH>@-dq+qRR&w*B?}e>c0&vln~u+c`7m%$Z%j z1dYD~t=)lw1ChdL+2sHMsmo3}gTe)L?boH7FW*2P0T?g@hbd6=KDtB+)|E~Cj!WG0 zjNGA#^Ksq&x|D%ZyYcuO#V2-7L+TrjF3P$+mnxUt0hx`Hh>P4mgu`hN>A&jNDGo~C zL(~QfOe0bmWD6)GfAbHZQKm*}Y`-p5XxLQ09sw_HEk_$# zDHkpG?G&Y{uQ!7#gYlzjL-rC$%z%S>*?d^HaxuTaxF zRIgCq^slbo_um(Ldq1PFzahBjD?GR%yqC1Jvn3Hp8xXxKShPKfzTO^OPA!C-oyadk zj(|>iFaDBoFM)!(zB(cFHE;zGvY)cf-g$r6=w-y7J)6(vIpp72OPMo2JgDI39ZC+s zk3qh8h}Fi1UZaaTbkKGkmdrrTRhl5ex^e`2yH-)wb)}B+6I9etdUQ~hccnh>F^)bo zxgaQZ4uj@iDn0BVGnKM+5(Yin9gc-;#ZIIxzXCD%msdFFT??D@0?z>A&m^%IbKbVM zuBt+*=ij36ojzKVjMCU%^Lph(UG&?suSs{ytiISEZ-CyPUoIbHo!eh(f5;cnFD-7S zX|YuekRK5c4zDJIarwO3chIA_tg%_kiTGnrx&kUUKOo(Xt6MnUcNTrf4RY8)3?3f$ zyWKm9gE5+97tCj@xUB(Z`KOQ8vx|HIp;n2WkaUGP@ts&^J(`b6A0;oAz&O7@zw>GF zexM}!+#>dvAm&Y}OPeLwi#@LYnen99EXuizH%_q+n}V|{eX}$akw!vrD=7>3ZNtF< z`r;!rLhR(Nq6@AUq^D(L^G!$!d*t6q5Nh#3!HJ6Lb`T`O+%f`i5{#<;4@G?NK9Xzl zi=39m`MvgDQHQl(vL=DAH5vC!pM^_p_%;{rQpvtKI7%Fi2k<^Du!!tS8A1jZ$HVel z>z+66TCZ~%v2p@`q_lmejbQnYCP7|^!86`(^h>%Pf1|%YGktrC$JSe(LY3wJqU8i* zDsJy01>SC;`v!r}Soz_rS_Ie<1n%JbyDg0>QRq<(OXz)PyYIy5T@k2Im_d*^>+DnHt@@5F+gQAsqNfA&H%ut*#7v?5_p*g`5+Mkcuk7m zprEfU2*GnUacCdcE`mP1_o;tZ_<~bn^FqrCUS9Sir=Q~Bs6)5$S!Sgjf3`JD2ZvF^LIT`yk;dzErR5G}kITV7uOZicqI4Cmmx*3Uog*Yh

uvM6u- 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 Dsqxua delta 16512 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 O$