springboot生成PDF文件返回给前台_springboot返回pdf文件流_BestTomDoG的博客-CSDN博客

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 接口测试

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


原网址: 访问
创建于: 2023-08-08 16:40:47
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论