Search in sources :

Example 1 with PdfAcroForm

use of com.itextpdf.forms.PdfAcroForm in project spring-learning by moon-zhou.

the class FillTemplate method main.

public static void main(String[] args) {
    try {
        Map<String, String> params = new HashMap<>();
        params.put("applicant", "张三");
        params.put("name", "lisi");
        params.put("applicantId", "666");
        params.put("email", "1@1.com");
        String templatePath = "/Users/xxx/tmp/pdf/PDF 模板测试 1.pdf";
        String newPDFPath = "/Users/xxx/tmp/pdf/PDF 模板测试 2.pdf";
        String fontPath = "/Users/xxx/tmp/pdf/Alibaba-PuHuiTi-Regular.ttf";
        PdfDocument pdf = new PdfDocument(new PdfReader(templatePath), new PdfWriter(newPDFPath));
        /*PdfFont font = PdfFontFactory.createFont(this.getClass().getClassLoader().getResource("/").getPath()
                    + "font/Alibaba-PuHuiTi-Regular.ttf");*/
        PdfFont font = PdfFontFactory.createFont(fontPath);
        if (params != null && !params.isEmpty()) {
            // 有参数才替换
            PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
            Map<String, PdfFormField> fields = form.getFormFields();
            // 获取所有的表单域
            for (String param : params.keySet()) {
                PdfFormField formField = fields.get(param);
                // 获取某个表单域
                if (formField != null) {
                    // 替换值
                    formField.setFont(font).setValue(params.get(param));
                // 替换值
                // formField.setValue(params.get(param));
                }
            }
            // 锁定表单,不让修改
            form.flattenFields();
        }
        pdf.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : PdfAcroForm(com.itextpdf.forms.PdfAcroForm) PdfFormField(com.itextpdf.forms.fields.PdfFormField) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) HashMap(java.util.HashMap) PdfFont(com.itextpdf.kernel.font.PdfFont) PdfReader(com.itextpdf.kernel.pdf.PdfReader) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument)

Aggregations

PdfAcroForm (com.itextpdf.forms.PdfAcroForm)1 PdfFormField (com.itextpdf.forms.fields.PdfFormField)1 PdfFont (com.itextpdf.kernel.font.PdfFont)1 PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)1 PdfReader (com.itextpdf.kernel.pdf.PdfReader)1 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)1 HashMap (java.util.HashMap)1