当前位置:首页 >> 木工机床

工控软件打印制表功能的实现膨胀节

2022-12-20 17:55:59  致耀五金网

工控软件打印制表功能的实现

工控软件打印制表功能的实现 2011: 0 前 言  随着计算机技术的普及和发展,工业控制领域越来越多地运用上位机监控系统。制表打印是上位机监控系统中一项重要功能。由于工业控制过程是连续过程,其打印既包括页式报表打印,也包括行式报警打印,一般采用行式连续纸打印机,比如Epson LQ系列打印机等。WINDOWS环境下打印制表功能的实现,其打印控制功能只适用于连续纸打印机,不适用于页式打印机。  工业控制过程报表打印根据实际过程不同,用户要求不同,一般分为时报、日报、旬报、月报等。报表通常在1台打印机输出,不同报表分页打印;而时报,顾名思义为每1 h或每2 h打印1次的报表,1 d中各次打印时间不连续,但1 d中各次打印结果要连在一起构成一张完整表单,中间不能分页。时报与其他报表又要分开,独立成页;由于工业控制过程是非人为干预的自动过程,这样要求控制程序具有内部识别报表类型、定义并控制打印纸张大小功能。  WINDOWS打印过程与屏幕显示输出过程一样,皆是通过往设备描述句柄(HDC)绘制对象来完成输出工作的,屏幕显示过程使用屏幕显示描述句柄,而打印过程使用打印描述句柄;由此看来,问题的关键在于输出过程所使用的设备描述句柄。通过控制打印设备描述句柄中页面大小,实现打印纸张控制。1 获取打印机设备描述串  一个WINDOWS操作系统下可以同时安装多台打印机,而只能有1台是缺省打印机。打印输出前要确定用哪1台打印机,通过调用GetProfileString函数,取得系统缺省打印机描述串;然后,利用函数FetchStr把打印机描述串中的打印机名、设备驱动程序名、端口名分离出来,为建立打印描述句柄作准备。2 打印机状态检查  检查打印机是否上电、缺纸、就绪等状态。目的是为保证打印过程顺利完成。如果打印过程是直接输出到打印机,则需要应用程序进行打印机状态检查;否则,脱机状态下无须进行,因为应用程序是把打印作业提交给打印管理器,由打印管理器完成打印输出过程,不需要用户程序干预。一般来讲,为了加速打印过程,避免系统死锁,把打印作业提交给打印管理器,在后台进行打印。则应用程序无须进行打印机状态检查。这里,我们把打印作业提交给打印机管理器,所以,没有进行打印机状态检查。3 创建打印设备描述句柄  纸张大小的控制关键在于设置打印页面参数。我们通过用户函数GetPrinterDC去创建并控制打印设备描述句柄;其实现过程的关键是通过3次ExtDeviceMode调用,第1次调用获得DEVMODE所需内存字节数,为下一次调用分配内存空间;第2次调用取得打印机的缺省设置,修改DEVMODE结构中的dmPaperWidth、dmPaperLength参数,实现对纸张大小控制;而最后1次是利用修改后的参数对打印机进行初始化。初始化正确完成,表明给定参数正确,继而通过CreateDC创建打印设备描述句柄PrintDC,为文档输出提供设备。4 打印输出  利用PrintDC绘制对象实现打印过程。WINDOWS标准打印过程是页式打印,以作业形式进行。利用前面创建的PrintDC启动打印文档StartDoc,启动页面StartPage,接着便可以进行文档输出DoPrint。5 清理现场  文档打印完成后,必须对所使用过的设备、变量进行删除或归还,结束打印作业。

铁三角话筒

贝雷塔壁挂炉维修

回收西门子PLC厂家

CP65认证

凌美总代理供应

相关资讯
友情链接