Spring Boot 系列教程18-itext导出pdf下载-程序员宅基地

技术标签: java  

Java操作pdf框架

iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。

最终下载效果

这里写图片描述

pom.xml

<!-- itext方式导出pdf -->
<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>4.2.2</version>
</dependency>

UserController.download方法

  • 简单的飞起
// 下载pdf文档
  @RequestMapping("/download")
  public void download(HttpServletRequest request, HttpServletResponse response) throws Exception {
    // 告诉浏览器用什么软件可以打开此文件
    response.setHeader("content-Type", "application/pdf");
    // 下载文件的默认名称
    response.setHeader("Content-Disposition", "attachment;filename=user.pdf");

    Document document = new Document();
    PdfWriter.getInstance(document, response.getOutputStream());
    document.open();
    List<User> list = userRepository.findAll();
    for (User user : list) {
      PdfPTable table = new PdfPTable(3);
      PdfPCell cell = new PdfPCell();
      cell.setPhrase(new Paragraph(user.getId().toString()));
      table.addCell(cell);
      document.add(table);

      cell = new PdfPCell();
      cell.setPhrase(new Paragraph(user.getName().toString()));
      table.addCell(cell);
      document.add(table);

      cell = new PdfPCell();
      cell.setPhrase(new Paragraph(user.getAge().toString()));
      table.addCell(cell);
      document.add(table);
    }
    document.close();
  }

其他关联项目

源码地址

https://github.com/je-ge/spring-boot

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!
微信打赏
支付宝打赏

转载于:https://www.cnblogs.com/je-ge/p/6287017.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30713953/article/details/97163204

智能推荐

基于Android的知天下APP的设计与实现(程序+开题报告)(开题报告+源码)-程序员宅基地

文章浏览阅读777次,点赞16次,收藏24次。基于Android的知天下APP的设计与实现,旨在为用户提供一个集成化、易用性强的知识平台,满足用户高效学习和阅读的需求,同时推动知识的整合与创新传播。设计和开发基于Android的知天下APP对于提升公众的知识获取效率、促进终身学习文化的形成具有深远的意义。此外,通过优化用户界面和交互体验,知天下APP还能激发用户的学习兴趣,提高学习的积极性和主动性。该应用旨在为用户提供一个覆盖各类知识领域的综合性学习和阅读平台,使用户能够在一个应用中高效地获取和管理知识信息,进而提升个人的知识水平和文化素养。

c++重载-程序员宅基地

文章浏览阅读310次。c++重载与运算符重载_c++重载

-webkit-animation动画,CSS动画的使用-程序员宅基地

文章浏览阅读8.5k次,点赞2次,收藏12次。web加载动画,CSS动画今天由于工作需要,在Git上面拿到一个微信小程序,导入后随便点点,他的loading动画吸引到我了。根据源码,搭配blog,w3c,一点一点学习怎么设计的这个loading。1.效果图四周小方块不停的移动到中间方块,中间方块缩放。2.wxml剖析#(1)源码布局<!--正在加载--><template name="loading">..._-webkit-animation

开源uip1.0中psock模块的BUG_uip使用socket-程序员宅基地

文章浏览阅读2.8k次。用过psock模块的都知道PSOCK_SEND()的功能是向指定的socket输出指定的字节数据,然而,代码中的疏漏使得它无法实现发送大于uip_mss()个字节数.这是因为:PT_WAIT_UNTIL(&s->psockpt, data_acked(s) & send_data_uip使用socket

优动漫PAINT的变形文字工具教程_优动漫 文字按曲线排列-程序员宅基地

文章浏览阅读1.7k次。在我们绘制漫画作品的时候,经常需要添加特殊排列的文字作为对白、拟声词或者是贴合背景物品的素材而使用。但是通过【栅格化—滤镜—扭曲】产生的变化效果往往没有那么完美,后续也无法再次修改。今天就给大家讲讲,优动漫PAINT里怎么创建可以修改的变形文字吧。1、首先将文字图层的【颜色模式】转换为【灰度】,并右键图层【栅格化】。2、在界面最上方的【编辑—添加素材—图像】将文字设置为【笔..._优动漫 文字按曲线排列

网络攻防-Shellcode编写-程序员宅基地

文章浏览阅读818次,点赞21次,收藏18次。在第二种方法中,数据存储在代码区域中,就在调用指令之后,因此在调用调用函数时,其地址被推入堆栈(作为返回地址)。1.因为不能出现重复的/,并且最后的/sh只有三位,所以使用#填充最后一位,将”/sh#”赋值给eax(小端存储),再通过将eax先左移8位,再右移8位,由此避免机器码中直接出现0x00;在原本的命令行中执行和在我们生成的命令行中执行可以发现两个编号并不相同,可以说明我们已经成功建立了一个新的shell。并且在one中的pop出的ebx指的是输入的字符串的地址。结果如下,机器码中并未出现00。

随便推点

hadoop集群之HDFS和YARN启动和停止命令_yarn daemons-程序员宅基地

文章浏览阅读6.7k次。假如我们只有3台linux虚拟机,主机名分别为hadoop01、hadoop02和hadoop03,在这3台机器上,hadoop集群的部署情况如下:hadoop01:1个namenode,1个datanode,1个journalnode,1个zkfc,1个resourcemanager,1个nodemanager;hadoop02:1个namenode,1个datanode,1个jour..._yarn daemons

基于python实现TF-IDF算法_python tfidf-程序员宅基地

文章浏览阅读9.9k次,点赞5次,收藏108次。标签:2021.09.27工作内容参考资料:TF-IDF算法介绍及实现声明:本文中大量内容转载至参考资料,仅归纳整理和加入部分个人观点心得,侵删概念定义TF-IDF(term frequency-inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术,常用于挖掘文章中的关键词。特点:简单高效,用于最开始的文本数据清洗。TF-IDF(1)TF:词频可以统计到停用词,并把它们过滤,避免对结果造成影响。e.g.:“的”、“了”、“是”等等(2)ID_python tfidf

allowedOriginPatterns和allowedOrigins方法有什么不同-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏9次。这段代码表示,允许来自以 http://localhost: 开头的任意端口和以 https:// 开头的以 .example.com 结尾的任意二级域名的跨域请求访问任何请求路径,允许的 HTTP 方法包括 GET 和 POST,启用允许发送凭据,预检请求的缓存时间为 1 小时。allowedOrigins 方法使用的是字符串匹配,即只能指定具体的跨域来源,而不能使用通配符;而 allowedOriginPatterns 方法使用的是 Ant 风格的路径匹配规则,可以使用通配符来匹配多个来源。_allowedorigins

Fork/Join-程序员宅基地

文章浏览阅读209次。1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。..._joinyj

hdu 2013 整理下水题 递推动规_输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是-程序员宅基地

文章浏览阅读301次。Problem Description喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵^-^当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,_输入数据有多组,每组占一行,包含一个正整数n(1<30),表示只剩下一个桃子的时候是

Hive调优一文打尽-程序员宅基地

文章浏览阅读154次。Hive调优一文打尽

推荐文章

热门文章

相关标签