一种视窗操作系统中保存和恢复打印设备的打印设置的方法

文档序号:6554763阅读:269来源:国知局
专利名称:一种视窗操作系统中保存和恢复打印设备的打印设置的方法
技术领域
本发明涉及一种在视窗操作系统中对打印设备的打印设置数据的保存和恢复的方法。
背景技术
在现有微软视窗操作系统涉及打印的应用程序中,经常需要协同不同的打印设备进行配合,或者在同一台打印设备上进行不同打印设置的配合。现有技术下打印设置操作烦琐,而且不能自动记录所用过的打印设备和打印设置,每次打印除非是默认打印设备,此外都需要手动选择打印设备以及配置打印设置,操作繁琐,容易出错。
因此,现有视窗操作系统中应用程序的打印设置技术存在易用性缺陷,有待于改进和完善。

发明内容
本发明的目的在于提供一种视窗操作系统中保存和恢复打印设备的打印设置的方法,通过对适用于视窗操作系统的应用程序对应的打印设置数据结构完整数据的保存和恢复,实现对打印设备的打印设置的保存和恢复。
为了实现本发明的上述目的,本发明提供了一种视窗操作系统中保存和恢复打印设备的打印设置的方法,包括以下步骤a)根据适用于所述视窗操作系统的应用程序的打印处理确定关于所述打印设备的打印安排,由此根据所述打印安排确定所述打印设备的打印设置数据结构;b)获取所述应用程序的地址空间中对应于所述打印设置数据结构的内存地址;c)将所述打印设置数据结构的完整数据拷贝记录在依据所述内存地址为所述应用程序新分配的内存中;d)从所述新分配的内存中读出记录的完整数据拷贝,并将其存储在存储装置中;e)在所述应用程序再次启动所述打印处理时,从所述存储装置中载入所述完整数据拷贝,覆盖所述应用程序对应的打印设置数据结构;f)基于所述被覆盖的打印设置数据结构执行打印处理。
本发明所提供的一种视窗操作系统中打印设置保存和恢复的方法,由于采用了适用于视窗操作系统的应用程序中对应打印设置数据结构完整数据的保存和恢复,从而实现了对不同打印设备以及同一打印设备不同打印设置的方便操作,保证了打印的快捷和准确。
本发明所述打印设置是指视窗操作系统所支持的所有类型的打印设备的打印设置,打印设置包括并不限于打印设备型号、打印设备在本计算机或局域网中的地址、打印所用纸张、打印纸横纵向、打印质量、打印顺序、打印份数、打印纸页边距以及不同类型打印设备所提供的特殊打印功能信息。
应用本专利方法可对不同打印设备的不同打印设置进行分别保存,并可在同一应用程序中按需恢复。
在视窗操作系统中需要打印功能的应用程序都可以直接应用本方法或引用实现了本方法的子程序来实现所述的打印设置保存和恢复功能。


