- 26
- 0
- 约2.73千字
- 约 6页
- 2018-06-17 发布于福建
- 举报
打印机管理信息系统设计与实现
打印机管理信息系统设计与实现
摘 要:随着办公自动化的发展,电子文档取代手工书写的趋势愈加发展迅速。但是在办公过程中由于种种观念或者业务的限制,电子文档还无法做到完全取代纸质办公。针对办公打印监控以及商业打印店计费的问题,我们用Delphi设计了打印机监控与计费一体的程序。实现对办公室局域网内打印内容的监控和备份以及用户在某一段时间打印成本费用的记录。旨在通过打印机工作状况的了解和分析来完善办公管理,通过实现在计算机上自动实现计费来提高打印店的打印效率。将具体介绍如何实现监控和计费这两项功能。
关键词:打印机;监控;计费;Delphi
中图分类号:C93 文献标志码:A 文章编号:1673-291X(2012)19-0209-02
一、引言
打印机是现代企业中必不可少的设备,在使用的过程中,将一台打印机共享出来,通过企业的网络,多个人一起使用成为一个普遍的现象,这样即节省了企业的办公费用,同时又为员工提供了方便,可谓是一举两得的事情。不过同时也带来了不少隐患,一些员工利用企业的打印机来做私活,造成企业资源的浪费。作为企业的管理者,如何对打印机的使用情况进行监管,让它发挥最大的效能呢?那就需要使用企业打印监控软件,该类软件不但可以记录谁使用了打印机,打印了哪些文件,而且还能够记录打印文件的内容,从而对打印机进行有效的管理。
二、打印工作过程及分析
1.windows系统打印原理。为了实现我们的目标,我们需要了解系统下打印的实现过程。打印用户在系统下打开一篇文档,文档在屏幕上显示出来,点选打印按钮后,计算机将文档发送到本地打印机或者网络打印机进行打印,这是我们实际操作打印文档的过程,那么在这些操作的背后系统为我们做了哪些工作呢?实际上您在Windows下使用打印机时,系统自己启动了一个包含GDI32动态链接库模块、打印驱动程序动态连结模块(带.DRV扩展名)、Windows后台打印程序以及有用到的其他相关模块。在Windows系统中(NT内核的操作系统),通过进程方式来组织和管理一个应用程序的执行,每个进程都有自己的虚拟地址空间,这个地址空间是进程私有的,进程在自???的地址空间完成各种操作,比如动态库加载、线程创建等。在Windows系统中,一个应用程序涉及图形输出的功能操作都需要调用GDI(Graphics Driver Interface),GDI通过与显示设备打印机的驱动程序交互来协同处理应用程序的调用请求。GDI系统服务以Gdi32.Dll动态库的形式给出。
2.程序设计思路。根据对Windows系统的打印体系结构的了解,我们提出基于Delphi的客户—服务器模式。首先,通过使用winsock技术对Windows进行监控。监控端通过winsock技术将打印的信息通过文件形式传输到服务端(Socket.ReceiveText),服务端通过调用自定义的打印控制单元MyUtils中的相关函数得到文件的完整路径名称。接着,将接受到的ReceiveText信息添加到ListView中,同时启动存储程序将该打印文件以文件流的形式存储在数据库中。待打印完成后,若要查看打印过的文件,直接从服务端数据库中导出流文件,并给予恢复相应的文件格式,例如恢复文档格式,采用Word打开即可。
服务端计费功能:(1)截取打印机状态数据到数据库。(2)读取数据实现打印功能。AddJob(FJobsList)将监控端的打印信息读取出来,依据打印页数和打印纸张类型计算打印费用,并将信息装载到lvStatus列表中,该列表在打印内容监控中起到显示打印内容作业及费用。代码如下:
……
sSql :=’select * from printerprice where 打印类型=’’’+
List.Strings[6]+’’’’;
Adoquery1.Close;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add(sSql);
Adoquery1.Open;
P:=Adoquery1.fields[1].asdouble;//从打印价格信息表中获取打印的单价
List.Strings[i+1]:=P*List.Strings[11];//计算打印费用
SubItems.Add(List.Strings[i+1]);//装载打印信息
……
3.打印任务客户端(Print Jobs Monitor)的设计与实现。打印监控端也放在打印机所在的机器上,功能:(1)完成与服务端的通信;(2)通过线程的方式获取打印信息,每一次的打印内容都被监测到,并将打印的API函数触发的打印相关信息保存在文件列表中,通过Socket将这些打印信息发送到服务端,以供服务端调用M
原创力文档

文档评论(0)