关于iText的一点分享
亭中人 2012-11-23 09:52:11 一个比较复杂,也可以说是变态的报表,用尽了主流的报表工具,最后选择了iText。
一直认为iText不算是真正意义的报表工具,算是一个PDF库(当然还好困了其它)
报表的要求:采用A3横向双面打印,打印之后中间对折装订,其实最终得到的是A4大小的装订报表
报表的动态内容浮动很大,少的8页,多的达20页。
内容里面有不同的字体要求、有的需要下划线、有的需要不同的颜色等等,这些不同要求的均可能是动态内容
内容里面还涉及多个复杂的表格
此前用过的诸多报表工具,模板的方式来写,根本无法很好的实现动态排版。
iText解决思路:
1、新建一个A4的Document,按照报表最终的A4装订的顺序就行内容添加(完全程序化编程);
2、获取A4版面的Document的页数,计算出A3纸张数量
3、新建一个A3的Document,根据A3的打印顺序,分别获取A4的每页内容,分别复制到的A3的半版页面上
4、最终输出A3的Document文档。
iText输出PDF不算高效,但是iText可以细粒度的控制文档中的每一个字符。
简单分享一下思路,代码就就不贴,超过千行。