pdf读取模板导出

1.将word文档另存为pdf

2.通过工具 Adobe Acrobat DC 将word文档转成pdf模板

   该工具会将word里的输入框修改成变量如图


双击fill_1字段可以自定义变量名称如图




代码部分:

//模板路径
String templatePath = "D:\\测试.pdf";
//生成的新文件路径
String newPDFPath = "D:\\测试test.pdf";
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;
try {
    out = new FileOutputStream(newPDFPath);//输出流
    reader = new PdfReader(templatePath);//读取pdf模板
    bos = new ByteArrayOutputStream();
    stamper = new PdfStamper(reader, bos);
    AcroFields form = stamper.getAcroFields();
    java.util.Iterator<String> it = form.getFields().keySet().iterator();
    while(it.hasNext()){
        String name = it.next().toString();
        if("name".equals(name)){
            form.setField(name, "张三");
        }
        if("type".equals(name)){
            form.setField(name, "1");
        }
        if("years".equals(name)){
            form.setField(name, "5");
        }
        if("position".equals(name)){
            form.setField(name, "经理");
        }
    }
    stamper.setFormFlattening(true);
    stamper.close();

    Document doc = new Document();
    PdfCopy copy = new PdfCopy(doc, out);
    doc.open();
    PdfImportedPage importPage = copy.getImportedPage(
            new PdfReader(bos.toByteArray()), 1);
    copy.addPage(importPage);
    doc.close();

} catch (Exception e) {
    e.printStackTrace();
}

使用到的jar包:

针对导出pdf中汉字不显示的问题如图


解决方法如下:

1.通过工具 Adobe Acrobat DC 将word文档转成pdf模板时删除自动生成的变量如图:


2.在空白处右击选择文本域如图:


3.重新定义变量如图:


保存为新的pdf模板进行导出则不会出现汉字不显示的问题。

猜你喜欢

转载自blog.csdn.net/qq_19591373/article/details/80497246