[转载]基于Lodop控件的Web打印 – Vincent.Q – 博客园.
最近项目组的打印控件有所改变,已经换成Lodop控件,使用以后发现,功能确实非常强大.可以打印Web页面内某个控件的内容.下面,还是通过一个实例 来说明下吧,医院系统有个模块,是院内感染模块,它需要填写各种报卡,并且填写完以后,要将它打印出来,而且打印出来的效果要和纸制的报卡近乎一致.额, 这个要求就比较高喽,如图-1所示,这是其中一张报卡的纸制扫描效果图,我们打印出来的效果要和这个几乎一样.
图-1
现在我们来分析一下这里的打印展示类型.
类型1:患者姓名,卡片编号等,直接取自Db栏目值,不需要额外加工.不过,有的需要增加下划线功能.
类型2:出生日期,需要对日期进行拆分,增加汉字:年,月和日
类型3:户籍属于,全部复选框,将其中某一数据选中
类型4:户籍地址,是Db中多个栏目拼接而成.而且都是将数据值替换为显示值
OK,经过以上的分析,上述这些打印类型是可以通过配置的方式实现.新建一XML配置文件,如图-2所示
图-2
字段说明:
字段描述 | 描述 |
itemname | 打印模板中被替换关键字,同时也是Db表中某列名称 |
itemparename | 若打印类型是comboitem这种组合方式,它用来定义包括哪些子itemname |
printstyle | 打印类型,目前包括:textbox,dropdownlist,datetime,checkboxlist和comboitem(组合方式,即由其他多个字段组合而成) |
printformat | 打印格式,日期型的输出格式在此处定义 |
bottomline | 是否对文字增加下划线 |
datasource | 下拉菜单等的数据源,专门测试使用 |
然后我们看看打印模板文件是如何制作的,如图-3所示
图-3
现在,我们就要通过编码的方式来实现将这些关键字替换掉,简单说,是根据不同的打印格式分别处理.比较核心的代码如图-4所示
图-4
经过上述代码的编写,我们看看最终的效果图,如图-5所示
图-5
打印控件本身非常强大,可以连续打印.在我提供的示例文件中,已经提供代码实现方式.大家可以直接参考.
再说明一点,这个控件,是在客户端需要安装的.好了,有什么问题欢迎留言!
示例代码