背景:业务需求要根据pdf合同模版生成pdf最终合同,java生成pdf详细步骤如下。

1:pom引入itextpdf

        <!--PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency>

2:测试代码示例

   @Testpublic void testGenerate() throws IOException, DocumentException {String path = "C:\\Users\\Administrator\\Desktop\\TC\\contract_template.pdf";String out = "D:/contract_juren2.pdf";PdfReader reader = new PdfReader(path);FileOutputStream fos = new FileOutputStream(new File(out));ByteArrayOutputStream bos = new ByteArrayOutputStream();PdfStamper ps = new PdfStamper(reader, bos);AcroFields s = ps.getAcroFields();BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//BaseFont.ge(, Charset.defaultCharset().name(), true);bf.setFontDescriptor(BaseFont.FONT_WEIGHT,12f);s.setField("contractNumber", "STD20210618111222");s.setFieldProperty("contractNumber","textfont",bf,null);s.setField("merchantName", "北京市朝阳区巨人教育文化培训学校");s.setFieldProperty("merchantName","textfont",bf,null);s.setField("merchantAddress", "北京市朝阳区旺角广场4层南侧汇只学校");s.setFieldProperty("merchantAddress","textfont",bf,null);s.setField("contact", "刘德华");s.setFieldProperty("contact","textfont",bf,null);s.setField("mobile","18611112222");s.setFieldProperty("mobile","textfont",bf,null);ps.setFormFlattening(true);ps.close();Document doc = new Document();PdfCopy copy = new PdfCopy(doc, fos);doc.open();for(int i=1;i<10;i++){PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), i);copy.addPage(importPage);}doc.close();log.info("生成成功");}/*** 获取pdf表单属性name* @throws Exception*/@Testpublic void testPdf() throws Exception {String path = "C:\\Users\\Administrator\\Desktop\\TC\\contract_template2.pdf";PdfReader reader = new PdfReader(path);ByteArrayOutputStream bos = new ByteArrayOutputStream();PdfStamper ps = new PdfStamper(reader, bos);AcroFields form = ps.getAcroFields();java.util.Iterator<String> it = form.getFields().keySet().iterator();while (it.hasNext()) {String name = it.next();System.out.println(name);}}

3:设置自定义字体

String fontPath = "C:\\Windows\\Fonts\\msyh.ttf";
BaseFont baseFont1 = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font yahei12 = new Font(baseFont1, 12f);

所需模版、软件、自定义字体下载:
链接:https://pan.baidu.com/s/1UGEOO4aWEkbRFKh6g4wPrw
提取码:7fxg

java生成pdf合同相关推荐

  1. java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板

    最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...

  2. java实现保存合同模板_java实现pdf的生成下载打印,java生成pdf电子账单,java生成pdf合同模板...

    最近公司要做个生成pdf电子账单凭证的功能,由于这个公司没有任何代码可借鉴,这个时候我就必须得自己搞明白具体的每一步应该怎么做,引什么jar包?用什么方式去实现?这篇博客中会给出从头到尾及其详细的代码 ...

  3. Adobe Acrobat pro生成PDF模版 java生成PDF

    最近做了一个关于动态生成PDF合同的需求  java生成PDF 网络上随便一搜遍有了 不要用手动在代码里面输入合同中的文字这种方式 如这样的方式 http://blog.csdn.net/justin ...

  4. 【教程】如何使用Java生成PDF文档?

    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享.而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行.下面,我们 ...

  5. java 其他文件转pdf_java 其他文件转成pdf java生成pdf

    java生成pdf需要用到的包pd4ml.jar 下载地址:http://download.csdn.net/detail/yanning1314/7124741 package com.cular. ...

  6. java生成pdf方法_详解Java生成PDF文档方法|chu

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

  7. java生成PDF,各种格式、样式、水印都有

    需要的JAR包链接:https://www.langhuaquan.com/asset/search/JAVA生成PDF需要的JAR包/ 原文链接:https://www.langhuaquan.co ...

  8. java生成PDF 导出

    tip:生成pdf导出 需要的JAR包链接:https://www.hebaocun.com/asset/search/JAVA生成PDF需要的JAR包/ 原文链接:https://www.hebao ...

  9. iText5实现Java生成PDF文件完整版,二维码

    iText5实现Java生成PDF文件完整版 vue 项目中分别使用 vue-pdf 插件和内嵌 iframe 实现 PDF 文件预览,缩放,旋转,下载,保存等功能 ? Vue打印文件(v-print ...

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

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

最新文章

  1. 痛苦是能让人成长的,所以不要害怕遇到痛苦
  2. 局域网抓包分析工具_[源码和文档分享]基于Libpcap实现的局域网嗅探抓包发包解析工具...
  3. JAVA WEB知识总结之一--入门
  4. ASP.NET页面解析(3)
  5. 网件rax40可以刷梅林_支持WiFi6,带宽达到3000Mbps,网件RAX40路由器评测 | 钛极客...
  6. C++ primer: C++标准库中vector类模板
  7. php 期望参数1为资源,php – imagesx()期望参数1是资源,给定布尔值
  8. WPF XMAL获取元素的父元素,子元素
  9. mysql 年龄计算(根据生日字段)
  10. VERP是否支持多仓库管理?
  11. CDGA|数据虚拟化助力数据治理成效显著
  12. 免费天气预报API接口
  13. 块数据3.0:秩序互联网与主权区块链
  14. ps:消除锯齿和羽化
  15. macbook黑屏_Macbook苹果笔记本电脑开机黑屏如何解决【解决方法】
  16. GN+NINJA环境搭建(MacOS Windows)
  17. c语言中girth的作用,C++初级问题,急救中!!!
  18. Linux搭建SVN Server
  19. 关于R语言中文公开课
  20. 计算机提升反思的相关文档,反思教学论文,关于教学反思在提升高校计算机专业青年教师教学水平中的应用相关参考文献资料-免费论文范文...

热门文章

  1. 2022全新抖音二维码生成工具源码+亲测可用
  2. 将图片转化成RGB格式
  3. oracle的odac dll,.NET2.0中施用最少的ODAC动态库文件连接Oracle数据库
  4. Xcode ImageOptim Compress PNG Files
  5. windows下桌面便签小工具简单使用技巧
  6. python语言培训是密封式的吗
  7. 【机器学习项目实战】随机森林(random forest)回归(RandomForestRegressor)模型Python实现
  8. python离散点切向量的计算与可视化
  9. 解决tomcat中文乱码问题的方案
  10. [软考]项目工作说明书VS项目范围说明书