freemark模板 加 iText创建pdf合同
来源:互联网 发布:擎天软件科技有限公司 编辑:程序博客网 时间:2024/05/01 04:14
公司要做模板合同,网上找了很多案例。都不是很好用,后面找到一个差不多的,自己整理了下。希望需要的小伙伴可以用到,另外也是想的以后不用那么麻烦的找了。
好了 想要jar包的小伙伴可以去这里下
不说那么多直接上代码吧
首先需要5个jar包
需要说的是iTextAsian.jar 是处理字体的jar包必不可少,如果是英文合同那就算了哈
另外需要自己下载个字体库,不用都下,用啥字体下载啥字体,就可以了
再说说模板,因为iText对html的支持不是很好,所以还是要模板尽量用table控制
接下来就是我们 的代码了
package tempTest;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.HashMap;import java.util.Map;import java.util.logging.Logger;import org.xhtmlrenderer.pdf.ITextFontResolver;import org.xhtmlrenderer.pdf.ITextRenderer;import com.lowagie.text.pdf.BaseFont;import freemarker.template.Configuration;import freemarker.template.Template;public class ftlTopdf {private static Logger log = Logger.getLogger(ftlTopdf.class.getName());private Configuration configuration = null;String producePdfPath = "";public ftlTopdf() {configuration = new Configuration();configuration.setDefaultEncoding("UTF-8");}/** * 生成pdf * * @param params * @param tempUrl * @param htmlUrl * @param pdFUrl * @return */public String processPdf(Map<String, Object> params, String templPath, String ftlName, String htmlPath,String pdfPath, String fontPath) {// 得到模板地址try {configuration.setDirectoryForTemplateLoading(new File(templPath));Template temp = configuration.getTemplate(ftlName);File htmlFile = new File(htmlPath);if (!htmlFile.exists()) {htmlFile.createNewFile();}Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(htmlPath)), "utf-8"));temp.process(params, out);out.flush();String url = htmlFile.toURI().toURL().toString();OutputStream os = new FileOutputStream(pdfPath);ITextRenderer renderer = new ITextRenderer();renderer.setDocument(url);// 解决中文问题ITextFontResolver fontResolver = renderer.getFontResolver();fontResolver.addFont(fontPath + "simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);renderer.layout();renderer.createPDF(os);os.close();} catch (Exception e) {log.info(e.toString());return "";}return pdfPath;}public static void main(String[] args) {ftlTopdf cert=new ftlTopdf();Map<String, Object> map=new HashMap<>();map.put("customerName", "user");map.put("customerAddress", "北京市通州区高里掌路1号");map.put("customerTel", "");map.put("customerEmail", "@qq.com");map.put("AcapAmount", "");map.put("orderAmount", "");cert.processPdf(map, "E:/templent/", "jybftl.ftl", "D:/aaa.html", "D:/aaa.pdf", "D:/fonts/");}}
好了 想要jar包的小伙伴可以去这里下
另外加个模板
font字体库就不加了啊 自己找点就好了 一般就是楷体 希腊语啥的
链接: https://pan.baidu.com/s/1kUEpF2R 密码: k8z2
0 0
- freemark模板 加 iText创建pdf合同
- struts2 + freemark + itext 导出pdf(基于模板方式)
- freemark模板导出pdf
- itext pdf加水印
- iText编辑Pdf模板
- iText编辑Pdf模板
- itext pdf模板生成pdf
- itext 创建pdf
- 使用freeMark作为模板导出pdf
- Itext操作pdf模板生成pdf
- 使用iText创建PDF文件
- 利用itext创建PDF表格
- PDF合同模板项目----问题列表
- Itext PDF生成 加水印图片文字
- 使用iText为PDF加图片水印
- Itext PDF生成 加水印图片文字
- java-pdf-(itext+adobe acrobat+pdf模板)生成pdf文件
- itext使用模板生成pdf文件
- rabbitmq的简单使用(1)
- Xamarin.Forms 数据绑定
- C# 实现录音操作
- Eclipse 中SVN图标不显示
- ExpandedGridView用于解决ScrollView中GridView大小被压缩的问题
- freemark模板 加 iText创建pdf合同
- 解决android7.0报错:android.os.FileUriExposedException
- Javascript 的原型链
- 多线程总结
- gitbook editor 报错
- poj 2186 Popular Cows
- Docker多步构建更小的Java镜像
- ubuntu 16 install thrift c++
- @GeneratedValue 四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.