java通过PDF模板填PDF表写单

  

本文实例为大家分享了java通过PDF模板填PDF表写单的具体代码,包括图片,供大家参考,具体内容如下

  

需要用到的java包:

  

, itext.jar, iTextAsian.jar的JAR包。这个包里面定义了与中文输出相关的一些文件。

  

编写的表单如下:

  

癹ava通过PDF模板填写PDF表单"

        进口java.io.ByteArrayOutputStream;   进口java.io.FileOutputStream;   进口java.io.IOException;   进口java.util.HashMap;   进口java.util.Map;      进口com.itextpdf.text.DocumentException;   进口com.itextpdf.text.Image;   进口com.itextpdf.text.Rectangle;   进口com.itextpdf.text.pdf.AcroFields;   进口com.itextpdf.text.pdf.BaseFont;   进口com.itextpdf.text.pdf.PdfContentByte;   进口com.itextpdf.text.pdf.PdfReader;   进口com.itextpdf.text.pdf.PdfStamper;/* *   * pdf工具类   * @author MOSHUNWEI   * @since 2018-02-01   */公开课PDFUtil {/* *   *根据模板生成pdf   * @param数据地图(字符串、对象)   * @return   */公共静态布尔createPDF (String路径,Map<字符串,Object>数据){   PdfReader读者=零;   AcroFields s=零;   PdfStamper ps=零;   ByteArrayOutputStream bos=零;   尝试{   读者=new PdfReader (“D: \ \ test.pdf”);   bos=new ByteArrayOutputStream ();   ps=new PdfStamper(读者,bos);   s=ps.getAcroFields ();/* *   *使用中文字体使用AcroFields填充值的不需要在程序中设置字体,在模板文件中设置字体为中文字体Adobe宋体性病L   */BaseFont bfChinese=BaseFont。createFont (“STSongStd-Light”、“UniGB-UCS2-H”假);/* *   *设置编码格式   */s.addSubstitutionFont (bfChinese);//遍历数据给pdf表单表格赋值   (字符串关键:data.keySet ()) {   s.setField(关键,data.get(键).toString ());   }//如果为假那么生成的PDF文件还能编辑,一定要设为true   ps.setFormFlattening(真正的);/* *   *添加图片   */字符串imgpath=" D:/n5.jpg”;   int pageNo=s.getFieldPositions (img) . get (0) .page;   矩形signRect=s.getFieldPositions (img) . get (0) .position;   浮动x=signRect.getLeft ();   浮动y=signRect.getBottom ();//读图片   图像图像=Image.getInstance (imgpath);//获取操作的页面=下PdfContentByte ps.getOverContent (pageNo);//根据域的大小缩放图片   signRect.getHeight image.scaleToFit (signRect.getWidth () ());//添加图片   的形象。setAbsolutePosition (x, y);   under.addImage(图片);   @SuppressWarnings(“资源”)   FileOutputStream安全系数=new FileOutputStream (“d: \ \ shouju_fb.pdf”);   fos.write (bos.toByteArray ());   返回true;   }捕捉(IOException | DocumentException e) {   System.out.println(“读取文件异常”);   e.printStackTrace ();   返回错误;   最后}{   尝试{   bos.close ();   ps.close ();   reader.close ();   }捕捉(IOException | DocumentException e) {   System.out.println(“关闭流异常”);   e.printStackTrace ();   }   }   }      公共静态void main (String [] args) {   Object> Map<字符串;data=https://www.yisu.com/zixun/new HashMap <字符串、对象> ();   数据。put (" id "、“12312321”);   数据。把(“名字”、“小帅哥”);   数据。把(“性”,“男”);   数据。把(“年龄”、“21”);   PDFUtil.createPDF (“D:/n5.jpg”数据);   }   }      

还有相应的编辑pdf表单的工具,默认用Adobe 杂技演员。
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

java通过PDF模板填PDF表写单