1,首先下载,安装 Adobe Acrobat DC

  步骤方法:https://jingyan.baidu.com/article/c14654138d7a9c0bfcfc4ce9.html

2,新建一个Word模板,转成PDF格式

3,通过 Adobe Acrobat DC工具打开保存好的PDF文件

4,点击右边准备表单

 

 

java PDF生成 -csdn java生成pdf模板_Adobe

 

 *** (模板中的fell_*,这些变量需要删除重新写一遍,不然数据存不进去)

java PDF生成 -csdn java生成pdf模板_Adobe_02

4.准备好模板以后开始写Java代码

  首先导入所需jar包

  

java PDF生成 -csdn java生成pdf模板_Adobe_03

 

5.具体代码实现

  1,模板

    private static final String TEMPLATE_PATH="/template/XXX.pdf";

  2.读取模板位置

   

//Award award=数据对象;
    //===award==为要导出的对象数据
    PdfReader reader=new PdfReader(TEMPLATE_PATH);
    ByteArrayOutputStream bos=new ByteArrayOutPutStream();
    PdfStamper ps=new PdfStamper(reader,bos);
    AcroFields s=ps.getAcroFields();
    //=====解决中文不显示的问题,注意需要引入itext-asian.jar包
    BaseFont bf=BaseFont.createFont("STSong-Lignt","UniGB-USC2-H",BaseFont.Not_EMBEDDEL);
    //====填充PDF
    //姓名
    s.setFieldProperty("fill_1","testfont",bf,null);
    if(award,getName()!=null){
      s.setField("fill_1",award.getName());
    }
 
    //性别
    s.setFieldProperty("fill_2","testfont",bf,null);
    if(award.getSex()!=null){
      if(award.getSex()==0){
        s.setField("fill_2","男");
      }else if(award.getSex()==1){
        s.setField("fill_2:,"女");
       }
     }
     //身份证号
      s.setFieldProperty("fill_3","testfont",bf,null);
     if(award.getNumberID() != null) {
        s.setField("fill_3",award.getNumberID());
     }
     //模板中的图片的位置--图片
     AcroFields from=ps.getAcroFields();
    String imgpath=declaration.getFilePath();
    int pageNo=from.getFieldPositions("Text1").get(0).page;
    Rectangle signRect=from.getFieldPosition("Text1").get(0).position;
    float x=signRect.getLeft();
    float y=signRect.getBottom();
    //根据路径读取图片
    Image image=Image.getInstance(imgpath);
    //获取图片页面
    PdfContentByte under=ps.getOverContent(pageNo);
    //图片大小自适应
    image.scaleToFit(signRect.getWidth(),signRect.getHeight());
    //添加图片
    image.setAbsolutePostion(x,y);
    unser.addImage(image);
 
    ps.setFormFlattening(true);
    ps.close();
 
    //收尾--重新生成PDF
    File file=new File(Contants.ROOT_PATH+Contants.BASE_PATH+declaration.getDocumentPath();
    if(!file.exists()) {
      file.mkdirs();
    }
    String path=Contants.ROOT_PATH+Contants.BASE_PATH+
    declaration.getDocumentPath()+File.separatorChar+declaaaration.getName()+".pdf";
    FileOutputStream fos=new FileOutputStream(path);
    fos.write(bos.toByteArray());
    fos.flush();
    fos.close();
    return path;

  修改字体大小方式

  打开Adobe acrobat pro dc ,双击表单字段

  

java PDF生成 -csdn java生成pdf模板_jar包_04