Commit 9c5f747e authored by wangxl's avatar wangxl

1

parent 11eff3d6
......@@ -205,6 +205,7 @@
<artifactId>flying-saucer-pdf</artifactId>
<version>9.1.22</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
......
......@@ -14,8 +14,8 @@ import com.yiboshi.science.rest.BaseController;
import com.yiboshi.science.service.ComFileService;
import com.yiboshi.science.service.ComProjectService;
import com.yiboshi.science.service.ComProjectTaskService;
import com.yiboshi.science.utils.*;
import com.yiboshi.science.service.SystemParameterService;
import com.yiboshi.science.utils.PDF;
import com.yiboshi.science.utils.ProjectInfoToPDF;
import com.yiboshi.science.utils.StringUtil;
import io.swagger.annotations.Api;
......@@ -44,15 +44,15 @@ public class ComProjectController extends BaseController<ComProjectService, ComP
@Autowired
private ComProjectService comProjectService;
@Autowired
private SystemParameterService systemParameterService;
@Autowired
private ComProjectTaskService comProjectTaskService;
@Autowired
private ComFileService comFileService;
@Autowired
private SystemParameterService systemParameterService;
/**
* 功能:分页查询
*
......@@ -87,13 +87,25 @@ public class ComProjectController extends BaseController<ComProjectService, ComP
return ResponseDataModel.ok(comProjectService.getCount(e));
}
@ApiOperation(value = "项目信息导出", httpMethod = "POST", notes = "项目信息导出")
@RequestMapping("/export1/{id}")
@PostMapping
public void export1(@PathVariable String id) {
comProjectService.export(id, request, response);
}
@ApiOperation(value = "项目信息导出", httpMethod = "POST", notes = "项目信息导出")
@RequestMapping("/export/{id}")
@PostMapping
public void export(@PathVariable String id) {
comProjectService.export(id,request,response);
public ResponseDataModel<byte[]> export(@PathVariable String id) {
try {
return ResponseDataModel.ok(PDF.createPDF(response, "tmp-report.html", new ComProject()));
} catch (Exception e) {
return new ResponseDataModel(ResponseCode.SERVER_ERROR, "");
}
}
/**
* 根据id获取项目信息
*
......
package com.yiboshi.science.rest.v1;
import com.yiboshi.arch.base.ResponseCode;
import com.yiboshi.arch.base.ResponseDataModel;
import com.yiboshi.science.base.Pagination;
import com.yiboshi.science.config.annotation.Logs;
import com.yiboshi.science.config.security.SecurityUserHolder;
import com.yiboshi.science.entity.ComProject;
import com.yiboshi.science.entity.ComProjectAudit;
import com.yiboshi.science.entity.ComProjectTask;
import com.yiboshi.science.entity.SelectListItem;
......@@ -16,17 +18,22 @@ import com.yiboshi.science.param.query.ComProjectTaskQueryVO;
import com.yiboshi.science.rest.BaseController;
import com.yiboshi.science.service.ComProjectTaskService;
import com.yiboshi.science.service.SystemParameterService;
import com.yiboshi.science.utils.PDF;
import com.yiboshi.science.utils.PdfUtil;
import com.yiboshi.science.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.velocity.VelocityContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
......@@ -142,4 +149,29 @@ public class ComProjectTaskController extends BaseController<ComProjectTaskServi
return ResponseDataModel.ok(list);
}
@ApiOperation(value = "项目导出", httpMethod = "POST", notes = "项目导出")
@RequestMapping("/export/{id}")
@PostMapping
public ResponseDataModel<byte[]> export(@PathVariable String id) {
try {
try (ServletOutputStream outputStream = response.getOutputStream()) {
VelocityContext context = new VelocityContext();
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
context.put("reportYear", 2024);
context.put("year", calendar.get(Calendar.YEAR));
context.put("month", month >= 10 ? month : "0" + month);
context.put("day", day >= 10 ? day : "0" + day);
PdfUtil.pdfFile(context, "/template/demo.html", outputStream);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseDataModel.ok(null);
// return ResponseDataModel.ok(PDF.createPDF(response, "tmp-task.html", ComProjectTaskService.getTaskByProjId(id)));
} catch (Exception e) {
return new ResponseDataModel(ResponseCode.SERVER_ERROR, "");
}
}
}
\ No newline at end of file
......@@ -8,16 +8,10 @@ import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;
import org.apache.velocity.app.Velocity;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import static java.lang.System.in;
......@@ -45,6 +39,8 @@ public class PDF {
String htmlContent = tmpText.toString();
// 创建PDF渲染器
ITextRenderer renderer = new ITextRenderer();
// Java代码示例
// renderer.getSharedContext().setDPI(1); // 提高DPI减少锯齿
// 设置中文字体
String simPath = ResourceFileUtil.getAbsolutePath("/fonts/simsun.ttc");
String msyhPath = ResourceFileUtil.getAbsolutePath("/fonts/msyh.ttc");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment