Spring Boot基于itext实现PDF生成功能
一、 创建一个SpringBoot项目工程:
https://start.spring.io/
二、引入相应的POM坐标
<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.4.2</version>
</dependency><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.4.1</version>
</dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version>
</dependency><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.0.3</version>
</dependency>
三、直接引入写好的工具类
public static void ExportPdf(HttpServletRequest request, HttpServletResponse response) throws Exception {//告诉浏览器用什么软件可以打开此文件response.setHeader("content-Type", "application/pdf");//下载文件的默认名称response.setHeader("Content-Disposition", "attachment;filename=XXX.pdf");//设置中文BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);Document document = new Document();PdfWriter.getInstance(document, response.getOutputStream());// 打开文档 document.open();//设置文档标题document.addTitle("PDF");//设置文档作者 document.addAuthor("码神");document.addCreationDate();//设置关键字 document.addKeywords("iText"); document.addLanguage("中文");//表头PdfPTable title = new PdfPTable(2);title.addCell(new Paragraph("编号", FontChinese));title.addCell(new Paragraph("名称, FontChinese));document.add(title);User u = new User("1","码神"); //插入数据PdfPTable table = new PdfPTable(2);table.addCell(new Paragraph(u.getId(), FontChinese));table.addCell(new Paragraph(u.getName(), FontChinese));document.add(table);document.close();}
如果是集合,将集合遍历出来,插入到数据中。注:表头行数要对应
如需想做预览效果,将下载默认名称删除,如下
response.setHeader("Content-Disposition", "attachment;filename=XXX.pdf");
四、测试,直接调用工具类
/*** 下载pdf文档* @throws Exception*/@GetMapping("/downloadPDF")public void downloadPDF(HttpServletRequest request, HttpServletResponse response) throws Exception {ExportPdfUtils.ExportPdf(request,response);}
五、直接访问接口即可,效果如图
end...
Spring Boot基于itext实现PDF生成功能相关推荐
- Spring boot基于itext实现定制化模板pdf生成功能
最近被安排公司项目的一个活:根据给定的模板生成pdf,很多公司的项目涉及这种xxx单的生成,我这里是个检查单的生成,具体内容下面给出,和各位csdner一起分享学习一下,如有不对多多指教. 首先先看下 ...
- Spring Boot 之 itext导出pdf下载
Java操作pdf框架详解 itext是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有 ...
- 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现
文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...
- Spring Boot中使用Swagger CodeGen生成REST client
文章目录 什么是Open API规范定义文件呢? 生成Rest Client 在Spring Boot中使用 API Client 配置 使用Maven plugin 在线生成API Spring B ...
- Spring Boot集成支付宝电脑网站支付功能
Spring Boot集成支付宝电脑网站支付功能 接入准备 登录 创建应用 添加能力 生成私钥与公钥 开发设置 沙箱环境 示例Demo的使用与学习 下载Demo 启动项目 参数配置 执行测试 Spri ...
- Spring Boot最新版集成邮件发送功能大全
Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...
- spring boot整合icepdf实现pdf转图片
一 项目图片 下载地址: http://www.gxcode.top/code 项目描述 spring boot整合icepdf实现pdf转图片 springboot整合icepdf组件,实现pdf转 ...
- Spring BOOT ( 基于Kotlin 编程语言) 使用 Spring WebFlux 实现响应式编程
Spring BOOT ( 基于Kotlin 编程语言) 使用 Spring WebFlux 实现响应式编程 image.png 参考文档:https://docs.spring.io/spring/ ...
- Spring boot基于redis实现附近的人(附源码下载)
此文章是针对去年写的Java基于Redis实现"附近的人 进行业务优化! 核心源码 public class NearbyPO {@NotNull(message = "id值不能 ...
最新文章
- ID3、C4.5、CART树算法简介,这几个算法有什么区别?对于异常值和分类值有什么需要注意的?
- 织梦动态PHP可以删除吗,DeDe织梦cms如何全站动态化,取消静态功能
- .net DataGrid绑定列手动添加数据
- what should we learn from Magnetite?
- teams怎么去看谁在说话
- spring + angular 实现导出excel
- Android-带你从源码角度理解SharedPreferences存储原理
- 将数组按指定大小分组
- java hotswap_DCEVM+HotSwapAgent实现java类热加载
- P4592 [TJOI2018]异或
- 各种语言的 Hello World
- c++使用单向链表存储一组有序数据_数据结构笔试题基础
- linux部署tomcat8(基于centOS7)
- python官方文档怎么样_python官方文档
- Linux学习笔记(用户管理)
- Wireshark实战分析之UDP协议
- Android实现圆角和圆形
- 为什么AI需要的是角色扮演,而不是象棋和围棋?
- 联想小新air13装双系统_联想小新 Air 13IBK Pro 安装黑苹果Windows双系统教程
- uniapp实现图片压缩:
热门文章
- ELMo模型最简单使用方式(pytorch版)
- Jenkins基础:Jenkinsfile使用实例:14:使用docker.image进行容器部署
- 计算机八代配置资料,能装win7系统的最新intel 8代cpu电脑配置推荐
- 测试开发工程师实习—第一次面试总结
- php获取文件夹中的音乐文件_PHP获取音频文件信息的方法
- 蓖麻凝集素Ⅰ(RCAⅠ,RCA120)
- 【自动微分原理三】自动微分的具体实现
- java 90坦克大战_java小项目之:坦克大战,90后的集体回忆杀!
- 饥饿的小易(枚举+广度优先遍历(BFS))
- C语言: 数列第一项为2,此后各项均为它前一项的两倍再加三,计算该数列前10项之和;