ganhaiqiang-20130831

依赖itext-2.1.7.jar、iTextAsian.jar

public class Test {
    public static void main(String[] args) {
        String tmpName = "E:/pdf.pdf";// pdf模板
        try {
            PdfReader reader = new PdfReader(tmpName);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            PdfStamper stamper = new PdfStamper(reader, bos);
            //PdfContentByte under = stamper.getUnderContent(1);
            BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
            ArrayList<BaseFont> list = new ArrayList<BaseFont>();
            list.add(bf);
            AcroFields fields = stamper.getAcroFields();
            fields.setSubstitutionFonts(list);
            fillData(fields, data());
            stamper.setFormFlattening(true);
            stamper.close();
            OutputStream fos = new FileOutputStream("E:/create.pdf");
            fos.write(bos.toByteArray());
            fos.flush();
            fos.close();
            bos.close();
            System.out.println("======SUCCESS=====");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }

    }

    public static void fillData(AcroFields fields, Map<String, String> data) throws IOException, DocumentException {
        for (Entry<String, String> entry : data.entrySet()) {
            fields.setField(entry.getKey(), entry.getValue());
        }
    }

    public static Map<String, String> data() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "齐大宇");
        map.put("province", "四川成都");
        map.put("sex", "女");
        map.put("hobby", "c++");
        map.put("dt", new SimpleDateFormat("yyyy年MM月dd日").format(new Date()));
        return map;
    }
}

 

分类:

技术点:

相关文章: