一、应用场景与出发点
同一个系统中,为了解决不同的客户可能需要设计不同的单据打印模板,实现此方法可能是:
1、设计不同的自带RDLC报表文件,根据当前客户加载不同的报表并打印
2、GDI+绘图 和 打印组件 ,不同的客户创建不同的绘图XML格式的模板内容
3、其他第三方组件
主要对比一下前两种方法,第一种方法不好之处在于,不灵活,开发者必须地每个客户制订一个报表,不推荐采用。第二种方法,修改对应的模板内容就可以了, 模板内容可以是Xml文件,也可以是存放在数据库中的Xml格式字符串。推荐采用这种方法。然后这种方法的也有一个棘手问题 :如何让用户快速、方便地设计打印模板,本示例就是为了解决这个问题。
二、实现思路与原理
功能概要:设计一个界面,支持用户自由添加 要打印的项,文本,直线,图片 等,并且可以方便改变打印项的 字体、颜色、粗细、位置,设计时支持效果预览。
技术要点:GDI+绘图、拖动控件、XML解析、自定义控件
三、相关类介绍
绘图工具类:DrawHelper 实现 xml格式模板 与 打印项 之间进行互相转换,在目标画板中绘制
拖动工具类:WinHelper 实现控件的鼠标拖动,键盘移动
自定义控件:用于显示文字的文本框 TextBoxExt、用于显示直线的标签 LabelExt
主窗体代码:用于用户操作,添加,删除,编辑,打印项
详细介绍请参照我的博文:http://de.cel.blog.163.com/blog/static/51451236201472215450939/
1