1、引入依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.19</version></dependency>

2、代码:

     PdfReader reader = null;ByteArrayOutputStream bos = null;PdfStamper stamper = null;try {Resource resource = resourceLoader.getResource("classpath:涉敏载体集中销毁证明盖章模板.pdf");reader = new PdfReader(resource.getInputStream());bos = new ByteArrayOutputStream();stamper = new PdfStamper(reader, bos);//这个form就是pdf里面的表单key就是pdf的键 value 就是往里面要放的值BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);AcroFields form = stamper.getAcroFields();Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {form.setFieldProperty(entry.getKey(), "textfont", bf, null);form.setField(entry.getKey(), entry.getValue());}//true代表生成的PDF文件不可编辑stamper.setFormFlattening(true);stamper.close();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");String timeString = formatter.format(LocalDateTime.now());String fileName = "涉敏载体集中销毁证明" + timeString +".pdf";response.reset();response.setContentType("application/pdf;charset=UTF-8");response.setHeader("Content-Disposition", "inline;filename=" + URLEncoder.encode(fileName, "UTF-8"));OutputStream out = response.getOutputStream();//加载pdfPDDocument document = PDDocument.load(bos.toByteArray());//获得文档属性对象PDDocumentInformation info = document.getDocumentInformation();//修改标题属性  这个标题会被展示info.setTitle(fileName);document.setDocumentInformation(info);//修改完直接输出到响应体中document.save(out);document.close();out.close();} catch (Exception e) {log.error("pdf预览发生错误:{}", e.getMessage());}

java实现pdf预览和下载相关推荐

  1. PDF 预览和下载你是怎么实现的?

    在开发过程中要求对 PDF 类型的发票提供 预览 和 下载 功能,**PDF** 类型文件的来源又包括 H5 移动端 和 **PC 端**,而针对这两个不同端的处理会有些许不同,下文会有所提及. 针对 ...

  2. 移动端和PC端的pdf预览与下载

    34.移动端和PC端的pdf的预览与下载 1.预览 需求:在手机端实现pdf的文件与下载,主要是zlb_app中 实现过程:在研究了vue-pdf.pdfjs.pdfh5之后,选择了vue-pdf-s ...

  3. Springboot实现PDF预览、下载、读取

    背景:项目中实现pdf文件的预览以及下载 环境:jdk1.8.SpringBoot2.0 PDF.js下载地址将下载的源码拷入项目中 修改viewer.js: 将defaultUrl: {value: ...

  4. vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式

    背景:正好最近碰到了这种需求,记录下来,方便以后查看. 后端返回的文件流数据如下图所示: 后台返回数据.png 一.pdf的预览 一开始的时候百度了很多方法,有建议用pdfJs插件的,有iframe嵌 ...

  5. 链接的图片转base64,字符串转流pdf预览-zip下载

    getBase64Image(src, outputFormat) {let img = new Image();img.setAttribute("crossOrigin", & ...

  6. uni-app实现PDF预览功能(避坑看这)

    目录 前言 一.下载PDF预览相关文件 二.使用步骤 前言 去年就想写一篇关于uni-app的pdf预览功能,拖很久了,补上. 一.下载PDF预览相关文件 下载地址 解压后效果: 二.使用步骤 在  ...

  7. java实现文件预览(Office转PDF)

    一.首先下载安装openOffice软件,下载地址:http://www.openoffice.org/download/index.html 当然,下载速度特别慢,下面是百度网盘地址. 链接:htt ...

  8. php+预览和下载pdf文件,vue实现在线预览pdf文件和下载(pdf.js)

    最近做项目遇到在线预览和下载pdf文件,试了多种pdf插件,例如jquery.media.js(ie无法直接浏览) 最后选择了pdf.js插件(兼容ie10及以上.谷歌.安卓,苹果) 强烈推荐改插件, ...

  9. 前端实现pdf文件的在线预览与下载

    前言 在项目中我们经常会出现各种各样的法律文件.免责说明等文件需要用户阅读,很多文件除了阅读外还要支持用户下载.为了快速开发,一些变动不大的文件,或者是项目中不想开发富文本的时候我们可以选择直接使用p ...

  10. Nginx配置文件目录实现pdf文件预览及下载

    默认情况下,通过nginx服务器来访问pdf文件,在浏览器上是会直接打开该pdf文件呈现内容的.如果想要访问pdf文件时,实现下载文件的效果,则需要在nginx服务端做一些配置. 以下配置只能下载 n ...

最新文章

  1. KDD 2021多个奖项出炉:斯坦福博士摘得学位论文奖,北航校友胡侠获新星奖
  2. jmeter插件 --PerfMon Metrics Collector监控工具的使用
  3. Java-ReentrantLock初探
  4. RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and
  5. C++程序设计(第2版)课后习题答案--第11章
  6. 两种设置安卓背景图片的方法
  7. 获取cookies的简单代码(总结待续)
  8. python graphx_Spark GraphX实战
  9. SpringFramework-IOC(依赖注入)+AOP(面向切面编程)
  10. centos6.5升级glibc-2.18
  11. mysql删除语句菜鸟教程_Mysql基本的增删改查
  12. Java学习day11--IO流总结
  13. selenium之判断是否定位正确
  14. C#.NET程序尝试—修复Excel批注错误
  15. Docker部署RabbitMQ
  16. Learning Calibrated Medical Image Segmentation via Multi-rater Agreement Modeling
  17. JAVA调用mq时做心跳检测,[翻译]RabbitMQ 心跳
  18. 智能扫描文件免费版用户协议
  19. 福维克扫地机器人清扫不干净_福维克扫地机器人VR200怎么样?确认收货三个月,诉说一下使用过程!...
  20. linux posix 消息队列,实现posix消息队列示例分享

热门文章

  1. java 调用宏_通过java代码实现调用excel当中的宏的操作。
  2. ROS配置ipv6方法
  3. C++经典程序代码大全
  4. 今年赚钱最多的,居然是个牧羊人
  5. SVN checkout 之后图标没有显示(绿色勾)的问题
  6. arctanx麦克劳林公式推导过程_经典卢瑟福散射公式的初等推导
  7. 三类保留地址(私有地址)
  8. 【过关斩将般的一步步实现】windows本机通过xftp/xshell连接Ubuntu虚拟机服务器
  9. 硬盘测试软件看接口,检测硬盘的工具使用方法
  10. 合并pdf文件最简单的方法