Itext5生成PDF
Itext
官网
Java操作pdf方法
通过Adobe Acrobat生成pdf form,通过Java设置form表单中的元素值进行数据填充。
读取pdf通过坐标进行填充数据,绘制成结果pdf。
通过itext代码绘制pdf。
Acrobat制作模板
先用Excel制作一个Excel模板,另存为PDF文件。
用Adobe Acrobat Pro DC打开PDF模板文件,打开表单功能,在指定地方添加文字域,模板即可制作完成。
Java代码填充AcroField
Java代码对Acrobat制作的PDF中的Form进行填充。
Maven坐标
properties
itextpdf.version5.5.6/itextpdf.version
/properties
dependencies
dependency
groupIdcom.itextpdf/groupId
artifactIditextpdf/artifactId
version${itextpdf.version}/version
/dependency
dependency
groupIdcom.itextpdf.tool/groupId
artifactIdxmlworker/artifactId
version${itextpdf.version}/version
/dependency
dependency
groupIdcom.itextpdf/groupId
artifactIditext-asian/artifactId
version5.2.0/version
/dependency
/dependencies
Java代码
//设置字体
//BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
/*模板*/
PdfReader reader = new PdfReader("发票模板.pdf");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfStamper ps = new PdfStamper(reader, bos);
/*使用中文字体 使用 AcroFields填充值的不需要在程序中设置字体,在模板文件中设置字体为中文字体 Adobe 宋体 std L*/
AcroFields s = ps.getAcroFields();
//设置表单的key-value值
//通过s.setFieldProperty("字段名", "textfont", BaseFont , null); 设置字段的格式或者在模板中修改样式
//s.setFieldProperty("checkNo","textfont",bfChinese,null);
s.setField("checkNo", "0204");
s.setField("$info$", "测试单位");
s.setField("$projectName_1$", "测试项目");
s.setField("$num_1$", "2");
s.setField("$bw_1$", "1");
s.setField("$amount_1$", "100000000");
s.setField("$total$", "壹佰万整");
s.setField("$bz_1$", "个");
s.setField("$SKR$", "测试人");
s.setField("$SKDW$", "测试单位");
s.setField("$year$", "");
s.setField("$month$", "11");
s.setField("$day$", "08");
// 设为true,设置为false后生成的pdf依然可编辑
ps.setFormFlattening(true);
ps.close();
/*输出到指定位置*/
FileOutputStream fos = new FileOutputStream("d:\\发票.pdf");
fos.write(bos.toByteArray());
输出展示
参考:
/u011391773/article/details/53084231
/sand_clock/article/details/85328849
Itext5生成PDF 相关文章
自己写的一个java小脚本,用于comsol仿真声子晶体的能带图数据直接生成origin可以用的csv文件!
import javax.security.auth.login.CredentialException;import java.io.*;import java.util.Arrays;public class Hannscript { //判断几行 public static int count = 0; public static void main(String[] args) throws IOException { //String path = Thr
Github Pages 的特性来部署由 Hexo 框架渲染生成的静态博客
准备环境 安装 Hexo 注册 Github 配置 SSH key 部署到 Github 开始写作 主题设置 七牛实现图床 个性化主题 添加评论功能 环境准备 shiyanlou:project/ $ git version [18:28:15] git version 2.7.4 shiyanlou:project/ $ node -v [18:28:24] v12.14.1 shiyan
Degree of Spanning Tree 南京ICPC 生成树+并查集+思维
Degree of Spanning Tree 生成树 + 思维 题目大意: 给你一张 \(n\) 个节点 \(m\) 条边的无向图,你可以删去一些节点使得这张图变成一棵树,要求每一个节点的度数小于等于 \(\frac{n}{2}\) 题解: 要一步一步的分析 首先分析如何把一张图变成一棵树,并查集
golang 生成rsa秘钥对
需求:golang生成秘钥对,秘钥有密码 package mainimport ("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""fmt""os")func generateRSAKey(pripath, pubpath, passwd string) error {privateKey, err := rsa.GenerateKey(rand.Reader, 2048)if err !=
WinDbg分析DUMP文件
1. 如何生成dump文件 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件; SetUnhandledExceptionFilter:/query/dev10.queryappId=Dev10IDEF1l=EN-USk=k(SETUNHANDLEDEXCEPTIONFI
一个网址,需要生成一个带有人脸识别功能的APP如何做
问题:一个官网地址,需要生成一个带有人脸识别功能的APP如何做 操作步骤: 第一步:进入中控易动平台,创建一个应用,创建完成进入应用 注意:首页网址输入的是:自己的官网地址 第二步:添加人脸识别插件(ArcSoftFace插件) 第三步:查看插件文档,配置插
自动生成业务编号 备份
String sqlCode = "SELECT MAX(code) as code from gongzuo where year(create_date) = year(NOW()) and month(create_date)=month(NOW()) "; String delegateCode = jdbcTemplate.queryForObject(sqlCode, String.class); StringB String sqlCode = "SELECT
Javadoc生成文档
1 package com.lin.base; 2 3 /** 4 * @author Lin 5 * @version 1.0 6 * @since 11 7 */ 8 public class Doc { 9 String name;10 11 /**12 *13 * @param name14 * @return15 * @throws Exception16 */17 public String test(String name)throws Exception{1
使用IDEA的webservice工具解析生成的客户端调用远程接口
由于这个接口的报文格式比较麻烦,是XML的请求头加上JSON格式的请求体,所以看起来比较复杂,也可以用RPC的方式调用,那样需要将请求头和请求体,响应头和响应体建实体。 public JSONObject sendReq(PortTypeEnum portTypeEnum,JSONObject reqBody){ Main ma
allure生成的报告打开后显示loading
allure生成的报告打开后显示loading,怎么办 1. allure生成报告的命令 1.1、生成测试数据 # 命令格式:pytest 相关参数 指定执行的用例 --alluredir=数据存放的路径# 参数:--alluredir指定结果数据保存的目录,可以用等号,也可以空格# 命令示例1:④pytest