From 17ac23e93792f1403297dfa783c85db0c10abb20 Mon Sep 17 00:00:00 2001 From: linzhijie <19970921lzj> Date: 星期五, 06 八月 2021 16:15:38 +0800 Subject: [PATCH] PAQ 模板支持 --- src/main/java/com/ots/common/utils/poi/WordUtil.java | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ots/common/utils/poi/WordUtil.java b/src/main/java/com/ots/common/utils/poi/WordUtil.java index 2e97d4a..8ca167f 100644 --- a/src/main/java/com/ots/common/utils/poi/WordUtil.java +++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java @@ -9,6 +9,7 @@ import com.ots.project.exam.domain.TReportTemplate; import com.ots.project.exam.dto.JAQTableStyle; import com.ots.project.exam.dto.WordParam; +import com.ots.project.tool.PdfUtil; import com.ots.project.tool.ShellTool; import com.ots.project.tool.exam.ExamUtil; import com.ots.project.tool.exam.ImageUtil; @@ -41,6 +42,8 @@ import java.awt.image.BufferedImage; import java.io.*; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class WordUtil { private static final Logger log = LoggerFactory.getLogger(WordUtil.class); @@ -395,7 +398,7 @@ } } private static void setTextValue(Map<String, Object> textMap, XWPFDocument document, XWPFParagraph paragraph, int runPosition, XWPFRun run) { - System.out.println("琛ㄦ牸鐨勶細" + run.toString()); + log.info("琛ㄦ牸鐨勶細{}", run.toString()); try { run.setText(changeValue(run.toString(), textMap, run, paragraph, document, runPosition), 0); } catch (Exception e) { @@ -425,8 +428,10 @@ } } } - + + //鏍¢獙鏂囨湰鏄惁闇�瑕佹浛鎹� public static boolean checkText(String text) { + //鏇挎崲鏂囨湰鍖呭惈% if (text.indexOf("%") != -1 || StringUtils.equals(text, "N/A NONE")) { return true; } @@ -452,7 +457,11 @@ if (runValue.indexOf("<BoldText>") != -1) { return setOtherStyle(runValue, paragraph, runPosition, run); } - break; + //鏈変簺琛ㄦ牸鍙兘瀛樺湪澶氫釜瀛楀吀 闇�鏇挎崲澶氭涓嶈兘杞绘槗break + //娌℃湁鍙浛鎹㈠唴瀹圭洿鎺reak + if(getTextSize(runValue) == 0){ + break; + } } } @@ -759,7 +768,12 @@ setChageWord(fileName, out, textMap, tReportTemplate.getReportType(), templateType, autoTableMap); out.flush(); changColorIfJAQ(textMap, out, reportName, tReportTemplate.getReportType()); - ShellTool.execLibreofficeCommand("pdf", EssConfig.getProfile() + "/" + reportName, EssConfig.getProfile() + "/"); + //PAQ閲囩敤鏂扮殑doc杞琾df + if(!ReportTypeEnum.PAQ.getCode().equals(reportType)){ + ShellTool.execLibreofficeCommand("pdf", EssConfig.getProfile() + "/" + reportName, EssConfig.getProfile() + "/"); + }else{ + PdfUtil.convertPDF(EssConfig.getProfile() + "/" + reportName); + } zipFilePath = getPdfPath(reportName); deleteFileStrList.add(EssConfig.getProfile() + "/" + reportName); @@ -849,7 +863,7 @@ changeTextBox(document, textMap); //璁剧疆鍥捐〃 - if (Objects.equals(reportType, ReportTypeEnum.SAQ.getCode())) { + if (Objects.equals(reportType, ReportTypeEnum.SAQ.getCode()) || Objects.equals(reportType, ReportTypeEnum.PAQ.getCode())) { SAQChart.changeChart(document, textMap); } @@ -860,7 +874,7 @@ changeTable(document, textMap); //璁剧疆鍥捐〃鎺т欢 - changChar(textMap, document, reportType, templateType); + //changChar(textMap, document, reportType, templateType); document.write(out); } private static void changeTextBox(XWPFDocument document, Map<String, Object> textMap) throws DocumentException { @@ -1281,4 +1295,21 @@ textMap.put("JAQTableStyle", jaqTableStyleList); } } + + public static int getTextSize(String runValue){ + Pattern pattern = Pattern.compile("%\\w+%"); + Matcher matcher = pattern.matcher(runValue); + List<String> result = new ArrayList<>(); + while(matcher.find()){ + result.add(matcher.group()); + } + return result.size(); + } + + + public static void main(String[] args) { + if (!checkText("浜烘墠閫夋嫈鐨勭洰鐨勫氨鏄壘鍒拌兘澶熻儨浠诲伐浣溿�佹効鎰忔壙鎷呭伐浣滐紝涓斾笌缁勭粐鐨勯渶姹傘�佹枃鍖栥�佷环鍊艰鐩稿尮閰嶇殑浜恒�侾AQ鎶ュ憡鏄牴鎹�欓�変汉瀵筆AQ闂嵎涓鐩殑浣滅瓟淇℃伅鑰岀敓鎴愮殑锛屾祴閲忕殑鏄�欓�変汉鍦ㄥ伐浣滀腑鍋忓ソ鐨勮涓洪鏍笺�侾AQ涔熷寘鎷簡瀵逛綔绛旂湡瀹炴�х殑娴嬮噺锛屽悓鏃朵篃瑁呭叆浜員AI涓撴湁鐨勪綔鍋囬槻鑼冪▼搴忥紝鍙互鏈夋晥闄嶄綆鍊欓�変汉鐨勪吉瑁呭ソ鍊惧悜锛堝叏鐞�30%鐨勮嚜璇勯棶鍗蜂腑閮藉嚭鐜颁簡浼濂界幇璞★級銆�")) { + System.out.println("11"); + } + } } -- Gitblit v1.9.1