pdf导入模版

原创
2017/07/08 22:49
阅读数 60

/**
     * 
     * @param map 预填写pdf数据
     * @throws Exception 
     */
     public static String test(Map<String, String> map) throws Exception {  
            String fileName = "template/protocol.pdf"; // pdf模板  
            PdfReader reader = new PdfReader(fileName);  
            ByteArrayOutputStream bos = new ByteArrayOutputStream();  
            /* 将要生成的目标PDF文件名称 */   
            PdfStamper ps = new PdfStamper(reader, bos);  
            PdfContentByte under = ps.getUnderContent(1);     
              
              /* 使用中文字体 */    
            BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);  
            ArrayList<BaseFont> fontList = new ArrayList<BaseFont>();  
            fontList.add(bf);  
            //给pdf合同赋值
            Map<String, String> data = new HashMap<String, String>();  
            data.put("name", map.get("name"));  
            data.put("code", map.get("code")); 
            data.put("time", map.get("time"));
            //data.put("time", "2017-06-31"); 
            /* 取出pdf模板中的所有字段 */    
            AcroFields fields = ps.getAcroFields();  
            fields.setSubstitutionFonts(fontList);  
            fillData(fields, data);  
              
            /* 必须要调用这个,否则文档不会生成的 */    
            ps.setFormFlattening(true);  
            ps.close();
              //文件存储的路径(需要先创建好文件夹)
            FileOutputStream fos = new FileOutputStream("E:\\test.pdf");  
            fos.write(bos.toByteArray());  
            fos.flush();  
            fos.close();  
            bos.close(); 
        }  

展开阅读全文
打赏
0
0 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部