最近写了个pdf下载的demo,在这里记录一下。。

1  要下载pdf首先要有pdf 模板 ,制作pdf 模板就是 word 另存为 pdf 。

2 用 Adobe Acrobat X Pro 这个软件编辑刚才保存的pdf,先打开 ,然后点击工具,点击编辑 。。。这个工具是收费的,网上有好多破解版的。。  注意用这个工具编辑pdf的时候 生成的  域 有文本域 ,单选框 ,复选框,这里要注意,如果是复选框,复制是没办法赋值文字的。

大概是上面的样子。。

3 编写java代码:  主要思路是 , 通过数据库查出来的数据 ,赋值到pdf表单上。。

赋值需要用到

<!--用于pdf模板-->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.3</version>
</dependency> 上面这个jar包,直接把pom粘贴到自己的pom中就可以。 4 具体的java代码:
  @Override
public void downLoad(HttpServletResponse response) throws IOException, DocumentException {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
String fileName = "qqq.pdf";
response.setContentType("application/pdf");
OutputStream op = null;
PdfReader pr = null;
PdfStamper ps = null;
try {
response.setHeader("Content-Disposition", "attachment;fileName="
+ URLEncoder.encode(fileName, "UTF-8")); op = response.getOutputStream();
// 2 读入pdf表单
pr = new PdfReader("pdf/" + fileName);
// 3 根据表单生成一个新的pdf
ps = new PdfStamper(pr, op);
// 4 获取pdf表单 HashMap<String, Object> map = dealMap();
// 6查询数据 // 7遍历data 给pdf表单表格赋值
for (String keySet : map.keySet()){
if (map.get(keySet) != null && !map.get(keySet).equals("")){
AcroFields acroFields = ps.getAcroFields();
// 5给表单添加中文字体 这里采用系统字体。不设置的话,中文可能无法显示
BaseFont bf = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
acroFields.addSubstitutionFont(bf);
acroFields.setField(keySet,map.get(keySet).toString());
} }
//设置生成的pdf文件高量参数是否可见,true不可见,false可
ps.setFormFlattening(true);
System.out.println("===============PDF导出成功!============="); } catch (Exception e) {
e.printStackTrace();
}finally {
//这里关流顺序不能先关输出流,要不然会报错
ps.close();
pr.close();
op.close(); } }

上面的 dealMap()是我自己查询数据的方法,每个人用自己的就好。。

需要 把上面的模板直接粘贴,自己写查询数据的方法就可以了。

这里 附上 源码

链接:https://pan.baidu.com/s/1OuBCQJpJ23IV3sNQAt6BBw
提取码:nvut

pdf 下载demo的更多相关文章

  1. 深度学习Tensorflow相关书籍推荐和PDF下载

    深度学习Tensorflow相关书籍推荐和PDF下载 baihualinxin关注 32018.03.28 10:46:16字数 481阅读 22,673 1.机器学习入门经典<统计学习方法&g ...

  2. Spring Boot 系列教程18-itext导出pdf下载

    Java操作pdf框架 iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好 ...

  3. 肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版

    肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版 下载链接: https://u253469.ctfile.com/fs/253469-229815828

  4. [原]Jenkins(一)---我理解的jenkins是这样的(附全套PDF下载)

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5330 ...

  5. 蘑菇街支付架构 PDF 下载

    蘑菇街支付架构 PDF 下载 下载地址:链接:https://pan.baidu.com/s/1ZffetaUhVMOzb9j2PSQJIQ 密码:iays http://www.java1234.c ...

  6. pdf 下载整理

    pdf下载整理: using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  7. swift user guide.pdf下载

    日志以便日后查找.谢谢 1 Swift User Guide.pdf下载 http://download.csdn.net/detail/swifttrain/7442921 2 The Swift ...

  8. 码书:编码与解码的战争 PDF 下载

    码书:编码与解码的战争 PDF 下载 下载地址:https://pan.baidu.com/s/14Y_krHh-unOv4g2KYFFDgQ 如需分享码:[打开微信]->[扫描右侧二维码]-& ...

  9. Javascript/CSS/HTML/vue/angularJS/react/jquery/DOM前端编程经典电子书pdf下载

    高级进阶必读 你所不知道的系列,高级开发必掌握. JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理 ...

随机推荐

  1. 一个类是怎么被JVM执行的

    现有如下代码,那么我们的JVM是怎么执行的呢 public class Test{ public static vodi main(String[] args){ MaYun my=new MaYun ...

  2. 【斐波那契数列】java探究

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 解析 (1)递归方式 对于公式f(n) = f(n-1) + f(n ...

  3. plsql可视化文件夹解释

    function:一般是存储函数或者方法 procedures:一般是存放存储过程 Table:一般是存放建的表 packages:包(头) package bodies:包体types:类型 typ ...

  4. hibernate易混淆点

    萌新小笔记: 用过hibernate的小伙伴肯定经常看到这几个东西吧!但是初学者常常会把这几个搞不清楚:dataSource,session,sessionFactory(dataSource),hi ...

  5. Docker折腾手记-linux下安装

    Linux下的安装方法 博主用的是centos7,其它也是大同小异 我根据的是官网的教程进行的操作,地址是 https://docs.docker.com/engine/installation/li ...

  6. Spring boot 之自动生成API文档swagger2

    目前解决API的方案一般有两种 1.编写文档接口.2.利用一些现成的api系统.3.如我一般想搞点特色的就自己写个api系统:http://api.zhaobaolin.vip/ ,这个还支持多用户. ...

  7. leetcode — single-number-ii

    /** * Source : https://oj.leetcode.com/problems/single-number-ii/ * * Given an array of integers, ev ...

  8. java开发知识IO知识之输入输出流以及文件

    目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...

  9. .NET Core下的Spring Cloud——前言和概述

    前言 前几年一直在写类似dubbo,Srping Cloud的微服务框架辗辗转转重复了多次,也重构推翻了很多次,其中诞生了"Rabbit.Rpc","Go",& ...

  10. 这可能是最low的发布dotnet core站点到centos7教程

    前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...