这几天有用户需要设计一个单据的打印格式
为了让该格式具有通用性,需要让它能够自适应纸张,用户的纸张可能是A4、可能是241-1,可能是241-2,或者其它尺寸,它们可能宽度不一样,也可能高度不一样。
自适应纸张不是简单的成比例放大或者缩小,这样会让字体或者图片不清晰。

正确的自适应纸张需要从这几方面考虑:
①所有横向非表格内容缩放应该是要能够自动横向移动打印位置,纵向位置不变;
②表格纵向缩放应该是通过自动控制打印表格的行数来处理,比如如果纸张高度比较大, 那就需要打印的行数多一些,也就是扣除表头和页脚的高度后,全都用来打印表格内容;
③表格横向缩放,应该是按照原来每列的宽度比,同步增加或者减少对应的宽度,而且这个宽度比是可以让用户自己提前设置好。这样用户可以自己根据具体列内容的多少来设置宽度比例。
④当然一些表头的固定内容和页脚的固定内容,也需要让用户可以自定义。

由于我们系统为了做到绿色小巧,所以并没有用第三方报表工具,所有打印都是自己通过代码实现的.
为了综合考虑上面四点需求,让用户通过设置参数就可以实现需要的打印格式,花费了不少精力。
最终还是基本实现了需要的效果,相信用第三方报表工具能更快捷地实现。

自适应纸张打印单据

条友们,你们是怎么处理类似的需求的呢?