Java通過freemarker產生pdf檔案並蓋章__Java

來源:互聯網
上載者:User
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合約的全路徑URLString 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工程截圖:

Demo工程連結:點擊開啟工程串連


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.