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; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。