1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > springboot生成PDF文件返回给前台

springboot生成PDF文件返回给前台

时间:2018-09-05 06:52:15

相关推荐

springboot生成PDF文件返回给前台

1制作好自己的pdf模版,我这里是通过wps把word转换成pdf文件

2下载Adobe Acrobat DC工具来制作pdf的模板

以上就是怎么制作pdf文件的模版

3引入maven依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.5</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

4编写接口

/*** 根据计划单ID查找到当条订单,并生成PDF返回给前台* 请忽略我的根据id查询,根据自己的情况来决定来查询自己的数据* @param id* @param response* @return*/public Result<Object> downloadPDFFile(@PathVariable("id") String id, HttpServletResponse response) {try {ResponseSalesApplyList applyList = salescustomerapplylistservice.selectDetailById(id);String templatePath = "/Users/apple/Desktop/test.pdf";//制作好的PDF模版路径PdfReader reader;FileOutputStream out = null;PdfReader pdfReader = null;ByteArrayOutputStream bos = null;PdfStamper stamper;int page = 1;List<PdfReader> list = new ArrayList();reader = new PdfReader(templatePath);bos = new ByteArrayOutputStream();stamper = new PdfStamper(reader, bos);AcroFields form = stamper.getAcroFields();//这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值form.setField("studentNum", "001");form.setField("name", "张三");form.setField("subject", "语文");form.setField("score", "98");//true代表生成的PDF文件不可编辑ServletOutputStream servletOutputStream = response.getOutputStream();stamper.setFormFlattening(true);stamper.close();pdfReader = new PdfReader(bos.toByteArray());list.add(pdfReader);Document doc = new Document();PdfCopy copy = new PdfCopy(doc, response.getOutputStream());doc.open();for (int k = 0; k < list.size(); k++) {PdfReader pdfReader1 = list.get(k);doc.newPage();copy.addDocument(pdfReader1);}copy.close();return Result.success("返回成功!");} catch (Exception e) {e.printStackTrace();return Result.error(ResultMsg.EXECUTE_ERROR.fillArgs(e.getMessage()));}}

5 接口测试

希望可以帮助到大家...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。