Java代码中如何使用pdf模板进行输出打印呢?
下文笔者讲述java中使用pdf模板打印的方法及示例分享,如下所示
1.使用pdf escape制作一个模板 pdf
pdf中添加 相应的表单字段
注意字段的名称必须填写(字段名设置为唯一值)
2.借助iText读取pdf
根据字段名称依次替换相应的值
例:使用pdf模板制作pdf的示例
ArrayList<BaseFont> fontList = new ArrayList<BaseFont>();
fontList.add(bf);
AcroFields fields = ps.getAcroFields();
fields.setSubstitutionFonts(fontList);
fillData(fields, data());
//必须要调用这个,否则文档不会生成的
ps.setFormFlattening(true);
ps.close();
//生成pdf路径存放的路径
OutputStream fos = new FileOutputStream("D:/result.pdf");
fos.write(bos.toByteArray());
fos.flush();
fos.close();
bos.close();
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 填充模板中的数据
*/
public static void fillData(AcroFields fields, Map<String, String> data) {
try {
for (String key : data.keySet()) {
String value = data.get(key);
// 为字段赋值,注意字段名称是区分大小写的
fields.setField(key, value);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 填充数据源
* 其中data存放的key值与pdf模板中的文本域值相对应
*/
public static Map<String, String> data() {
Map<String, String> data = new HashMap<String, String>();
data.put("schoolName", "我爱java,java也会爱我!!!");
data.put("userName", "java265");
data.put("date", "2024/01");
return data;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


