From d63d367bfa2ce9e486c0988bcd457b3e0f7baec4 Mon Sep 17 00:00:00 2001 From: wzp <2040239371@qq.com> Date: 星期三, 31 一月 2024 18:31:03 +0800 Subject: [PATCH] 图片处理 --- src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java | 134 ++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/ots/project/tool/exam/ExamUtil.java | 7 ++ 2 files changed, 139 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ots/project/tool/exam/ExamUtil.java b/src/main/java/com/ots/project/tool/exam/ExamUtil.java index ff659c6..cead00f 100644 --- a/src/main/java/com/ots/project/tool/exam/ExamUtil.java +++ b/src/main/java/com/ots/project/tool/exam/ExamUtil.java @@ -113,9 +113,16 @@ barPictureMap.put("Combined_waterDrops", "CAQBar1.png"); barPictureMap.put("P_Abstract_context_waterDrops", "CAQBar1.png"); barPictureMap.put("P_Numeric_context_waterDrops", "CAQBar1.png"); + + //APIFan鐨勫浘鐗� + barPictureMap.put("box0","apifanSelected.png"); + barPictureMap.put("box1","apifanDefault.png"); + waterDropPictureMap.put("Combined_waterDrops", "waterDropOrange.png"); waterDropPictureMap.put("P_Abstract_context_waterDrops", "waterDropOrange.png"); waterDropPictureMap.put("P_Numeric_context_waterDrops", "waterDropOrange.png"); + + } public static String scoreToVM(Integer score) { if (score % 10 == 0) { diff --git a/src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java b/src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java index 53d0875..afbcdb7 100644 --- a/src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java +++ b/src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java @@ -1,18 +1,20 @@ package com.ots.project.tool.report.APIFan.chart; +import com.ots.framework.config.EssConfig; import com.ots.project.tool.report.MAQ.base.RowData; import com.ots.project.tool.report.MAQ.base.SeriesData; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ooxml.POIXMLDocument; import org.apache.poi.ooxml.POIXMLDocumentPart; +import org.apache.poi.util.Units; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.apache.poi.xwpf.usermodel.XWPFChart; -import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.*; import org.openxmlformats.schemas.drawingml.x2006.chart.*; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -71,6 +73,7 @@ textMap.put("P_Impmg11","65"); textMap.put("BST1","66"); textMap.put("BST2","67"); + textMap.put("box","1"); changeChart(document,textMap); document.write(os); }catch (Exception e){ @@ -92,6 +95,133 @@ } //鍥捐〃鏁版嵁 changeAPIFanChart(document,seriesDatas); + + + //鏇挎崲鍥剧墖 + try{ + // 鑾峰彇鎵�鏈夋钀� + List<XWPFParagraph> paragraphs = document.getParagraphs(); + + //鑾峰彇鍥剧墖璺緞 + String selectedPic = EssConfig.getReportTemplates()+"apifanSelected.png"; + String defaultPic =EssConfig.getReportTemplates()+"apifanDefalut.png"; + + // 閬嶅巻娈佃惤杩涜鏇挎崲鎿嶄綔 + synchronized (paragraphs) { + for (XWPFParagraph paragraph : paragraphs) { + String text = paragraph.getText(); + + //鐢�%%鍙峰湪鍓嶉潰琚浛鎹簡 + if (text.contains("{{box0}}")) { // 妫�鏌ユ槸鍚﹀寘鍚鏇挎崲鐨勬枃瀛楀彉閲� + String picturePath = ""; // 鍥剧墖璺緞 + + String Box = (String) textMap.get("box"); + int box = Integer.parseInt(Box); + if(box== 0) + { + picturePath =selectedPic; + } + else + { + picturePath = defaultPic; + } + + // 鍒涘缓鏂扮殑鍥剧墖娈佃惤 +// XWPFParagraph paragraph = document.createParagraph(); + // 鑾峰彇鎵�鏈夎繍琛岀殑鍒楄〃 + List<XWPFRun> runs = paragraph.getRuns(); + // 绉婚櫎鎵�鏈夎繍琛� + for (int i = runs.size() - 1; i >= 0 ; i--) { + paragraph.removeRun(i); + } + // 鍒涘缓鍥剧墖瀵硅薄 + XWPFRun run = paragraph.createRun(); + int pictureType = Document.PICTURE_TYPE_PNG; // 鍥剧墖绫诲瀷 + + // 灏嗗浘鐗囨彃鍏ュ埌娈佃惤涓� + int width = Units.toEMU(20); // 鍥剧墖瀹藉害 + int height = Units.toEMU(20); // 鍥剧墖楂樺害 + run.addPicture(new FileInputStream(picturePath), pictureType, "image.png", width, height); + run.setText("缁撴灉鍙俊锛屽彲浠ョ洿鎺ヨВ璇伙紙娴嬭瘯涓湭鍙戠幇鏄庢樉鐨勨�滀吉瑁呭ソ鈥濆�惧悜锛�"); + + } + if (text.contains("{{box1}}")) { // 妫�鏌ユ槸鍚﹀寘鍚鏇挎崲鐨勬枃瀛楀彉閲� + String picturePath = ""; // 鍥剧墖璺緞 + + String Box = (String) textMap.get("box"); + int box = Integer.parseInt(Box); + if(box== 1) + { + picturePath =selectedPic; + } + else + { + picturePath = defaultPic; + } + + // 鍒涘缓鏂扮殑鍥剧墖娈佃惤 +// XWPFParagraph paragraph = document.createParagraph(); + // 鑾峰彇鎵�鏈夎繍琛岀殑鍒楄〃 + List<XWPFRun> runs = paragraph.getRuns(); + // 绉婚櫎鎵�鏈夎繍琛� + for (int i = runs.size() - 1; i >= 0 ; i--) { + paragraph.removeRun(i); + } + // 鍒涘缓鍥剧墖瀵硅薄 + XWPFRun run = paragraph.createRun(); + int pictureType = Document.PICTURE_TYPE_PNG; // 鍥剧墖绫诲瀷 + + // 灏嗗浘鐗囨彃鍏ュ埌娈佃惤涓� + int width = Units.toEMU(20); // 鍥剧墖瀹藉害 + int height = Units.toEMU(20); // 鍥剧墖楂樺害 + run.addPicture(new FileInputStream(picturePath), pictureType, "image.png", width, height); + run.setText("缁撴灉涓嶅彲淇★紙娴嬭瘯涓湁鏄庢樉鐨勨�滀吉瑁呭ソ鈥濆�惧悜锛�"); + + } + if (text.contains("{{box2}}")) { // 妫�鏌ユ槸鍚﹀寘鍚鏇挎崲鐨勬枃瀛楀彉閲� + String picturePath = ""; // 鍥剧墖璺緞 + + String Box = (String) textMap.get("box"); + int box = Integer.parseInt(Box); + if(box== 2) + { + picturePath =selectedPic; + } + else + { + picturePath = defaultPic; + } + + // 鍒涘缓鏂扮殑鍥剧墖娈佃惤 +// XWPFParagraph paragraph = document.createParagraph(); + // 鑾峰彇鎵�鏈夎繍琛岀殑鍒楄〃 + List<XWPFRun> runs = paragraph.getRuns(); + // 绉婚櫎鎵�鏈夎繍琛� + for (int i = runs.size() - 1; i >= 0 ; i--) { + paragraph.removeRun(i); + } + // 鍒涘缓鍥剧墖瀵硅薄 + XWPFRun run = paragraph.createRun(); + int pictureType = Document.PICTURE_TYPE_PNG; // 鍥剧墖绫诲瀷 + + // 灏嗗浘鐗囨彃鍏ュ埌娈佃惤涓� + int width = Units.toEMU(20); // 鍥剧墖瀹藉害 + int height = Units.toEMU(20); // 鍥剧墖楂樺害 + run.addPicture(new FileInputStream(picturePath), pictureType, "image.png", width, height); + run.setText("缁撴灉鍙兘鍙俊锛岃В璇绘椂瑕佽皑鎱庯紙娴嬭瘯涓湁涓�瀹氱殑鈥滀吉瑁呭ソ鍊惧悜鈥濓級"); + + } + } + } + + + + } + catch (Exception ex) + { + System.out.println(ex.getMessage()); + } + return true; } -- Gitblit v1.9.1