图1为本发明保存打印设备的打印设置的流程示意图;图2为本发明恢复打印设备的打印设置的流程示意图。
具体实施例方式
以下结合附图,将对本发明的较佳实施例加以详细描述,以使其技术方案及其有益效果显而易见。
本发明的所述方法是一种在适用于视窗操作系统的应用程序中保存和恢复打印设备的打印设置的计算机程序或方法,本发明方法将适用于视窗操作系统的应用程序所提供的打印设置数据结构的完整数据进行保存,并可在后续打印时进行指定恢复,恢复后的打印设置可完成正常的打印任务。
本发明方法涉及计算机、视窗操作系统及视窗操作系统所支持的各类型打印设备,用于操作视窗操作系统应用程序中特定内存区域中的数据,并直接影响打印设备的输出效果。现有技术通常的打印流程为准备文档->手动选择打印设备,设置打印参数->发出打印指令->打印。而本发明方法的应用后打印流程为准备文档->计算机程序自动选择打印设备,设置打印参数->发出打印指令->打印。前提是在首次打印时对打印设备进行了设置,例如局域网内的某台机子拥有3台打印机PNT1、PNT2、PNT3,PNT1为激光打印机,PNT2为彩色喷墨打印机,PNT3为针式打印机,由于打印机各有不同特色PNT1打印速度快,但不能打印彩色图幅,适于打印一般文字;PNT2可以打印彩色图幅和文字,但打印速度慢,一般仅只用于打印需要彩色的图页;PNT3可以只用于打印发票等,预先加的纸也是可复写的发票,等待随时打印。这样,为提高工作效率,可能一应用程序,譬如财务汇报或计划报告程序,可能产生了图文混排的待打印文件,其中也可能带有发票。在打印时可以通过程序或人工设置,如某几页用PNT1打印,另几页用PNT3打印;同时如打印的排版格式、清晰度等等还需有附加的打印信息来保证打印正确。上述打印机的设置,尤其是针对不同的打印机的安排在打印时是在内存中记录的,如此操作系统才能控制正确打印,并且对适用于视窗系统的应用程序来说,其中的打印设置数据结构即指PRINTDLG或PRINTDLGEX数据结构,对该打印设置数据结构完整数据的读写是本发明的核心发明点,但现今并没有任何技术文献公开关于该数据结构的完整数据读写操作的。
本发明的视窗操作系统中保存和恢复打印设备的打印设置的方法,如图1和图2所表明的,所述方法包括以下步骤根据适用于所述视窗操作系统的应用程序的打印处理确定关于所述打印设备的打印安排,由此根据所述打印安排确定所述打印设备的打印设置数据结构;获取所述应用程序的地址空间中对应于所述打印设置数据结构的内存地址;依据所述内存地址,将所述打印设置数据结构的完整数据拷贝记录在为所述应用程序新分配的内存中;从所述新分配的内存中读出记录的完整数据拷贝,并将其存储在存储装置中;在所述应用程序再次启动所述打印处理时,从所述存储装置中载入所述完整数据拷贝,覆盖所述应用程序对应的打印设置数据结构;以及基于所述被覆盖的打印设置数据结构执行打印处理。
本发明保存打印设备的打印设置的流程示意图如图1所示的为S11)获取所述应用程序进程内的视窗操作系统打印设置数据结构PRINTDLG或PRINTDLGEX的内存地址。所述应用程序需要处理打印任务时自行分配和配置PRINTDLG或PRINTDLGEX数据结构,并将其传递给视窗操作系统获取同物理打印设备的联系,所以从所述应用程序可以获取PRINTDLG或PRINTDLGEX的内存地址;S12)分析该打印设置数据结构,分配用于保存打印设置数据结构的内存区。需要分析打印设置数据结构本身及其特定句柄成员所指向数据占用的内存大小,用于分配内存来完整保存该打印设置数据结构。特定句柄成员是指PRINTDLG或PRINTDLGEX结构中的hDevMode和hDevNames成员。
PRINTDLG结构typedef struct tagPD {DWORD lStructSize;HWND hwndOwner;
HGLOBAL hDevMode;HGLOBAL hDevNames;HDChDC;DWORD Flags;WORD nFromPage;WORD nToPage;WORD nMinPage;WORD nMaxPage;WORD nCopies;HINSTANCE hInstance;LPARAM lCustData;LPPRINTHOOKPROC lpfnPrintHook;LPSETUPHOOKPROC lpfnSetupHook;LPCTSTR lpPrintTemplateName;LPCTSTR lpSetupTemplateName;HGLOBALhPrintTemplate;HGLOBALhSetupTemplate;}PRINTDLG,*LPPRINTDLG;PRINTDLGEX结构typedef struct tagPDEX {DWORD lStructSize;HWND hwndOwner;HGLOBAL hDevMode;HGLOBAL hDevNames;HDC hDC;DWORD Flags;DWORD Flags2;DWORD ExclusionFlags;DWORD nPageRanges;
DWORD nMaxPageRanges;LPPRINTPAGERANGElpPageRanges;DWORD nMinPage;DWORD nMaxPage;DWORD nCopies;HINSTANCE hInstance;LPCTSTR lpPrintTemplateName;LPUNKNOWN lpCallback;DWORD nPropertyPages;HPROPSHEETPAGE*lphPropertyPages;DWORD nStartPage;DWORD dwResultAction;}PRINTDLGEX,*LPPRINTDLGEX;S13)将该打印设置数据结构PRINTDLG或PRINTDLGEX本身的数据及特定句柄成员所指向的数据拷入所述新分配的内存区中;S14)将新分配内存区中的数据保存到存储装置(包括并不限于磁盘文件和数据库)。
本发明恢复打印设备的打印设置的流程示意图如图2所示的为S21)从所述存储装置中将数据载入一新分配的内存区中;S22)以句柄方式分配内存,获取新句柄,并将所述载入数据中对应特定句柄成员的数据拷入其中;以所述载入记录数据中的对应数据覆盖打印设置数据结构;将被覆盖打印设置数据结构中的特定句柄成员修正为所述新句柄。
本发明方法可配合应用程序在不同的应用场景下自动恢复用户先前保存的完整打印设置,缩短打印前的准备工作,提高工作效率。本发明方法免除了手工设置打印设备的重复劳动,便于多人输出打印规格统一的文档,并在普通打印机上可完成对特定规格纸张的打印任务。
但应当理解的是,本发明的上述对具体实施例的描述较为具体,并不能因此而理解为对本发明请求保护范围的限制,其专利保护范围应以所附权利要求为准。
权利要求
1.一种视窗操作系统中保存和恢复打印设备的打印设置的方法,包括以下步骤a)根据适用于所述视窗操作系统的应用程序的打印处理确定关于所述打印设备的打印安排,由此根据所述打印安排确定所述打印设备的打印设置数据结构;b)获取所述应用程序的地址空间中对应于所述打印设置数据结构的内存地址;c)依据所述内存地址,将所述打印设置数据结构的完整数据拷贝记录在为所述应用程序新分配的内存中;d)从所述新分配的内存中读出记录的完整数据拷贝,并将其存储在存储装置中;e)在所述应用程序再次启动所述打印处理时,从所述存储装置中载入所述完整数据拷贝,覆盖所述应用程序对应的打印设置数据结构;f)基于所述被覆盖的打印设置数据结构执行打印处理。
2.根据权利要求1所述的方法,其中所述打印设置数据结构是指微软公司MSDN文档库中所公布的PRINTDLG或PRINTDLGEX数据结构。
3.根据权利要求1所述的方法,其中所述步骤c)包括以下步骤c1)分析打印设置数据结构,确定保存其完整数据所需的内存大小,依据此内存大小新分配内存;c2)依据所述打印设置数据结构的内存地址将该打印设置数据结构的完整数据拷入所述新分配内存区中;其中所述打印设置数据结构的完整数据是指打印设置数据结构本身所占用内存区域中的数据,以及打印设置数据结构的特定句柄成员所指向的内存区域中的数据。
4.根据权利要求1所述的方法,其中所述步骤e)包括以下步骤e1)以句柄方式分配内存,获取新句柄,并将所述载入数据中对应特定句柄成员的数据拷入其中;e2)依据打印设置数据结构的内存地址,以所述载入数据中的对应数据覆盖打印设置数据结构;将被覆盖打印设置数据结构中的特定句柄成员修正为上述新句柄。
全文摘要
本发明公开了一种视窗操作系统中保存和恢复打印设备的打印设置的方法,该方法将打印设备的打印设置数据结构记录在内存中,从内存中读出记录的完整数据拷贝,并将其存储在存储装置中,在应用程序再次启动打印时,从存储装置中载入完整数据拷贝,以覆盖应用程序对应的打印设置数据结构。本发明方法免除了手工设置打印设备的重复劳动,可快速完成针对单台或多台打印设备的多种预定设置,便于多人输出打印规格统一的文档,并在普通打印设备上可完成对特定规格纸张的打印任务。
文档编号G06F11/14GK1828515SQ20061000947
公开日2006年9月6日 申请日期2006年2月23日 优先权日2006年2月23日
发明者乔昕明 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1