直接用Itext api输出pdf表格很痛苦,必须在代码中实现表格的样式。比如下图的表格:
可能有比较好的工具来生成复杂的pdf 表格,但没有用过,于是试着自己实现如何简化。
思路:把表格参数化配置,宽度、列数、内容等,减少手工编码实现表格样式。
弱弱的套用Composite模式解决跨行跨列的情况,对于这种情况可以认为它是一个小的table,然后嵌到大的table中。
另外,需要用到spring.jar itext1.4.2.jar。
每个单元格都有两个特殊的属性,分别是中文名cnName和属性名attrName,单元格显示内容时先根据属性名去DTO中取出内容,如果内容为空,则显示中文名称。