基于Lodop控件的Web打印示例(含源码)

      最近项目组的打印控件有所改变,已经换成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

      打印控件本身非常强大,可以连续打印.在我提供的示例文件中,已经提供代码实现方式.大家可以直接参考.

再说明一点,这个控件,是在客户端需要安装的.好了,有什么问题欢迎留言!

 

示例代码

基于Lodop控件的Web打印.Files

时间: 2024-09-30 11:40:47

基于Lodop控件的Web打印示例(含源码)的相关文章

Android仿英语流利说取词放大控件的实现方法(附demo源码下载)_Android

本文实例讲述了Android仿英语流利说取词放大控件的实现方法.分享给大家供大家参考,具体如下: 1 取词放大控件 英语流利说是一款非常帮的口语学习app,在app的修炼页面长按屏幕,会弹出一个放大镜,当手指移到某个单词的附近,可以看到该英文单词会被选中,效果如下图所示: 2 代码示例 该控件挺有意思,于是我写了个简单的demo,完整实例代码点击此处本站下载.,程序运行后的效果如下: 3 实现原理 该控件的实现原理比较简单,下面介绍几个比较重要的类 ① WordView 在实习该控件的过程中,我

Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作【附带源码实例】

    本节将讲述三个Silverlight中应用的小技巧:Silverlight页面的放大缩小.Silverlight操作Html.Html操作Silverlight控件. 一.Silverlight页面的放大缩小         首先对于Silverlight页面的放大缩小我们可以使用ScaleTransform对Canvas控件进行设置.这样所有在该Canvas控件内的所有子控件都被放大缩小.         下面我们看Xaml源码如下: <Canvas MouseWheel="La

Silverlight实用窍门系列:39.Silverlight中使用Frame和Page控件制作导航【附带实例源码】

在Silverlight中有时需要进入不同的XAML页面,但是一般情况下是不能实现"前进"和"后退"的,在这里我们可以使用Frame+Page控件制作导航功能实现上一页和下一页的跳转功能. 在本文中我们制作一个实例如下:添加一个Frame控件,然后点击"加载UC"和"加载PageShow"按钮加载UC.xaml和PageShow.xaml页面.在加载后我们可以通过鼠标右键菜单中的"上一页"和"下一

JS禁用页面上所有控件的实现方法(附demo源码下载)_javascript技巧

本文实例讲述了JS禁用页面上所有控件的实现方法.分享给大家供大家参考,具体如下: 利用页面元素的特征,可以捕捉到所有元素. function DisableElements(container,blnHidenButton) { if (!container) return; var aEle; if (navigator.appName =="Microsoft Internet Explorer") //IE { for (var i=0;i<container.all.le

能自己“跑”的表单控件,思路,雏形,源码。vs2005版本

下载地址: http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html 大家是怎么处理CRUD的呢? 这里说一下添加.修改数据.     一大堆的表,n多的字段,经常变化的表现形式(比如文本框换成下拉列表框等),是不是很头痛?反正我是很烦的,因为我太懒了,对于这种不是太重要的,但是有很繁琐的东东,我总是要向出来一种"简单"的方式来处理.     怎么办?表单控件,我还一直使用VS2003,没有VS2005里面的表单控件,所以只好

WinForm中播放视频示例(含源码)

1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的WM控件,也是通过COM方式集成进来.操作步骤如下 l 工具箱引用 n 在工具箱中新建一Tab页面,命名为Windows Media Player(随意命名).创建成功后,再右键选中该面板,如下图所示 n 选中Com面板,找到如下图所示控件,引用即可 n 引用成功后,如下图所示.工具箱中已存在此控件,直接将此控件拖至页面中即可

PB调用WebService示例(含源码)

  说起PowerBuilder,可能大家都会嗤之以鼻,然后说一句:"哥们,还用呢啊"?记得以前看过的电影"功夫熊猫"里说:存在即是合理.我想说得是,世界上如果这个东西或这件事情存在,一定有它的道理,好像扯得有些远啊.... 好了,言归正传,PowerBuilder在Net没有成势之前,还是非常火的,因此,至今还有的公司在用它来开发,有人问,为什么不换呢.每个公司的情况都不相同,总有这种或那种的原因存在,导致无法更换,这点我们不去研究. 而现在WebService非

基于微软RDLC报表控件示例(含源码)

      五一放假,研究了下RDLC,之前一直有人说如何强大?研究之后才发现,确实很强大.微软的这套东西,感觉是借鉴了Sybase的数据窗口,配置方式大同小异咯.我们现在看看这套东西如何使用?       有句话叫:别看广告看疗效,这里我在举两个简单的例子,如图-1和图-2所示.       示例一:点击功能系统名称链接字段,会跳转到图-2所示的功能系统下所包含的功能模块列表. 图-1 图-2       我们看看是如何制作出来的?这里我使用的是VS05版本,VS08当然也可以的.新建报表文件

基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍使用EasyUI的树控件构建Web界面的相关经验. 在很多界面设计上,我们可能都需要引入树列表控件,这个控件可以用zTree来实现,也