Itext生成合同
来源:互联网 发布:网络教育 高起专 时间 编辑:程序博客网 时间:2024/04/27 13:11
这两天让我根据用户投资的记录,生成一个合同,然后可以让他下载.网上查了不少资料.简单介绍下我对这几个软件的理解
第一个就是用模板.,用adobe的软件,把pdf给模板化,然后给需要添加数据的地方设置属性字段,再在java代码里添加,但是有一个问题就是.我们这里的有个还款计划,是个动态的表格,无法指定具体的行和列,然后这个办法被pass了,在然后就是flying Source用html页面直接生成,这个生成对html页面也有一定的要求,我当时也是搞了半天才把他生成出来,后来发现,他好像没法读取动态的数据,这个问题,我现在有点不明白,希望大神指导我下,然后也被pass掉了,最后还是老老实实的看了下itext的官方文档,毕竟英文还是蛮累,在找了下网上的资料.在后台拼接了字符串,生成了一个合同,用的jar包共两个,一个是itext-asian,一个是itextpdf,先看下效果:
其中这个表格是可以动态追加的,代码如下
package test;import java.io.FileOutputStream;import java.io.IOException;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Element;import com.itextpdf.text.Font;import com.itextpdf.text.Image;import com.itextpdf.text.Paragraph;import com.itextpdf.text.Phrase;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;public class Test { public static void main(String[] args) { // 创建一个Document对象 Document document = new Document(); try { // 生成名为 合同 的文档 PdfWriter.getInstance(document, new FileOutputStream("c://合同.pdf")); /** * 新建一个字体,iText的方法 STSongStd-Light 是字体,在iTextAsian.jar 中以property为后缀 * UniGB-UCS2-H 是编码,在iTextAsian.jar 中以cmap为后缀 H 代表文字版式是 横版, 相应的 V * 代表竖版 */ BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false); Font bold_fontChinese = new Font(bfChinese, 8, Font.NORMAL); Font impressFont = new Font(bfChinese, 12, Font.BOLD); Font pressFont = new Font(bfChinese, 10, Font.NORMAL); // 打开文档,将要写入内容 document.open(); Paragraph p=new Paragraph("借款协议", impressFont); p.setAlignment(Element.ALIGN_CENTER);//借款协议居中 document.add(p); p=new Paragraph("合同编号:111111111111111",bold_fontChinese); p.setAlignment(Element.ALIGN_RIGHT); document.add(p); document.add(new Paragraph("本借款协议(下称\"本协议\")由以下各方于______年___月___日签署:", pressFont)); document.add(new Paragraph("甲方(出借人):", pressFont)); document.add(new Paragraph(" ")); //这里插一个表格,如果动态遍历,可一次插入,行不够,自动添加新的行 PdfPTable table = new PdfPTable(4); table.addCell(new Phrase("用户名",pressFont)); table.addCell(new Phrase("借出金额",pressFont)); table.addCell(new Phrase("借款期限",pressFont)); table.addCell(new Phrase("每月应收利息",pressFont)); table.addCell(new Phrase("张三",pressFont)); table.addCell(new Phrase("1000",pressFont)); table.addCell(new Phrase("3",pressFont)); table.addCell(new Phrase("10",pressFont)); document.add(table); String[] rules1_4 = { "1. 丙方是一家在上海市合法成立并有效存续的有限责任公司,拥有网站(下称)的经营权,提供信用咨询,为交易提供信息服务;\n"+ "2. 乙方已在拇指金融网站注册,并承诺其提供给丙方的信息是完全真实的;\n"}; for (String s : rules1_4) { //把上面的一段话遍历并添加到段落中 document.add(new Paragraph(s, pressFont)); document.add(new Paragraph(" ", pressFont)); } document.add(new Paragraph("甲方:", pressFont)); document.add(new Paragraph(" ", pressFont)); //空行 document.add(new Paragraph(" ", pressFont)); document.add(new Paragraph("乙方:", pressFont)); document.add(new Paragraph(" ", pressFont)); document.add(new Paragraph(" ", pressFont)); document.add(new Paragraph("丙方:", pressFont)); // 定义一个图片 Image jpeg = Image.getInstance("E:/QQ.png"); // 图片靠左 jpeg.setAlignment(Image.LEFT); document.add(jpeg); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } // 关闭打开的文档 document.close(); } }
jar包:
如有写的不好的地方,希望大神 能多指教
0 0
- Itext生成合同
- 利用itext 打印合同
- freemark模板 加 iText创建pdf合同
- FreeMarker 生成合同
- 生成pdf,使用itext
- iText生成PDF
- itext 生成pdf
- itext 生成pdf
- 使用itext生成pdf
- iText 生成复杂表格
- iText生成PDF
- IText 生成PDF
- itext生成word文档
- itext生成pdf
- iText生成PDF入门
- iText生成PDF入门
- iText生成pdf文书
- iText 生成pdf分页
- iOS连接外设的几种方式小结,包括MFi的和非MFi的
- Cstring中的 Find()、Mid()、Replace() 用法
- 设备树编译
- input输入框里限制只能输入数字
- JavaScript基础
- Itext生成合同
- EventBus使用
- Spring依赖注入(基于XML配置文件和Annotation的方式完成属性装配)
- ANSI标准I/O总结(1)
- TalkingData的使用,iOS数据统计
- LibSVM学习(一)---中英文对照使用手册完整版暨了解readme文件
- 自定义的高级dialog
- webstrom格式化代码和常用的快捷键
- 超高速前端开发工具——Emmet