那就自定义打印吧。
1、先计算纸的长度,宽度。留左右空后,中心剩余高度,宽度。
2、计算标题宽,高,计算表格头是一行还是二行(这个是固定的),有多高。字符高是固定的。如 12磅的字,空半行,那么每行高就是 18磅,转化为缇。
3、根据纸芯的宽度,及 listview 的TAB 总宽度,计算每TAB的起始位置及总宽度。如果不使用 listview 的宽度,那么你要指定各列的宽度。
4、打印标题。居中。 左边距+ (中心宽度-标题宽)/2
5、画第一根横线,打印各标题,画第二根横线。标题可以读 listview 中的标题
6、循环读取 listview 的内容,并且打印到对应的 位置去。
如果内容超宽的,可以有二种选择,一种是换行,另一种是截断。
如果是截断的,那么可以计算出每页的行数,按计算出来的行数打印就是了。
如果是换行的,那么打印本行之前,要计算一下本行最大行数是多少,然后根据行数,计算高度,然后把每个格子对应的内容需要上下进行居中打印。
7、每打印一行内容后,则在这行下面画一根横线。
8、每打印一行后,判断 版芯剩余高度,是否够了一下行,如果不够,则进入换页部分。
9、换页,画各条竖线,上坐标是固定的,对齐第一根横线,下坐标是对齐最后一根横线,用刚打印内容后画的最后一根线。
10、然后再到最后位置打印页码。
11、所有的都打印完成后,根据需要,是否使用空白行填充,如果是,计算剩余高度还能有多少行,使用一个循环画横线下去。
12、然后再进入换页部分,最后再结束打印。