lichunyang 1 rok pred
rodič
commit
44edad8072

+ 36 - 8
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/util/ChartUtil.java

@@ -1,5 +1,8 @@
 package com.css.simulation.resource.server.infra.util;
 
+import com.itextpdf.text.*;
+import com.itextpdf.text.Image;
+import com.itextpdf.text.pdf.BaseFont;
 import lombok.SneakyThrows;
 import org.jfree.chart.ChartFactory;
 import org.jfree.chart.JFreeChart;
@@ -19,9 +22,6 @@ import java.awt.*;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 
-import com.itextpdf.text.Document;
-import com.itextpdf.text.Image;
-import com.itextpdf.text.PageSize;
 import com.itextpdf.text.pdf.PdfWriter;
 import org.apache.commons.io.FileUtils;
 import org.jfree.chart.ChartUtils;
@@ -177,19 +177,28 @@ public class ChartUtil {
             writer = PdfWriter.getInstance(doc, outputStream);
 
             doc.open();
-
+            BaseFont bf3 = BaseFont.createFont("fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+            addElement(doc, "表4-1 详细得分情况", null, bf3, 15, false, 30, true);
 
             // 饼图
             ByteArrayOutputStream pieBos = new ByteArrayOutputStream();
-            ChartUtils.writeChartAsJPEG(pieBos, ChartUtil.pieChart("饼图", getPieDataset()), 650, 240);
+            ChartUtils.writeChartAsJPEG(pieBos, ChartUtil.pieChart("饼图", getPieDataset()), 400, 250);
             Image pieImage = Image.getInstance(pieBos.toByteArray());
-            pieImage.scalePercent(60);
+            pieImage.scalePercent(50);
+//            pieImage.setAlignment(Image.LEFT);
+//            float postionY = (writer.getVerticalPosition(true) + 20f);
+//            pieImage.setAbsolutePosition();
+            float aa = pieImage.getAbsoluteY();
+            System.out.println(aa);
+//            pieImage.setAbsolutePosition(20, 0);
             doc.add(pieImage);
             // 饼图
             ByteArrayOutputStream pieBos1 = new ByteArrayOutputStream();
-            ChartUtils.writeChartAsJPEG(pieBos1, ChartUtil.pieChart("饼图2", getPieDataset()), 650, 240);
+            ChartUtils.writeChartAsJPEG(pieBos1, ChartUtil.pieChart("饼图2", getPieDataset()), 400, 250);
             Image pieImage1 = Image.getInstance(pieBos1.toByteArray());
-            pieImage1.scalePercent(60);
+            pieImage1.scalePercent(50);
+            pieImage1.setAlignment(Image.RIGHT);
+            pieImage1.setAbsolutePosition(200, aa);
             doc.add(pieImage1);
 
         } catch (Exception e) {
@@ -212,4 +221,23 @@ public class ChartUtil {
         return dataset;
     }
 
+    public static void addElement(Document document, String val1, String val2, BaseFont f, int fontSize, boolean isBold, int leading, boolean isCenter) throws DocumentException {
+        com.itextpdf.text.Font ft;
+        Paragraph elm;
+        if (isBold) {
+            ft = new com.itextpdf.text.Font(f, fontSize, com.itextpdf.text.Font.BOLD);
+        } else {
+            ft = new com.itextpdf.text.Font(f, fontSize);
+        }
+        if (val2 != null && !"".equals(val2)) {
+            elm = new Paragraph(leading, val1 + val2, ft);
+        } else {
+            elm = new Paragraph(leading, val1, ft);
+        }
+        if (isCenter) {
+            elm.setAlignment(Element.ALIGN_CENTER);
+        }
+        document.add(elm);
+    }
+
 }