第一步:生成pdf模板

先用word写好固定格式的文档,再利用wps将文档转成pdf文件,然后利用Adobe Acrobat DC(此工具是收费的,可以百度搜索进行破解)进行表单域编辑(如下图),编辑成自己想要的模板文件。

第二步:新建项目

在开发者工具中新建项目,导入jar包或写入maven依赖配置,我在这里用的itext的jar,但itext是收费的,所以也是破解版的,我没有用到maven构建项目,所以我直接导入了这个三个jar包(itextpdf-5.5.5.jar、itext-asian-5.2.0.jar、fontbox-2.0.12.jar)

fontbox-2.0.12.jar (官网下载的fontbox-2.0.12.jar没有中文字体,修改过后的jar包)下载链接https://download.csdn.net/download/javabigadog/10932972

第三步:根据开发需求编写demo

我完成的demo可以添加文本域和图片域、还可以给pdf文件添加水印

/***map为表单域所对应的数据,若是图片,则为图片本地路径/public  String createPDF(Map<String, String> map) {//模板所处位置String templatePdfUrl ="C:\\temp\\Template.pdf";String pdfUrl = "C:\\temp\\test.pdf";PdfReader reader = null;AcroFields af = null;PdfStamper ps = null;ByteArrayOutputStream bos = null;FileOutputStream fos = null;    //加入pdf内容try {reader = new PdfReader(templatePdfUrl);bos = new ByteArrayOutputStream();ps = new PdfStamper(reader,bos);af = ps.getAcroFields();            //使用中文字体BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);            af.addSubstitutionFont(bfChinese);System.out.println("size:"+map.size());//给表单文本域赋值Set<Entry<String, String>> set = map.entrySet();Iterator<Entry<String, String>> it = set.iterator();Entry<String, String> entry = null;while (it.hasNext()) {entry = it.next();if(entry.getValue()!=null) {System.out.println("key:"+entry.getKey()+" "+entry.getValue());af.setField(entry.getKey(), entry.getValue());}}//设置不能编辑ps.setFormFlattening(true);//添加图片String imgpath=map.get("IMGURL");File imgFile = new File( imgpath);if(imgFile.exists()) {int pageNo1 = af.getFieldPositions("DZYZ_af_image").get(0).page;Rectangle signRect1 = af.getFieldPositions("DZYZ_af_image").get(0).position;float x1 = signRect1.getLeft();float y1 = signRect1.getBottom();Image image1 = Image.getInstance( imgpath);PdfContentByte under1 = ps.getOverContent(pageNo1);image1.scaleToFit(signRect1.getWidth(),signRect1.getHeight());image1.setAbsolutePosition(x1,y1);under1.addImage(image1);}       //添加水印String waterMarkName=map.get("waterMarkName");PdfContentByte under;Rectangle wmRect =ps.getReader().getPageSizeWithRotation(1);under = ps.getOverContent(1);under.saveState();// set TransparencyPdfGState gs = new PdfGState();// 设置透明度为0.2gs.setFillOpacity(0.2f);under.setGState(gs);under.restoreState();under.beginText();//设置字体和字体大小under.setFontAndSize(bfChinese, 18);under.setTextMatrix(30, 30);under.setColorFill(new BaseColor(179,185,181));for (int y = 0; y < 10; y++) {for (int x = 0; x < 8; x++) {// 水印文字成35度角倾斜under.showTextAligned(Element.ALIGN_LEFT, waterMarkName, 5+ 260* x, 260*y, 35);    }under.endText();under.setLineWidth(1f);under.stroke();     ps.close();reader.close();fos = new FileOutputStream(pdfUrl);fos.write(bos.toByteArray());fos.flush();} catch (IOException|DocumentException e) {e.printStackTrace();}finally{try {if(fos!=null) {fos.close();                    }if(bos!=null) {bos.close();                    }if(reader!=null) {reader.close();                    }} catch (IOException e) {e.printStackTrace();}}        return pdfUrl;}

▄█▀█●老铁,站住!别跑,我又不收你钱,如果我的demo能够帮助到你,请给我一个赞吧!

Java按照固定pdf模板生成pdf文件——itext相关推荐

  1. java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件

    Java 使用pdf 模板生成pdf文件 --制作流程 1.      使用工具 adobe acrobat dc.word 2015 2.      使用 word 繪制一個 3*5 的表格並保存, ...

  2. itextpdf通过pdf模板生成pdf文件

    itextpdf通过pdf模板生成pdf文件,设置粗体字体 1.创建pdf模板 2.使用模板生成pdf 3.itext自带的字体列表 4.遇到的坑 1.创建pdf模板 可以使用PDFFescape网站 ...

  3. Java使用Adobe Acrobat DC根据PDF模板生成PDF文件

    制作模板 首先需要安装Adobe Acrobat DC来制作模板 打开dc工具-->准备表单,然后打开你需要制作的pdf源文件 将文本域拖到你需要代码替换的位置 你可以双击文本域修改当前文本域的 ...

  4. java pdf工具类_Java PDF工具类(一)| 使用 itextpdf 根据PDF模板生成PDF(文字和图片)...

    Java PDF工具类(一)| 使用 itextpdf 根据设置好的PDF模板填充PDF(文字和图片) 相关文章: Java PDF工具类(二)| 使用 wkhtmltox 实现 HTML转PDF(文 ...

  5. Java中操作pdf模板生成pdf

    [java] iText使用PDF模板生成输出PDF 项目需求涉及到操作pdf模板,根据生成好的模板向里面填充数据 用到的jar包是iText-5.0.6.jar 和iTextAsian.jar pd ...

  6. java itextpdf使用HTML模板生成pdf文件,并设置table

    我们这里是maven项目,导入相应jar包: <dependency><groupId>org.freemarker</groupId><artifactId ...

  7. java 根据PDF模板生成PDF文件并导出

    1.准备操作的maven包 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpd ...

  8. (三)、IText通过pdf模板生成pdf文件(可用做回执单等功能)

    一.首先制作一个pdf模板 先用word做出个模板界面, 文件另存为pdf格式文件 通过Adobe Acrobat DC软件打开刚刚用word转换成的pdf文件步骤:文件->创建->创建表 ...

  9. Android根据pdf模板生成pdf文件

    我们需要生成一些固定格式的pdf文件或者一些报表数据,那么我们可以用 iText包去做. 需要包含的jar包:iText-5.0.6.jar    iTextAsian.jar ,怎样jar包导入工程 ...

最新文章

  1. linux C库编译
  2. java实现手机短信验证全过程
  3. SOAP消息机制简介
  4. 大学计算机ppt操作表格,大学计算机应用基础第四章 电子表格软件Exc.ppt
  5. Ext JS 4.1 RC1发布
  6. Python 内置模块之 os
  7. 速览EMNLP 2020上录取的知识图谱相关论文
  8. devops 数据库_DevOps世界中与数据库管理员合作的6种方法
  9. Android修改了sdk里面的apk编译push进机器不生效问题
  10. API接口文档生成方案调研
  11. 微信公众号里的视频下载
  12. 黑客与画家 [美] Paul Graham 读书摘录
  13. Linux系统管理---权限管理
  14. HuaWei ❀ Virtual Firewalld 虚拟防火墙
  15. xadmin里面的设置
  16. Acwing寒假每日一题(一)笨拙的手指
  17. 【PIC单片机】-- ADC相关知识
  18. html 按键检测,js如何检测键盘按键的ascii码?
  19. 计算机教师的人生格言,教师的人生格言座右铭大全
  20. 自己收集的一些逆向工程的入门概念——壳、注册机、算法求逆、反病毒、免杀

热门文章

  1. [模型学习]seq2seq
  2. 腾讯严打第三方QQ机器人:多家QQ机器人暂停服务
  3. 期货开户不要孤注一掷
  4. 【练习笔记(第一次)】2020年数学建模国赛C题:数据处理、源代码
  5. 躲避全面预算管理软件选型两大误区
  6. NC全面预算管理解决方案
  7. 2012 A 数学建模
  8. 三个世界的交叉点1:数字经济浪潮下的众盟
  9. 3D游戏建模到底难不难学?
  10. 苹果计算机主板,你永远也想象不到iPhone的原型机居然是一块‘电脑主板’!