Java通过freemarker生成pdf文件并盖章
2017-03-24 14:48
603 查看
Java代码生成pdf回执文件,直接上代码:
package com.pdf; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.BaseFont; import freemarker.template.Configuration; import freemarker.template.Template; public class PdfHandler { private static final String CONTRACT = "resource/contract/";//合同文件存储路径 private static final String TEMPLATE = "resource/templates/";//模板存储路径 private static final String PDFNAME = "pdfDemo";//pdf文件名 private static final String HTMLNAME = "pdfDemo";//html文件名 public static void contractHandler(String templateName, HashMap paramMap) throws Exception{ // 获取本地模板存储路径、合同文件存储路径 String templatePath = TEMPLATE; String contractPath = CONTRACT; // 组装html和pdf合同的全路径URL String localHtmlUrl = contractPath + HTMLNAME + ".html"; String localPdfPath = contractPath + "/"; // 判断本地路径是否存在如果不存在则创建 File localFile = new File(localPdfPath); if (!localFile.exists()) { localFile.mkdirs(); } String localPdfUrl = localFile + "/" + PDFNAME + ".pdf"; templateName=templateName+".ftl"; htmHandler(templatePath, templateName, localHtmlUrl, paramMap);// 生成html合同 pdfHandler(localHtmlUrl, localPdfUrl);// 根据html合同生成pdf合同 deleteFile(localHtmlUrl);// 删除html格式合同 System.out.println("PDF生成成功"); } /** * 生成html格式合同 */ private static void htmHandler(String templatePath, String templateName, String htmUrl, HashMap paramMap) throws Exception { Configuration cfg = new Configuration(); cfg.setDefaultEncoding("UTF-8"); cfg.setDirectoryForTemplateLoading(new File(templatePath)); Template template = cfg.getTemplate(templateName); File outHtmFile = new File(htmUrl); Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(outHtmFile))); template.process(paramMap, out); out.close(); } /** * 生成pdf格式合同 */ private static void pdfHandler(String htmUrl, String pdfUrl) throws DocumentException, IOException { File htmFile = new File(htmUrl); File pdfFile = new File(pdfUrl); String url = htmFile.toURI().toURL().toString(); OutputStream os = new FileOutputStream(pdfFile); org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer(); renderer.setDocument(url); org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer .getFontResolver(); // 解决中文支持问题 fontResolver.addFont(TEMPLATE+"simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); renderer.layout(); renderer.createPDF(os); os.close(); } /** * 删除文件 */ private static void deleteFile(String fileUrl) { File file = new File(fileUrl); file.delete(); } public static void main(String[] args) throws Exception { String templateName = "201"; HashMap paramMap = new HashMap<>(); paramMap.put("ZJHKZH", "271003********279975"); paramMap.put("KYYE", "79244.95"); paramMap.put("LXFS", "配置web.xml中LXFS属性,例如(张小凡,123,4567,8909)"); paramMap.put("KHWD", "2****1"); paramMap.put("CSKSRQ", "2016年10月31日00时00分"); paramMap.put("KSRQ", "2017-03-14"); paramMap.put("YE","94444.95"); paramMap.put("KHZH","271**********07279975"); paramMap.put("AH", "(2015)****字第0***0号"); paramMap.put("CKH", "(2017)法YH****9控字第*号"); paramMap.put("YDJAH", "(2015)***执字第00020号"); paramMap.put("KZCS", "01"); paramMap.put("XM", "張三豐"); paramMap.put("FYMC", "****人民法院"); paramMap.put("JSRQ", "2017-06-14"); paramMap.put("KZZT", "1"); paramMap.put("SE", "100"); paramMap.put("LCZH", "987234234"); paramMap.put("DATE", "2017年03月24日09时39分"); paramMap.put("CKWH", "(2015)*****字第0**20-1**0号裁定书"); paramMap.put("SKSE", "100"); paramMap.put("CSJSRQ", "2016年10月31日 00时00分"); contractHandler(templateName, paramMap); } }
Demo工程截图:
相关文章推荐
- 通过freemarker+iText生成pdf和doc文件
- java通过xml配置属性用iText包生成pdf文件
- Java使用Freemarker和iText生成带有图片的PDF文件
- Java使用Freemarker和iText生成PDF文件
- 从 Java 应用程序动态生成 PDF 文件
- 使用JAVA通过JXL(JExcel)动态生成Excel文件 转载至台湾某博客
- Java iText PDF:用 iText 包生成简单的 pdf 文件 推荐
- 通过Middlegen生成hbm文件和java代码
- 生成PDF文件的Java库iText
- 通过文件结构直接生成xls文件 java
- 从 Java 应用程序动态生成 PDF 文件
- [个人总结]Java生成PDF文件
- Java iText PDF:用 iText 包生成简单的 pdf 文件
- 通过文件结构直接生成xls文件的VB.Net和Java两个版本
- 从Java应用程序动态生成PDF文件
- 从 Java 应用程序动态生成 PDF 文件(摘)
- 如何利用iText在java程序中生成PDF文件
- 从 Java 应用程序动态生成 PDF 文件
- C#调用iTextSharp组件生成PDF文件, 在VS2005下已经调试通过!
- 从JAVA直接读取EXCEL、WORD并生成PDF文件