0
回答
Winform开发框架之证件套打
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在我的早期的一篇文章中《Web打印的解决方案之证件套打》,介绍过基于Web的证件套打方式;另外在我的代码生成工具中,一直介绍使用基于NVelocity模板引擎生成的代码,能够高效、快速、拥抱变化式的生成想要的代码。那么结合两者的特点,我们可以Winfrom界面中,利用NVelocity动态生成页面代码,然后利用WebBrowser控件,实现在Winfrom中的证件套打。在我的Winform框架集成了一些证件的套打功能,这样更能丰富日常开发中碰到的各种打印问题,提供更加广阔的应用前景。

首先我们来了解一下实现的效果,然后再来分析其中的实现思路和代码片段。

上面的Winform套打模块中,包含了三个不同证件,6个套打打印的效果。下面我们一个运输许可证的套打为例进行介绍讲解。

首先就是通过上面填写的数据,利用模板引擎自动生成页面代码,把相关的数据写到网页里面去。

private void btnLicensePrint_Click( object sender, EventArgs e) { string tempalte = " Template/LicensePrintTemplate.htm "; // 相对目录 HelperClassAdapter adapter = new HelperClassAdapter(tempalte); adapter.DirectoryOfOutput = " Template " ; adapter.AddKeyValue( " CompanyName ", this .txtCompanyName.Text) .AddKeyValue( " Scope ", this .txtScope.Text) .AddKeyValue( " License ", this .txtLicense.Text) .AddKeyValue( " ParkAddr ", this .txtParkAddr.Text) .AddKeyValue( " IssuingDept ", this .txtIssuingDept.Text) .AddKeyValue( " LicenseYear ", this .txtLicenseDate.Value.Year) .AddKeyValue( " LicenseMonth ", this .txtLicenseDate.Value.Month) .AddKeyValue( " LicenseDay ", this .txtLicenseDate.Value.Day) .AddKeyValue( " ValidateYear ", this .txtLicenseValidity.Value.Year) .AddKeyValue( " ValidateMonth " , txtLicenseValidity.Value.Month) .AddKeyValue( " ValidateDay ", this .txtLicenseValidity.Value.Day) .AddKeyValue( " Year " , DateTime.Now.Year) .AddKeyValue( " Month " , DateTime.Now.Month) .AddKeyValue( " Day " , DateTime.Now.Day) .AddKeyValue( " EconomicType ", this .txtEconomicType.Text); string filePath = adapter.ExecuteSingle(); filePath = Path.Combine(Application.StartupPath, filePath); FrmWebBrowser frmView = new FrmWebBrowser(); frmView.webBrowser1.Navigate(filePath); frmView.Show(); }

通过以上的代码,会根据模板生成相应的页面文件,然后界面就会看到如下所示的效果,虽然看不到具体的套打数据,但是已经写到网页里面去了。

里面的页面代码会生成相应的证件数据,如下所示。

当我们选择“打印预览”的时候,就会调用打印控件进行套打显示了,里面显示的信息就是具体的证件信息了。当然,套打的背景是不会输出到打印机上的。

当我们选择“打印维护”的时候,就可以根据测试打印效果,对内容在纸张中的位置进行调整,指导满意位置,可以把调整的位置信息保存。

它是保存到本地的文件系统里面去的,所以只需要一次设置保存即可,今后就可以利用调好的位置进行套打了。

这样我们就可以实现基于Winform的证件套打,客户可以定制修改位置,使用起来非常友好和人性化。

由于Winform里面已经集成了打印控件的注册认证,因此打印的时候,不会出现版权文字信息了,真的是省心,省钱,呵呵。


原文链接:http://www.cnblogs.com/wuhuacong/archive/2012/04/20/2458667.html
<无标签>
举报
长平狐
发帖于5年前 0回/192阅
顶部