|
|
|
@ -3,16 +3,8 @@ package cn.teammodel.controller.frontend;
|
|
|
|
|
import cn.teammodel.common.R;
|
|
|
|
|
import cn.teammodel.repository.AppraiseRepository;
|
|
|
|
|
import cn.teammodel.service.EvaluationService;
|
|
|
|
|
import cn.teammodel.utils.ChartUtil;
|
|
|
|
|
import cn.teammodel.utils.PdfUtil;
|
|
|
|
|
import com.itextpdf.text.DocumentException;
|
|
|
|
|
import com.itextpdf.text.pdf.PdfReader;
|
|
|
|
|
import com.itextpdf.text.pdf.PdfStamper;
|
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
|
import org.jfree.chart.ChartUtils;
|
|
|
|
|
import org.jfree.chart.JFreeChart;
|
|
|
|
|
import org.jfree.data.general.DefaultPieDataset;
|
|
|
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
@ -20,12 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/")
|
|
|
|
@ -51,37 +39,37 @@ public class HelloController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@GetMapping("public/pdf")
|
|
|
|
|
public void freepdf(HttpServletResponse response) throws DocumentException, IOException {
|
|
|
|
|
// 设置response参数
|
|
|
|
|
response.reset();
|
|
|
|
|
response.setContentType("application/pdf");
|
|
|
|
|
response.setHeader("Content-disposition",
|
|
|
|
|
"attachment;filename=report_student_" + System.currentTimeMillis() + ".pdf");
|
|
|
|
|
ClassPathResource resource = new ClassPathResource("templates/pdf_templates/student_report.pdf");
|
|
|
|
|
InputStream in = resource.getInputStream();
|
|
|
|
|
ServletOutputStream os = response.getOutputStream();
|
|
|
|
|
// 处理 stampter
|
|
|
|
|
PdfReader pdfReader = new PdfReader(in);
|
|
|
|
|
PdfStamper stamper = new PdfStamper(pdfReader, os);
|
|
|
|
|
|
|
|
|
|
Map<String, String> data = PdfUtil.data();
|
|
|
|
|
DefaultPieDataset dataset = new DefaultPieDataset( );
|
|
|
|
|
dataset.setValue( "IPhone 5s" , new Double( 20 ) );
|
|
|
|
|
dataset.setValue( "SamSung Grand" , new Double( 20 ) );
|
|
|
|
|
dataset.setValue( "MotoG" , new Double( 40 ) );
|
|
|
|
|
dataset.setValue( "Nokia Lumia" , new Double( 10 ) );
|
|
|
|
|
|
|
|
|
|
JFreeChart pieChart = ChartUtil.pieChart("手机销量统计", dataset);
|
|
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
|
|
ChartUtils.writeChartAsJPEG(bos, pieChart, 850, 440);
|
|
|
|
|
// 填充表单
|
|
|
|
|
PdfUtil.fillPdfForm(stamper, data);
|
|
|
|
|
PdfUtil.fillImage(stamper, "praiseDistribution", bos.toByteArray());
|
|
|
|
|
PdfUtil.fillImage(stamper, "criticalDistribution", bos.toByteArray());
|
|
|
|
|
// 关闭流
|
|
|
|
|
stamper.setFormFlattening(true);
|
|
|
|
|
stamper.close();
|
|
|
|
|
os.close();
|
|
|
|
|
public void freepdf(HttpServletResponse response) throws DocumentException, IOException { // 设置response参数
|
|
|
|
|
// response.reset();
|
|
|
|
|
// response.setContentType("application/pdf");
|
|
|
|
|
// response.setHeader("Content-disposition",
|
|
|
|
|
// "attachment;filename=report_student_" + System.currentTimeMillis() + ".pdf");
|
|
|
|
|
// ClassPathResource resource = new ClassPathResource("templates/pdf_templates/student_report.pdf");
|
|
|
|
|
// InputStream in = resource.getInputStream();
|
|
|
|
|
// ServletOutputStream os = response.getOutputStream();
|
|
|
|
|
// // 处理 stampter
|
|
|
|
|
// PdfReader pdfReader = new PdfReader(in);
|
|
|
|
|
// PdfStamper stamper = new PdfStamper(pdfReader, os);
|
|
|
|
|
//
|
|
|
|
|
// Map<String, String> data = PdfUtil.data();
|
|
|
|
|
// DefaultPieDataset dataset = new DefaultPieDataset( );
|
|
|
|
|
// dataset.setValue( "IPhone 5s" , new Double( 20 ) );
|
|
|
|
|
// dataset.setValue( "SamSung Grand" , new Double( 20 ) );
|
|
|
|
|
// dataset.setValue( "MotoG" , new Double( 40 ) );
|
|
|
|
|
// dataset.setValue( "Nokia Lumia" , new Double( 10 ) );
|
|
|
|
|
//
|
|
|
|
|
// JFreeChart pieChart = ChartUtil.pieChart("手机销量统计", dataset);
|
|
|
|
|
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
|
|
// ChartUtils.writeChartAsJPEG(bos, pieChart, 850, 440);
|
|
|
|
|
// // 填充表单
|
|
|
|
|
// PdfUtil.fillPdfForm(stamper, data);
|
|
|
|
|
// PdfUtil.fillImage(stamper, "praiseDistribution", bos.toByteArray());
|
|
|
|
|
// PdfUtil.fillImage(stamper, "criticalDistribution", bos.toByteArray());
|
|
|
|
|
// // 关闭流
|
|
|
|
|
// stamper.setFormFlattening(true);
|
|
|
|
|
// stamper.close();
|
|
|
|
|
// os.close();
|
|
|
|
|
//
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|