From 56c8bc18def3992259da50948119259f571d04ee Mon Sep 17 00:00:00 2001 From: zhijie <1003392067@qq.com> Date: 星期二, 08 六月 2021 23:25:39 +0800 Subject: [PATCH] MAQ简易版泰文支持,SAQ简易版支持 --- src/main/java/com/ots/project/tool/exam/ImageUtil.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ots/project/tool/exam/ImageUtil.java b/src/main/java/com/ots/project/tool/exam/ImageUtil.java index ff2b699..dcf2dcd 100644 --- a/src/main/java/com/ots/project/tool/exam/ImageUtil.java +++ b/src/main/java/com/ots/project/tool/exam/ImageUtil.java @@ -85,6 +85,15 @@ } return width; } + + /** + * 鍒涘缓姘存淮鍥剧墖 + * @param key + * @param waterDrop + * @param scorceF + * @param member_id + * @param suffixDate + */ public static void creteWaterDropPic(String key, String waterDrop, float scorceF, String member_id, String suffixDate) { int CANVAS_W = 1000; int CANVAS_H = 96; @@ -95,10 +104,24 @@ int barImageY = 30; float scorce = scorceF / 100; if (key.indexOf("ResponseFidelityDiagnosis") != -1) { - CANVAS_H = 105; + CANVAS_H = 105; waterDropImageX = 2; scorce100 = 812; barImageY = 5; + } + if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1) { + CANVAS_H = 400; + waterDropImageX = -30; + scorce100 = 800; + barImageY = 5; + waterDropImageY = 0; + } + if (key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) { + CANVAS_H = 400; + waterDropImageX = -30; + scorce100 = 800; + barImageY = 5; + waterDropImageY = 0; } if (key.indexOf("RuilinTestResultValidityDiagnosisContext") != -1) { CANVAS_H = 105; @@ -130,6 +153,9 @@ } else { barName = ""; } + if(StringUtils.isBlank(barName)){ + return; + } BufferedImage barImage = getImage(reportTemplates + barName); BufferedImage waterDropImage = getImage(reportTemplates + waterDrop); @@ -153,7 +179,11 @@ int waterDropOffsetX = setWaterDrop(waterDrop, waterDropImageX, waterDropImageY, scorce100, scorce, g2d, waterDropImage); - setText(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX); + if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1 || key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) { + setTextV2(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX); + }else{ + setText(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX); + } g2d.dispose(); outputBarWaterImage(key + "_" + member_id + "_" + String.valueOf(scorceF)+"_" + suffixDate, image); @@ -165,6 +195,25 @@ } catch (IOException e) { e.printStackTrace(); } + } + private static void setTextV2(String value, Graphics2D g2d, int waterDropOffsetX) { + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + + g2d.setColor(Color.BLACK); + Font font = new Font("", Font.BOLD, 16); + g2d.setFont(font); + + int numX = 0; + int numY = 17; + if (value.length() == 2) { + numX = 36; + } else if (value.length() == 3) { + numX = 32; + } else if (value.length() == 1) { + numX = 42; + } + + g2d.drawString(value, numX + waterDropOffsetX, numY); } private static void setText(String value, Graphics2D g2d, int waterDropOffsetX) { g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON); @@ -207,6 +256,7 @@ return image; } catch (IOException e) { log.info("寮傚父鍥剧墖锛�" + path); + log.error("{}鍙戠敓寮傚父:{}",path, e); throw new RuntimeException("鑾峰彇鍥剧墖璧勬簮寮傚父", e); } } -- Gitblit v1.9.1