|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
}
|