• Winform开发框架之证件套打


    在我的早期的一篇文章中《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里面已经集成了打印控件的注册认证,因此打印的时候,不会出现版权文字信息了,真的是省心,省钱,呵呵。

    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    传说中的灵感
    错误: Sys.WebForms.PageRequestManagerServerErrorException: 只能在执行 Render() 的过程中调用 RegisterForEventValidation;
    只能在执行 Render() 的过程中调用 RegisterForEventValidation
    在aspx实现用户控件内Web控件的事件
    Asp.net网页上嵌入Media Player播放
    为临时表动态添加字段
    如何防止头文件被重复包含、嵌套包含
    Linux C SQLite3 编程
    Android开源项目源码下载(不断更新中)
    Android程序员必看之Android六大优势
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/2458667.html
Copyright © 2020-2023  润新知