Java–依照PDF模板进行数据的填充并输出

今天因为有一个逻辑问题迟迟没有定下来,老板去了学习,所以闲着也是闲着,就抽空学习研究了下用Java输出PDF文件的技术。

引入相应的Jar包

这是导出pdf文件必备的jar包,我们将其在pom文件中引用

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

pdf生成的主要方法

首先需要创建一个pdf模板,再把该模板引入至项目的resource文件夹下,再在代码中进行资源文件的读取。

private static ByteArrayOutputStream createPdfStream(String templateFilePath, String templateFileName, Map<String, String> resultMap) {ByteArrayOutputStream ba = new ByteArrayOutputStream();try {PdfReader reader = new PdfReader(templateFilePath + "\\" + templateFileName);PdfStamper stamp = new PdfStamper(reader, ba);//使用字体BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);//获取模版中的字段AcroFields form = stamp.getAcroFields();//填充表单if (resultMap != null) {//依次获取要填充的数据for (Map.Entry<String, String> entry : resultMap.entrySet()) {form.setFieldProperty(entry.getKey(), "textfont", bf, null);form.setField(entry.getKey(), entry.getValue());}}stamp.setFormFlattening(true);//设置为不能编辑stamp.close();reader.close();} catch (IOException ioException) {ioException.printStackTrace();} catch (DocumentException documentException) {documentException.printStackTrace();}return ba;}

导出的方法

    @PostMapping("/pdfTest")public String pdfTest() {//定义要填充的数据封装成Map对象Map<String, String>  resultMap= new HashMap<String, String>(0);resultMap.put("name","张三");//根据模板填充数据源try{ByteArrayOutputStream pdf = createPdfStream(ClassLoader.getSystemResource("template").getPath(), "pdf.pdf", resultMap);//输出Pdf的位置String newPadPath="D:\\idea_workspace\\springboot-webscoket\\src\\main\\resources\\template"+"\\pdf2.pdf";FileOutputStream out = new FileOutputStream(newPadPath);out.write(pdf.toByteArray());out.flush();out.close();pdf.close();}catch (Exception e){e.printStackTrace();}return "success";}

根据以上的代码可以进行测试,可以进行pdf的导出。

结语

不知为何,最近心情十分地烦躁,或许是因为环境的因素吧,每次来到了工位上就想马上下班一起和她煲剧,在这里感受不到任何的乐趣。还是那句话,既来之,则安之。

Java--依照PDF模板进行数据的填充并输出相关推荐

  1. java pdf 报表_关于Java向PDF模板写入数据,以及java制作pdf报表的问题

    1.关于java向PDF模板写入数据 写的特别全一步一步来就行. (1)首先下载一个pdf编辑工具Adobe Acrobat DC (2)准备一个pdf模板文件(你可以把自己创建一个只有表头没有内容的 ...

  2. java 解析word模板为xml, 动态填充数据到xml,最后输出word文档

    java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...

  3. java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件

    Java 使用pdf 模板生成pdf文件 --制作流程 1.      使用工具 adobe acrobat dc.word 2015 2.      使用 word 繪制一個 3*5 的表格並保存, ...

  4. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  5. Java读取pdf模板,并动态生成pdf文件,如动态生成准考证

    Java读取pdf模板,并动态生成pdf文件,如动态生成准考证 ​ 前几天遇到了一个生成准考证的需求,并提供用户下载,然后百度了一圈还是觉得使用itextpdf这个框架好用点.但是还需要找到一个能创建 ...

  6. Java向pdf模板中写入数据并在模板之后添加新的表格内容

    场景:我们经常会需要用代码生成pdf文件,涉及到复杂的内容也可以选用先自己制作pdf模板,再用代码去读取,动态数据部分的内容无法用模板实现的就要用Java代码去实现 需求:生成如下的pdf 实现思路: ...

  7. java 实现向pdf模板写入数据。并重新生成一个新文件

    引入maven依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf< ...

  8. 自动生成PDF文件(Java通过PDF模板自动生成PDF)

    思路: 1.创建PDF模板(先创建对应的excel文件,创建好后另存为PDF文件)即可. 2.使用Adobe Acrobat DC工具打开PDF文件,设置自己想要替换的内容. 3.maven项目引入依 ...

  9. java根据pdf模板生成新的pdf

    文章目录 第一步 制作模板 第二步 引入POM 第三步 根据模板生成PDF 如何填充图片数据 如何让填充的数据进行换行 总结 最近有需求要根据现有的PDF模板生成新的PDF出来,网上资料一大堆,主要总 ...

最新文章

  1. 小米语音首席科学家Daniel Povey:下一代Kaldi将走向何方?
  2. 换个姿势学数学:二次函数与拆弹部队
  3. 自学python需要买书吗-学习Python的正确姿势—基础教学,教科书该怎么买?
  4. Aviator(表达式执行引擎)发布1.0.1
  5. IBASE Read buffer invalidate when locked
  6. C#多线程使用进度条
  7. jstack命令使用
  8. java ee ide 添加spring,如何在Eclipse IDE项目文件夹中为spring添加jar文件
  9. 关于OAuth2.0的文章收集
  10. 485通信实现自动收发功能
  11. JPA开发求助---JPA生成数据表的时候:log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotat
  12. Level-IP(Linux userspace TCP/IP stack)
  13. 数据结构和算法——八种常用的排序算法----交换排序(冒泡排序和快速排序)
  14. zblog php 源码,zblog技术导航v2.3全站源码+数据
  15. html如何画出四个圆圈,css3如何绘制一个圆圆的loading转圈动画
  16. firefox os : firefox os vs android
  17. 伤感!!!!!!!!!!!!!!!
  18. 大学计算机实验教程制作电子小报,word中电子小报怎么做?word电子小报的图文教程...
  19. mysqlbinlog 加-v -vv 的区别
  20. 2019计算机应用设计大赛,关于举办2019年桂林理工大学网页设计大赛暨第十三届广西大学生计算机应用大赛选拔赛的通知...

热门文章

  1. 论文书写之如何引用参考文献(简单明了)
  2. GB/T18655-2010标准下的动力电池系统及其BMS电磁EMC测试
  3. 1677. 【USACO】山峰暸望
  4. 使用 React 和 Vite 使用 Tauri 构建番茄钟
  5. UE4在场景中画线(蓝图与C++)的实现方式
  6. 路由器刷机解决学校无线上网问题(小米4A千兆版)
  7. 皮卡智能联手全球最大贸易服务商PingPong,共推AIGC应用落地服务
  8. LOESS与LOWESS
  9. 日本泡沫经济时期的普通百姓
  10. 前端解决:此图片来自微信公众平台未经允许不可引用