提示:导出pdf文件,需要3个jar包iText-2.1.5.jar,iTextAsian.jar,iText-rtf-2.1.4.jar。

 public boolean outputPdfJhsy(EntityBean data) {
try {
Global.getInstance().LogApp("导出pdf开始");
String pdfpath = File.get("LEAP/NSESTModule/WRModule/nsjhsyzm.pdf").getAbsolutePath(); //从eclipse文件夹中得到pdf模版路径
String imgpath = File.get("LEAP/NSESTModule/WRModule/image/weiji.gif").getAbsolutePath(); //右下角盖章图片
PdfReader reader = new PdfReader(pdfpath);
//创建输出目录
String pdfSavePath = NameedPathUtil.getPath("default")+"nsestpdf/";
File.get(pdfSavePath).mkdir();
String filename = Global.getInstance().GetUUID()+".pdf";
pdfSavePath = pdfSavePath+filename;
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(pdfSavePath));
// 拿到第一页的上部内容部分
PdfContentByte over = stamp.getOverContent(1);
//获取表单域(用Adobe Acrobat Pro工具)
AcroFields form = stamp.getAcroFields(); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
EntityBean bean = data;
try {
form.setField("busino", bean.getString("busino"));
form.setField("jsbm", bean.getString("jsbm"));
form.setField("wname",bean.getString("wname"));
form.setField("wsfz",bean.getString("wsfz"));
form.setField("mname",bean.getString("mname"));
form.setField("msfz",bean.getString("msfz"));
form.setField("whjd",bean.getString("whjd"));
form.setField("wxjzd",bean.getString("wxjzd"));
form.setField("hyzk",bean.getString("hyzk"));
form.setField("jsqk",bean.getString("jsqk"));
form.setField("zncount",bean.getString("zncount"));
form.setField("znqk",bean.getString("znqk"));
form.setField("slrq",sdf2.format( sdf.parse(bean.getString("slrq")) ) );
form.setField("wfjhsyzc",bean.getString("wfjhsyzc"));
form.setField("qtsm",bean.getString("qtsm"));
form.setField("wname2",bean.getString("wname2"));
form.setField("wsfz2",bean.getString("wsfz2"));
form.setField("zmlxname", bean.getString("zmlxname"));
form.setField("jbr",bean.getString("jbr"));
form.setField("lxdh",bean.getString("lxdh"));
form.setField("sprq",bean.getString("sprq"));
} catch (Exception e) {
Global.getInstance().LogApp("插入pdf表单域异常");
e.printStackTrace();
} stamp.setFormFlattening(true); // 这句不能少
//创建一个image对象
Image image = Image.getInstance(imgpath);
//设置image对象的输出位置pa.getAsNumber(pa.size()-1).floatValue() 是该页pdf坐标轴的y轴的最大值
image.setAbsolutePosition(398,170);
image.scalePercent(70);
over.addImage(image);
over.stroke();
stamp.close(); Global.getInstance().LogApp("导出pdf结束");
} catch (FileNotFoundException e) {
Global.getInstance().LogApp("异常1");
e.printStackTrace();
return false;
} catch (DocumentException e) {
Global.getInstance().LogApp("异常2");
e.printStackTrace();
return false;
} catch (IOException e) {
Global.getInstance().LogApp("异常3");
e.printStackTrace();
return false;
} finally {
}
return true;
}

Java导出pdf文件数据的更多相关文章

  1. 史上最全的springboot导出pdf文件

    最近项目有一个导出报表文件的需求,我脑中闪过第一念头就是导出pdf(产品经理没有硬性规定导出excel还是pdf文件),于是赶紧上网查看相关的资料,直到踩了无数的坑把功能做出来了才知道其实导出exce ...

  2. java生成pdf文件 --- Table

    Java利用itext实现导出PDF文件 所需要的jar包:com.lowagie.text_2.1.7.v201004222200.jar jar包下载地址:http://cn.jarfire.or ...

  3. JAVA导出pdf实例

    一.直接导出成PDF   Java代码 1. import java.io.FileNotFoundException; 2. import java.io.FileOutputStream; 3.  ...

  4. asp.net2.0导出pdf文件完美解决方案【转载】

    asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式.这种文件格式与操作系统 ...

  5. java导出word文件

    java导出word文件 test5.ftl文件生存方法, 第一步:用word新建test5.doc,填写完整模板,将需导出数据用${}代替 第二步:将test5.doc另存为test5.xml 第三 ...

  6. java导出pdf功能记录

    这几天已在做处理导出pdf文件的功能,摸索了几天总算可以了.记录下这几天遇到的问题. 1.网上基本都是基于Itext5和Itext7来处理的.我最终是在Itext5上成功了,itext7应该是模板出问 ...

  7. 水晶报表导出pdf文件

    /// <summary> /// 导出pdf文件 /// </summary> /// <param name="mjsReport">报表文 ...

  8. .Net导出pdf文件,C#实现pdf导出

    最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本, ...

  9. Java学习-022-Properties 文件数据写入

    Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...

随机推荐

  1. 在Neo4j中删除节点中多个属性的方法

    译者言:本文介绍了如何批量删除节点的属性的方法,重点介绍了apoc.create.removeProperties 函数的使用. 今天早些时候,Irfan和我在一个数据集上做实验,运行了一些图形算法的 ...

  2. 多线程中的detach

    从 thread 对象分离执行的线程,允许执行独立地持续.一旦线程退出,则释放所有分配的资源.(就是两个线程彼此相互独立) 调用 detach 后, *this 不再占有任何线程. #include ...

  3. 34. Thread类的常用方法

    1.构造方法 Thread() 分配新的 Thread 对象. Thread(String name)  分配新的 Thread 对象并指定线程名字 2.方法 1)setName(String nam ...

  4. ACM-ICPC 训练平台 & 比赛 分析

    the file can download in https://pan.baidu.com/s/1HwoLFHGAG-boQbIn9xIhxA occ5 the article is also pu ...

  5. Dao层结合Service层处理异常

    1. 接口存在异常不利于解耦. 2. 将编译时异常转化为运行时异常或其子类,通知上层,上层可以根据自身能力选择处理或向上抛出. 举例: 将UserDao中的SQLException转化为DaoExce ...

  6. es6学习(一)

    之前一直听说es6,断断续续看过阮一峰老师的"ECMAScript 6 入门",觉得写得很好,但由于实际项目中没用到,所以并没有过多的去研究(人的惰性在我这里表现的淋漓尽致).直到 ...

  7. leetcood学习笔记-108-将有序数组转换为二叉搜索树

    ---恢复内容开始--- 题目描述: 方法一: class Solution(object): def sortedArrayToBST(self, nums): """ ...

  8. JavaScript中的节流和防抖

    节流: 在规定时间内,多次触发事件,但是只执行一次 场景:输入框搜索,地图渲染 优化用户体验 /** * 节流 规定时间内不管触发多少次只执行一次 * @param {Function} fn 实际要 ...

  9. 「题解」:07.16NOIP模拟T2:通讯

    问题 B: 通讯 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此 ...

  10. Flume详解

    Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错性.它使用简单的可扩 ...