From bf90c55358e0bbbbf5091133e45f887fd7f1734c Mon Sep 17 00:00:00 2001
From: wzp <2040239371@qq.com>
Date: 星期四, 01 二月 2024 16:37:12 +0800
Subject: [PATCH] 图文段落居中显示

---
 src/main/java/com/ots/project/tool/report/APIFan/chart/APIFanChart.java |  163 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 161 insertions(+), 2 deletions(-)

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..c06168a 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,21 +1,25 @@
 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 org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
 
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.math.BigInteger;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -71,6 +75,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 +97,160 @@
         }
         //鍥捐〃鏁版嵁
         changeAPIFanChart(document,seriesDatas);
+
+
+        //鏇挎崲鍥剧墖
+        try{
+            // 鑾峰彇鎵�鏈夋钀�
+            List<XWPFParagraph> paragraphs = document.getParagraphs();
+
+            //鑾峰彇鍥剧墖璺緞
+            String selectedPic = EssConfig.getReportTemplates()+"apifanSelected.png";
+            String defaultPic =EssConfig.getReportTemplates()+"apifanDefalut.png";
+
+            //娴嬭瘯鐢ㄧ殑
+//            String selectedPic = "C:\\娴嬭瘎绯荤粺\\home\\reportTemplates\\apifanSelected.png";
+//            String defaultPic ="C:\\娴嬭瘎绯荤粺\\home\\reportTemplates\\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);
+
+                        // 娣诲姞绌烘牸鎴栧埗琛ㄧ锛屼娇鏂囨湰灞呬腑瀵归綈
+                        int numberOfSpaces = 3;
+                        for (int i = 0; i < numberOfSpaces; i++) {
+                            run.setText(" ");
+                        }
+                        // 璁剧疆瀛楃闂磋窛涓哄眳涓榻�
+                        paragraph.setVerticalAlignment(TextAlignment.CENTER);
+                        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);
+                        // 娣诲姞绌烘牸鎴栧埗琛ㄧ锛屼娇鏂囨湰灞呬腑瀵归綈
+                        int numberOfSpaces = 3;
+                        for (int i = 0; i < numberOfSpaces; i++) {
+                            run.setText(" ");
+                        }
+                        // 璁剧疆瀛楃闂磋窛涓哄眳涓榻�
+                        paragraph.setVerticalAlignment(TextAlignment.CENTER);
+                        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);
+                        // 娣诲姞绌烘牸鎴栧埗琛ㄧ锛屼娇鏂囨湰灞呬腑瀵归綈
+                        int numberOfSpaces = 3;
+                        for (int i = 0; i < numberOfSpaces; i++) {
+                            run.setText(" ");
+                        }
+                        // 璁剧疆瀛楃闂磋窛涓哄眳涓榻�
+                        paragraph.setVerticalAlignment(TextAlignment.CENTER);
+                        run.setText("缁撴灉鍙兘鍙俊锛岃В璇绘椂瑕佽皑鎱庯紙娴嬭瘯涓湁涓�瀹氱殑鈥滀吉瑁呭ソ鍊惧悜鈥濓級");
+
+                    }
+                }
+            }
+
+
+
+        }
+        catch (Exception ex)
+        {
+            System.out.println(ex.getMessage());
+        }
+
         return true;
     }
 

--
Gitblit v1.9.1