企业应用的项目开发,一定会遇到打印,也一定有套打的需求,比如打印报销单据了,打印发票了什么的。

接上次用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填数据相关推荐

  1. Java生成PDF文档 iText使用PDF模板一

    最近在弄这个java生成pdf,哎,在网上查找了各种各样的学习资料,弄了几天,今天终于把这个效果简单的弄出来,所以,也把这个,我所走过的坑,作一个记录,提供接下来需要学习的人. 参考文献文档:http ...

  2. Java生成PDF文件(Itext篇)

    在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...

  3. 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载

    230套java web开发PDF书籍和CHM参考手册资料大全 免费下载 下载地址:http://yun.baidu.com/s/169jYH 文章来源:HTML5星空http://www.html5 ...

  4. Java iText PDF:用 iText 包生成简单的 pdf 文件

    有点兴趣想要看看 Java 怎么生成 PDF 文件,搜索了一下,据说 iText 包比较好,到 这里下载 iText.jar 包,顺便把源代码.文档都一起下载了吧.但是,仅仅有这么一些材料想要写代码生 ...

  5. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...

  6. java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解

    java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...

  7. pdf java解析_用java如何解析pdf文件

    展开全部 一.前言 在企业的信息系统中,报表处理一直占比较62616964757a686964616fe4b893e5b19e31333262343161重要的作用,本文将介绍一种生成PDF报表的Ja ...

  8. 用Itext把数据导出到Pdf文档

    工夫不负有心人!先用POI实现了把数据导出为Excel,现在又实现了用Itext把数据导出为Pdf文档.因为这些技术是以前都没有接触的,而现在又都基本掌握了,所以心里略有一些成就感.现把完整程序代码列 ...

  9. java pdf_Java 生成 PDF 文档

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持 iText,生成PDF文档,还支持将XM ...

最新文章

  1. free pascal 修改字符集,会导致 dos 不能显示 汉字。 处理方法如下
  2. 后台开发真的不需要看《tcpip详解》吗
  3. 爬取百度知道分类_百度指数爬虫|介绍篇
  4. 腾讯 AngelFL 联邦学习平台揭秘
  5. pythontcp文件传输_python socket实现文件传输(防粘包)
  6. (下)python3 selenium3 从框架实现代码学习selenium让你事半功倍
  7. 最IN的云原生架构,阿里云 Serverless 事件总线 EventBridge 重磅发布
  8. 腾讯 PCG 招计算机视觉实习生!52CV关注者可加速面试进程
  9. 3.Event Delegate
  10. python中使用什么来实现异常捕捉_python 异常捕捉
  11. 电脑画图和计算机不见了,电脑中自带的Window画图工具不见了如何恢复
  12. 先学python还是r-r语言和python学哪个?
  13. 教务管理系统:成绩、课表查询接口设计及抢课、监控功能实现
  14. ElasticSearch--Field的使用
  15. 电子书寻找方法汇总2
  16. 传销式招聘!被骗到东南亚的程序员到底有多惨?
  17. CSS实现幻灯片效果
  18. 利用C语言绘制操作系统图像界面
  19. html 字体模糊,css – Chrome字体显示模糊
  20. linux 未分配分区合并,这种情况如何扩展硬盘,合并硬盘分区,主分盘和未分配中间有个恢復分区,不能合并扩展硬盘!...

热门文章

  1. 怎么画动漫人物的头发
  2. STM32F1与STM32CubeIDE编程实例-振动传感器驱动
  3. Java管理扩展JMX入门学习
  4. r,w,a 与 r+, w+, a+的区别(转)
  5. QQ开放平台 – QQ第三方登录
  6. MySql下关于时间范围的between查询
  7. 关于微信小程序VM22:2 (in promise) MiniProgramError {“errMsg“:“hideLoading:fail:toast can‘t be found“
  8. OpenCV:07图像轮廓
  9. Chocolatey 包管理器安装配置
  10. C语言 strstr函数的用法及模拟实现strstr函数