本文实例为大家分享了java通过PDF模板填PDF表写单的具体代码,包括图片,供大家参考,具体内容如下
需要用到的java包:
, itext.jar, iTextAsian.jar的JAR包。这个包里面定义了与中文输出相关的一些文件。
编写的表单如下:
进口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 杂技演员。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。