java套打pdf做模版itext填数据
企业应用的项目开发,一定会遇到打印,也一定有套打的需求,比如打印报销单据了,打印发票了什么的。
接上次用word2003和excel2003实现快递单套打的临时解决方案后,今天说说java程序实现套打。
模版选择的是pdf,这个也是国外用的多的,需要安装Adobe Acrobat。
首先,创建pdf文件,工具栏-》页面-》裁剪。
工具栏-》页面-》背景,设置顺丰速运的快递单扫描件为背景。
双击页面,弹出页面大小设置窗口,设置大小,以顺丰为例230mm*127mm。
工具栏-》表单-》编辑,添加12个文本域。
删除背景图片,保存pdf为《顺丰速运模版2.0.pdf》
================================================
JAVA程序实现,新建一个maven工程,pom.xml增加itext的依赖
<packaging>war</packaging><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-pdfa</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-xtra</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency>
itext-asian是支持中文字体的。
@Overrideprotected voiddoPost(HttpServletRequest req,HttpServletResponse resp) throwsServletException,IOException {resp.reset();ByteArrayOutputStream ba = newByteArrayOutputStream();try{String pdfTemplate = "/Users/me/Downloads/顺丰速运模版2.0.pdf";PdfReader reader = newPdfReader(pdfTemplate);PdfStamper stamper = newPdfStamper(reader,ba);Image img = Image.getInstance("/Users/me/Documents/顺丰速递快递单.jpg");img.setAbsolutePosition(0,0);img.scaleToFit(reader.getPageSize(1));PdfContentByte under = stamper.getUnderContent(1);// under.addImage(img,img.getScaledWidth(),0,0,img.getScaledHeight(),0,0);// under.addImage(img);BaseFont bf = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);AcroFields form = stamper.getAcroFields();form.addSubstitutionFont(bf);form.setFieldProperty("companyOfSender","textfont",bf, null);form.setField("companyOfSender","上海XXX有限公司");form.setField("sender","张XX");form.setField("addressOfSender","上海市XX区XX路XX号XX大厦XX楼");form.setField("phoneOfSender","13800210021");form.setField("companyOfReceiver","xxxxxxxxxx");form.setField("receiver","李XX");form.setField("province","上海");form.setField("city","上海");form.setField("district","徐汇");form.setField("road","虹漕路");form.setField("room","XXX号XXX室");form.setField("phoneOfReceiver","13999999999");stamper.setFormFlattening(true);stamper.close();} catch(IOException e) {e.printStackTrace();} catch(DocumentException e) {e.printStackTrace();}resp.setContentType("application/pdf");// resp.setHeader("Content-disposition", "attachment; filename=report.pdf");resp.setContentLength(ba.size());ServletOutputStream out = resp.getOutputStream();ba.writeTo(out);out.flush();out.close();ba.close();}
通过控制水印图片的增加与否under.addImage(img);,区分节目展示和实际打印。
java套打pdf做模版itext填数据相关推荐
- Java生成PDF文档 iText使用PDF模板一
最近在弄这个java生成pdf,哎,在网上查找了各种各样的学习资料,弄了几天,今天终于把这个效果简单的弄出来,所以,也把这个,我所走过的坑,作一个记录,提供接下来需要学习的人. 参考文献文档:http ...
- Java生成PDF文件(Itext篇)
在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...
- 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载
230套java web开发PDF书籍和CHM参考手册资料大全 免费下载 下载地址:http://yun.baidu.com/s/169jYH 文章来源:HTML5星空http://www.html5 ...
- Java iText PDF:用 iText 包生成简单的 pdf 文件
有点兴趣想要看看 Java 怎么生成 PDF 文件,搜索了一下,据说 iText 包比较好,到 这里下载 iText.jar 包,顺便把源代码.文档都一起下载了吧.但是,仅仅有这么一些材料想要写代码生 ...
- java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...
- java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解
java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...
- pdf java解析_用java如何解析pdf文件
展开全部 一.前言 在企业的信息系统中,报表处理一直占比较62616964757a686964616fe4b893e5b19e31333262343161重要的作用,本文将介绍一种生成PDF报表的Ja ...
- 用Itext把数据导出到Pdf文档
工夫不负有心人!先用POI实现了把数据导出为Excel,现在又实现了用Itext把数据导出为Pdf文档.因为这些技术是以前都没有接触的,而现在又都基本掌握了,所以心里略有一些成就感.现把完整程序代码列 ...
- java pdf_Java 生成 PDF 文档
最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持 iText,生成PDF文档,还支持将XM ...
最新文章
- free pascal 修改字符集,会导致 dos 不能显示 汉字。 处理方法如下
- 后台开发真的不需要看《tcpip详解》吗
- 爬取百度知道分类_百度指数爬虫|介绍篇
- 腾讯 AngelFL 联邦学习平台揭秘
- pythontcp文件传输_python socket实现文件传输(防粘包)
- (下)python3 selenium3 从框架实现代码学习selenium让你事半功倍
- 最IN的云原生架构,阿里云 Serverless 事件总线 EventBridge 重磅发布
- 腾讯 PCG 招计算机视觉实习生!52CV关注者可加速面试进程
- 3.Event Delegate
- python中使用什么来实现异常捕捉_python 异常捕捉
- 电脑画图和计算机不见了,电脑中自带的Window画图工具不见了如何恢复
- 先学python还是r-r语言和python学哪个?
- 教务管理系统:成绩、课表查询接口设计及抢课、监控功能实现
- ElasticSearch--Field的使用
- 电子书寻找方法汇总2
- 传销式招聘!被骗到东南亚的程序员到底有多惨?
- CSS实现幻灯片效果
- 利用C语言绘制操作系统图像界面
- html 字体模糊,css – Chrome字体显示模糊
- linux 未分配分区合并,这种情况如何扩展硬盘,合并硬盘分区,主分盘和未分配中间有个恢復分区,不能合并扩展硬盘!...
热门文章
- 怎么画动漫人物的头发
- STM32F1与STM32CubeIDE编程实例-振动传感器驱动
- Java管理扩展JMX入门学习
- r,w,a 与 r+, w+, a+的区别(转)
- QQ开放平台 – QQ第三方登录
- MySql下关于时间范围的between查询
- 关于微信小程序VM22:2 (in promise) MiniProgramError {“errMsg“:“hideLoading:fail:toast can‘t be found“
- OpenCV:07图像轮廓
- Chocolatey 包管理器安装配置
- C语言 strstr函数的用法及模拟实现strstr函数