欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于設置條件的數(shù)據(jù)處理裝置的制作方法

文檔序號:12039333閱讀:228來源:國知局
基于設置條件的數(shù)據(jù)處理裝置的制作方法
本發(fā)明涉及一種基于設置條件的數(shù)據(jù)處理裝置。

背景技術(shù):
使用打印機驅(qū)動進行的打印操作,或者,使用PC-FAX(計算機傳真)驅(qū)動的傳真?zhèn)鬏敳僮?,通過執(zhí)行以下進程來實現(xiàn):(1)用戶通過使用應用程序的打印菜單來顯示打印設置界面,并設置打印條件或傳輸條件。需要注意的是,盡管打印條件與傳輸條件的設置內(nèi)容實際上并不相同,但是本文此后均采用“打印設置”來一并指代打印條件的設置和傳輸條件的設置。(2)用戶通過使用應用程序指示開始打印。打印機驅(qū)動接收打印設置,在進程(1)中通過稱為DEVMODE(開發(fā)模式)結(jié)構(gòu)的數(shù)據(jù)庫確定該打印設置。因此,打印機驅(qū)動根據(jù)打印設置,將從應用程序接收到的文檔數(shù)據(jù)轉(zhuǎn)換為打印機能夠理解的打印數(shù)據(jù)。打印機驅(qū)動將打印數(shù)據(jù)傳送至打印機或傳真機。從而,打印機執(zhí)行打印,傳真機執(zhí)行傳真?zhèn)鬏敗T谝环N情況下,打印機驅(qū)動或PC-FAX驅(qū)動(此后一并稱之為“打印機驅(qū)動”)從應用程序接收打印設置,該應用程序通過使用Windows的應用程序編程接口(API,ApplicationProgrammingInterface),將打印設置通知給Windows的圖形設備接口(GDI,GraphicsDeviceInterface)。GDI為Windows型操作系統(tǒng)(WindowstypeOS)的一部分。GDI通過設備驅(qū)動程序接口(DDI,DeviceDriverInterface),將打印設置指令通知給打印機驅(qū)動。因為只有DDI的I/F被定義了,每個制造商(打印機驅(qū)動和PC-FAX驅(qū)動的制造商)能夠設計一種DDI的實現(xiàn)方法(在DDI被調(diào)用時,打印機驅(qū)動執(zhí)行的進程)。然而,即便制造商為打印機驅(qū)動定義一個獨有的I/F,該I/F也不能被調(diào)用,因為Windows型OS無法識別該I/F。1、關(guān)于DEVMODE結(jié)構(gòu)DEVMODE結(jié)構(gòu)中存儲有打印設置,DEVMODE結(jié)構(gòu)被劃分為公共區(qū)域和私有區(qū)域。圖1為描述DEVMODE結(jié)構(gòu)實例的示意圖。圖2為描述參考DEVMODE結(jié)構(gòu)實例的示意圖。公共區(qū)域為OS定義區(qū)域,因此,應用程序能夠改變該公共區(qū)域。公共區(qū)域包括如下的項目即每個打印機驅(qū)動需要設置的例如“打印方向”或“紙張大小”。對每個制造商來講,私有區(qū)域為獨有區(qū)域,私有區(qū)域能夠針對制造商或打印機驅(qū)動,定義所存儲的數(shù)據(jù)種類。由于應用程序或Windows型OS無法獲知私有區(qū)域所存儲的是什么的種類數(shù)據(jù),因此,改變私有區(qū)域的唯一方式是:使用打印機驅(qū)動的用戶界面(UI)驅(qū)動來顯示私有區(qū)域中的設置,并接受所顯示的設置。私有區(qū)域包括如下的項目即:制造商特征或打印機類型特征,例如,“打印方法”或“身份認證”。用戶設置由UI驅(qū)動生成的打印條件(例如,紙張大小、頁數(shù)、雙面打?。⒏鶕?jù)打印條件指示執(zhí)行打印。當用戶進行操作來指令打印條件的設置時,應用程序通過制定GDI命令來調(diào)用GDI,并將DEVMODE結(jié)構(gòu)發(fā)給GDI。圖2中所示的應用程序為如文檔生成程序的應用(如,MS-Word(注冊商標))。當GDI從應用程序中獲取DEVMODE結(jié)構(gòu)時,該GDI通過制定DDI命令調(diào)用打印機驅(qū)動的渲染驅(qū)動(renderdriver),并將DEVMODE結(jié)構(gòu)發(fā)送給渲染驅(qū)動。渲染驅(qū)動參考從GDI獲取的DEVMODE結(jié)構(gòu),遵從打印設置生成打印數(shù)據(jù),并將生成的打印數(shù)據(jù)發(fā)送給假脫機(Spooler),其中,該打印設置來自應用程序指示打印的文檔數(shù)據(jù)。需要注意的是,打印數(shù)據(jù)包含有:繪圖數(shù)據(jù)(例如,PDL數(shù)據(jù))和控制數(shù)據(jù)(例如,PJL打印命令)。也就是說,UI驅(qū)動和渲染驅(qū)動均能夠指向DEVMODE結(jié)構(gòu)。進一步地,UI驅(qū)動能夠顯示私有區(qū)域并接受打印設置的改變。2、自動化需要因此,修改私有區(qū)域的唯一方式是使用打印機驅(qū)動來顯示設置界面,并接受用戶在顯示界面上所進行的操作。因此,私有區(qū)域的改變需要用戶的操作。然而,一些進程中要求完全自動完成,不需要任何用戶的操作。例如,這樣的進程包括:打印表格的進程或通過傳真?zhèn)鬏敚òl(fā)送)直接郵件(DM)的進程。對于這些進程來講,即便每次打印的打印設置保持相同的情況下,如果每次打印表格或通過傳真發(fā)送文檔,用戶都不得不通過在設置界面上的操作來改變私有區(qū)域的話,其可操作性將會被降低。因此,希望在不需要用戶操作的情況下,能夠?qū)⒋鎯υ诖蛴C私有區(qū)域的打印設置,改變?yōu)檫m用于給定應用程序的打印設置。為了達到上述的要求,一些制造商提供打印機驅(qū)動的擴展I/F,以便應用程序能夠與打印機驅(qū)動直接通信(例如,參見日本專利公開號為2005-148928的文件)。并且,開發(fā)了一些適用于給定進程的應用程序,以滿足用戶的要求。圖3為描述擴展I/F、應用程序、DEVMODE結(jié)構(gòu)的示意圖,圖3所示的應用程序適用于用戶或應用程序至少調(diào)用擴展I/F的進程。圖3所示的應用程序調(diào)用擴展I/F來改變私有區(qū)域的打印設置。因此,在用戶執(zhí)行指示通過應用程序開啟打印的操作之后,能夠在完全沒有用戶的操作下,完成打印。3、關(guān)于存儲在DEVMODE結(jié)構(gòu)中的打印設置有些打印機驅(qū)動在用戶已經(jīng)指示開始打印的操作后,重新顯示設置界面,這樣,在打印數(shù)據(jù)傳輸之前,能夠接受打印設置的改變。圖4為示出了重新顯示的設置界面(在圖4所示的實例中,為顯示機密打印功能的界面)的示意圖。在圖4所示的實例中,在用戶指示開始打印后,機密打印功能要求輸入用戶ID和密碼。用戶除非輸入用戶ID和密碼,否則不能按OK按鈕51。在輸入用戶ID和密碼之后,按下OK按鈕51,用戶ID和密碼被傳送至打印機。用戶ID和密碼的組合預先在打印機中注冊。因此,當注冊的密碼組合與傳送過來的用戶ID和密碼不匹配時,打印機不執(zhí)行打印。在使用機密打印功能時,每次打印均需要輸入密碼,以便提升保密性。當用戶按下取消按鈕502時,則取消打印。圖5為示出PC-FAX驅(qū)動的地址確認界面實例的示意圖。PC-FAX驅(qū)動顯示出地址確認功能界面,并要求用戶輸入傳真發(fā)送的地址(例如,傳真號碼)。在傳真發(fā)送中,考慮到每次傳送的地址會經(jīng)常不同,PC-FAX驅(qū)動顯示如圖5所示的界面,以防止因疏忽而造成錯誤的傳送。當用戶輸入傳真號碼并按下發(fā)送按鈕時,傳真機通過傳輸執(zhí)行傳真發(fā)送,例如,圖像數(shù)據(jù)。在用戶按下取消按鈕504時,傳輸取消。在以下情況下使用在圖4和圖5中所示的實例中所適用的設置,即如果為了在打?。ㄈ蝿眨﹩卧休斎牖虼_認,每次執(zhí)行打印進程要求用戶輸入密碼(這樣,以提升保密性能),或者,每次執(zhí)行傳真發(fā)送時要求用戶確認指定地址(這樣,可以防止因疏忽而造成傳真發(fā)送錯誤)。在指示開始打印進程后得以修改打印設置,意味著不必通過UI驅(qū)動,執(zhí)行這樣的進程——在該進程中,應用程序確定打印設置(DEVMODE結(jié)構(gòu)),并根據(jù)打印設置指示執(zhí)行打印進程。也就是說,通過渲染驅(qū)動獲取并使用在指示開始打印進程后已被修改的打印設置,在不參考DEVMODE結(jié)構(gòu)情況下就能夠進行打印。因此,打印設置的存儲位置并不僅限于DEVMODE結(jié)構(gòu)。例如,在實際的PC-FAX驅(qū)動中,打印設置如傳真發(fā)送地址數(shù)據(jù)存儲在文件或除DEVMODE結(jié)構(gòu)之外的結(jié)構(gòu)中。有些打印機驅(qū)動在除DEVMODE結(jié)構(gòu)之外的結(jié)構(gòu)中存儲所有的設置。圖6為示出了可存儲在DEVMODE結(jié)構(gòu)之外的打印設置實例的示意圖。例如,傳真發(fā)送過程中使用的地址數(shù)據(jù)或打印過程中使用的個人數(shù)據(jù)為可存儲在DEVMODE結(jié)構(gòu)之外的打印設置實例。打印設置不存儲在DEVMODE結(jié)構(gòu)中,不僅是因為打印設置不必存儲在DEVMODE結(jié)構(gòu)中,還有其他的原因。例如,即便打印設置能夠存儲在DEVMODE結(jié)構(gòu)中,但也有這樣一種情況,就是打印設置有意不存儲在DEVMODE結(jié)構(gòu)中。如上所述,通過UI驅(qū)動,打印設置可存儲在DEVMODE結(jié)構(gòu)中,或者通過例如顯卡驅(qū)動在DEVMODE結(jié)構(gòu)中為打印設置制定參考(reference)。在DEVMODE結(jié)構(gòu)中存儲打印設置或參考(referto)DEVMODE結(jié)構(gòu),應用程序是轉(zhuǎn)變DEVMODE結(jié)構(gòu)的根源。實際上,當打印設置存儲在DEVMODE結(jié)構(gòu)時,應用程序設置安全的內(nèi)存空間,通過Windows型操作系統(tǒng)的方式,向UI驅(qū)動提供DEVMODE結(jié)構(gòu),并且,在DEVMODE結(jié)構(gòu)中設置數(shù)據(jù)。在參考DEVMODE結(jié)構(gòu)的情況下,應用程序通過Windows型操作系統(tǒng)的方式執(zhí)行打印,顯卡驅(qū)動參考DEVMODE結(jié)構(gòu)中的數(shù)據(jù)。因此,當應用程序不刪除DEVMODE結(jié)構(gòu)的情況下,用戶初始設置的打印條件保留在DEVMODE結(jié)構(gòu)中。所以,這存在DEVMODE結(jié)構(gòu)中的文件被轉(zhuǎn)移給其他用戶的風險。盡管大部分的應用程序在打印進程完成后刪除DEVMODE結(jié)構(gòu),但是仍然有一些應用程序即便在打印進程完成后,也不刪除DEVMODE結(jié)構(gòu)。DEVMODE結(jié)構(gòu)中,這些保留在DEVMODE結(jié)構(gòu)中的個人數(shù)據(jù)可能會被傳送至預期之外的用戶。這就導致安全性的降低。因此,有這樣的打印機驅(qū)動,他們不在DEVMODE結(jié)構(gòu)中存儲個人數(shù)據(jù)。在使用打印機驅(qū)動執(zhí)行打印中,Windows型操作系統(tǒng)中存在兩種類型的打印體系結(jié)構(gòu)。一種是RAW假脫機類型(spooltype),另一種是EMF假脫機類型。當使用RAW假脫機類型進行打印時,應用程序?qū)⒋蛴C驅(qū)動獲得的文檔數(shù)據(jù)轉(zhuǎn)換為打印機(應用程序進程)能夠理解的RAW數(shù)據(jù)。從用戶角度來講,在打印進程完成后,用戶才能操作應用程序。當使用EMF假脫機類型進行打印時,應用程序?qū)⑼ㄟ^Windows型操作系統(tǒng)獲取的文檔數(shù)據(jù)轉(zhuǎn)換為EMF數(shù)據(jù)(其為打印機不相關(guān)聯(lián)的數(shù)據(jù))(應用進程),并假脫機(spool)EMF數(shù)據(jù)(假脫機進程)。然后,打印機驅(qū)動將假脫機的EMF數(shù)據(jù)轉(zhuǎn)換為打印機能夠理解的RAW數(shù)據(jù)。從用戶角度來講,用戶能在文檔數(shù)據(jù)轉(zhuǎn)換為EMF數(shù)據(jù)后,操作應用程序。以上所述的兩種體系結(jié)構(gòu)能夠提供DDI實現(xiàn)方式,這種DDI實現(xiàn)方式允許在打印開始后,由打印設置界面顯示打印設置。5、指向和打印接下來要描述的是,在打印開始后的打印設置與打印機驅(qū)動或PC-FAX驅(qū)動的安裝方式之間的關(guān)系。在Windows型操作系統(tǒng)打印機驅(qū)動中,有一種稱為“指向和打印(Point&Print)”的安裝方式。圖7為描述指向和打印方式的系統(tǒng)實例的示意圖。在圖7所示的系統(tǒng)中,打印機、服務器端PC和客戶端PC連接至網(wǎng)絡。在服務器端PC和客戶端PC中安裝Windows型操作系統(tǒng)。服務器端PC安裝的Windows型操作系統(tǒng)為服務器專用的操作系統(tǒng)。通過服務器端PC作為打印服務器的方式,客戶端PC請求打印機執(zhí)行打印。在這樣的系統(tǒng)中,客戶端PC和服務器端PC安裝有同樣的打印機驅(qū)動。如此,導致這樣的問題,為網(wǎng)絡中的每個客戶端PC安裝打印機驅(qū)動,會占用管理者等的大量時間和工作量。指向和打印是通過允許客戶端PC從服務器端PC下載并安裝打印驅(qū)動來解決上述問題的方法。指向和打印為包含在標準Windows型操作系統(tǒng)的功能。在使用指向和打印的打印進程中,共同存在RAW假脫機類型和EMF假脫機類型。打印體系結(jié)構(gòu)的類型為EMF假脫機類型時,用戶可決定渲染進程(由渲染驅(qū)動執(zhí)行的進程)由客戶端PC執(zhí)行還是由服務器端PC執(zhí)行??蛻舳薖C執(zhí)行的渲染進程是指“客戶端的渲染”,而服務器端PC執(zhí)行的渲染進程是指“服務器端的渲染”6、64位操作系統(tǒng)在很多用戶使用的客戶端PC安裝有常規(guī)的32位操作系統(tǒng)的情況下,64位操作系統(tǒng)的使用已開始推廣。作為一個原則,64位操作系統(tǒng)僅執(zhí)行64位的應用程序。盡管如此,Windows型操作系統(tǒng)提供一種方案(是指WOW64(即WindowsONWindows64)),以允許運行已售出和分配的32位應用程序。然而,與應用程序不同的是,在64位操作系統(tǒng)中,生成64位的打印機驅(qū)動。因此,在客戶端PC中安裝64位的打印機驅(qū)動。當32位應用程序與WOW64一同運行時,可通過以下方式進行打印:·splwow64.exe作為WOW64運行·通過splwow64.exe將渲染指令從32位應用程序通知給64位打印機驅(qū)動。在Windows型操作系統(tǒng)中,存在這樣一種方案,安裝“替代驅(qū)動”以共享打印機(指向和打?。?。在這種系統(tǒng)中,安裝在服務器上的打印機驅(qū)動也安裝在客戶端PC上。與打印機兼容的打印機驅(qū)動未安裝于客戶端PC的情況下,客戶端PC安裝有合適的打印機驅(qū)動。這種情況下,32位的打印機驅(qū)動能夠在64位的操作系統(tǒng)中得以注冊。但是,以上所述的常規(guī)技術(shù)存在以下的難題:A、使用擴展I/F的情況甚至在使用擴展I/F情況下,也存在打印設置無法存儲的情況。如圖3所示,當應用程序通過擴展I/F(由打印驅(qū)動進行擴展的)改變打印設置時,應用程序有必要執(zhí)行這樣的進程,即:將DEVMODE結(jié)構(gòu)輸入至打印機驅(qū)動的擴展I/F中,在改變打印設置后接收輸出的DEVMODE結(jié)構(gòu),并且,在開始打印時,將接收到的DEVMODE結(jié)構(gòu)傳送至渲染驅(qū)動。換句話說,當使用擴展I/F,并且打印設置存儲在DEVMODE結(jié)構(gòu)以外的位置處時,打印機驅(qū)動無法通過擴展I/F獲取打印設置。因此,必須將所有的打印設置安置在DEVMODE結(jié)構(gòu)中。相應地,當打印機驅(qū)動關(guān)聯(lián)個人數(shù)據(jù)時,或在指示開始打印后,打印機驅(qū)動確定/改變打印設置時,可能很難適當?shù)貓?zhí)行打印設置。在這些情況下,打印機驅(qū)動可能無法在DEVMODE結(jié)構(gòu)中存儲所有的打印設置(設置條目)。因此,存在這樣一種情況,即便擴展I/F增設至UI驅(qū)動中,但仍然不能存儲打印設置。B、將打印設置臨時存儲在DEVMODE結(jié)構(gòu)之外的位置處的情況鑒于以上所述,例如,存在這樣一種打印機驅(qū)動,其將打印設置輸出至文件夾、地址薄或共享內(nèi)存空間。圖8為描述一種打印設置存儲方式實例的示意圖,其中,通過打印機驅(qū)動的擴展I/F,將該打印設置存儲在DEVMODE結(jié)構(gòu)之外的位置處。在圖8中,部分或全部的打印設置存儲在稱為“設置存儲區(qū)域”的空間中。根據(jù)圖8所示的方式,對沒有存儲在DEVMODE結(jié)構(gòu)中的打印設置進行存儲成為可能,從而解決上述條目A中的難題。然而,不使用DEVMODE結(jié)構(gòu),難題發(fā)生在下面的三種實例中。這三種實例包括:實例一(使用EMF假脫機時的打印序列實例)、實例二(使用安裝有指向和打印的打印機驅(qū)動時的打印序列實例)、實例三(使用64位操作系統(tǒng)時的實例)。1、實例一使用DEVMODE結(jié)構(gòu)的方法能夠在RAW假脫機期間執(zhí)行,該方法在打印期間使用DDI調(diào)用序列。然而,在使用不同的假脫機類型的情況下,DDI調(diào)用序列(由Windows型操作系統(tǒng)調(diào)用)發(fā)生改變。EMF假脫機包括:將來自于應用程序的文檔數(shù)據(jù)轉(zhuǎn)換為EMF數(shù)據(jù)的進程,以及,將EMF數(shù)據(jù)轉(zhuǎn)換為打印機能理解的渲染數(shù)據(jù)的進程。因此,在Windows型操作系統(tǒng)內(nèi)部,執(zhí)行兩次打印進程序列。然而,對于將文檔數(shù)據(jù)轉(zhuǎn)換為EMF數(shù)據(jù)的進程以及將EMF數(shù)據(jù)轉(zhuǎn)換為打印機能理解的渲染數(shù)據(jù)(RAW數(shù)據(jù))的進程,執(zhí)行兩次的打印進程序列使用不同的進程來完成。在如Windows型操作系統(tǒng)的系統(tǒng)中,資源的可訪問性由進程的授權(quán)決定(如,系統(tǒng)授權(quán)和系統(tǒng)授權(quán)之外的授權(quán))。所以,根據(jù)存儲打印設置的文件夾或地址薄的位置,當打印機翻譯打印數(shù)據(jù)時,由擴展I/F設置的打印設置可能從所存儲的位置獲取不到。進一步地,使用新近的Windows型操作系統(tǒng)時,從安全角度來講,如果授權(quán)不同的話,訪問可能被徹底拒絕。2、實例二使用擴展I/F的方法,能夠通過將打印機驅(qū)動安裝至本地環(huán)境中的用戶的PC的方式來執(zhí)行。然而,通過使用上述指向和打印的方式安裝打印機驅(qū)動時,會出現(xiàn)在不同位置(在服務器端渲染時)運行I/F驅(qū)動和渲染驅(qū)動的情況。在客戶端渲染時,UI驅(qū)動和渲染驅(qū)動均在客戶端PC上運行。但是,在服務器端渲染時,UI驅(qū)動運行在客戶端PC上,而渲染驅(qū)動運行在服務器端PC上。在服務器端渲染時,由于運行的PC彼此之間物理上各不相同,因此打印機驅(qū)動,無法獲取通過打印機驅(qū)動的擴展I/F的方式臨時存儲在設置存儲區(qū)域(例如,文件夾、地址薄)的打印設置。3、實例三如上所述,WOW64為Windows型操作系統(tǒng)提供的方案,僅在執(zhí)行打印時,運行sp1wow64.exe。由于Windows型操作系統(tǒng)不支持32位應用程序訪問64位擴展I/F,所以不能運行sp1wow64.exe。因此,32位應用程序不能使用具有64位擴展I/F的打印機驅(qū)動。圖9為描述使用擴展I/F時是否能傳遞打印設置的實例的示意圖。圖9示出了傳遞打印設置是困難的,如果:i)使用EMF假脫機,安裝環(huán)境為本地;ii)使用EMF假脫機,安裝環(huán)境為指向與打印,并且渲染位置為服務器;iii)在64位的操作系統(tǒng)中運行32位的應用程序。

技術(shù)實現(xiàn)要素:
本發(fā)明可提供一種基于打印設置條件的數(shù)據(jù)處理裝置,實質(zhì)性地消除一個或多個由相關(guān)技術(shù)的缺點或局限所引發(fā)的問題。本發(fā)明的特征和優(yōu)勢在下面的敘述中進行說明,并且在結(jié)合敘述和附圖使其中一部分變得明顯,或者,根據(jù)本發(fā)明的敘述提供的教導,實踐本發(fā)明而知曉。本發(fā)明的主題或特征及優(yōu)勢可從基于打印設置條件的處理數(shù)據(jù)的裝置或計算機可讀記錄介質(zhì)中實現(xiàn)或獲得。特別地,在說明書中指出完整、清晰、簡潔、準確的術(shù)語,使在本領(lǐng)域的普通技術(shù)人員能夠?qū)嵺`本發(fā)明。為實現(xiàn)本發(fā)明的這些及其他優(yōu)勢,根據(jù)本發(fā)明的目的,如此處所述的實施和大體描述,本發(fā)明的實施方式提供一種數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括:設置接受單元,配置為通過使用基本程序通過第一程序接受第一打印設置條件;圖像處理單元,配置為通過使用所述基本程序獲取來自應用程序的文檔數(shù)據(jù),并將所述文檔數(shù)據(jù)轉(zhuǎn)換為打印數(shù)據(jù);接口,配置為在不使用所述基本程序的情況下通過所述第一程序接受來自應用程序的第二打印設置條件,并通過所述第一程序輸出所述第二打印設置條件至第三程序,所述第三程序能夠處理打印數(shù)據(jù);其中,所述圖像處理單元配置為:根據(jù)由所述第一程序接受的所述第一打印設置條件和由第二程序接受的所述第二打印設置條件中的至少一個,通過所述第二程序?qū)⑺鑫臋n數(shù)據(jù)轉(zhuǎn)換為打印數(shù)據(jù)。在結(jié)合附圖及隨后的詳細敘述中,本發(fā)明的其他主題、特征和優(yōu)勢會變得更為明顯。附圖說明圖1為表示DEVMODE結(jié)構(gòu)實例的示意圖;圖2為表示參考DEVMODE結(jié)構(gòu)的實例的示意圖;圖3為表示擴展I/F、應用程序、DEVMODE結(jié)構(gòu)的實例的示意圖;圖4為表示重新顯示設置界面的實例的示意圖;圖5為表示PC-FAX驅(qū)動的地址確認界面的實例的示意圖;圖6為表示可能存儲在DEVMODE結(jié)構(gòu)之外的打印設置的實例的示意圖;圖7為表示指向和打印方法的描述系統(tǒng)的實例的示意圖;圖8為表示打印設置的存儲方式的實例的示意圖,其中,打印設置通過打印機驅(qū)動的擴展I/F的方式存儲在DEVMODE結(jié)構(gòu)之外的位置處;圖9為表示使用擴展I/F時傳遞打印設置是否可能的實例的示意圖;圖10為表示根據(jù)本發(fā)明實施方式的打印機驅(qū)動的特征的示意圖;圖11A為表示根據(jù)本發(fā)明實施方式的打印系統(tǒng)的配置的示意圖;圖11B為表示根據(jù)本發(fā)明實施方式的客戶端PC的硬件配置的示意圖;圖12為表示根據(jù)本發(fā)明實施方式的客戶端PC和打印機驅(qū)動的功能或功能元件的方框圖;圖13為表示根據(jù)本發(fā)明另一實施方式的客戶端PC和打印機驅(qū)動的功能或功能元件的方框圖;圖14為表示根據(jù)本發(fā)明實施方式的打印機驅(qū)動的擴展I/F單元、應用程序和操作系統(tǒng)之間關(guān)系的示意圖;圖15為表示根據(jù)本發(fā)明實施方式的Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)的渲染驅(qū)動和UI驅(qū)動的示意圖;圖16為表示根據(jù)本發(fā)明實施方式的語言監(jiān)視器的操作的示意圖圖17為表示根據(jù)本發(fā)明實施方式的將打印設置(打印條件)安置在擴展I/F單元的實例的示意圖;圖18為表示根據(jù)本發(fā)明實施方式的將打印設置安置在擴展I/F單元的實例的示意圖;圖19A為表示根據(jù)本發(fā)明實施方式的“SendRecvvBidiDataFromPort()”的格式實例的示意圖;圖19B為表示根據(jù)本發(fā)明實施方式的“PBIDI_REQUEST_CONTAINER”結(jié)構(gòu)的格式實例的示意圖;圖19C為表示根據(jù)本發(fā)明實施方式的“BIDI_REQUEST_DATA”結(jié)構(gòu)的格式實例的示意圖;圖20為表示根據(jù)本發(fā)明實施方式的應用程序31(31A)通過擴展I/F單元將打?。▊髡姘l(fā)送)條件設置在UI驅(qū)動的順序圖;圖21為表示根據(jù)本發(fā)明實施方式的將打印設置安置于擴展I/F單元的實例的示意圖;圖22-24為表示根據(jù)本發(fā)明實施方式的批量發(fā)送操作的示意圖;圖25為表示根據(jù)本發(fā)明實施方式的關(guān)于多個邏輯打印機的打印設置的運行實例的示意圖圖26為表示根據(jù)本發(fā)明實施方式的具有指向和打印的打印環(huán)境的配置的示意圖;圖27為表示根據(jù)本發(fā)明實施方式的在指向和打印環(huán)境中語言監(jiān)視器的運行實例的示意圖;圖28為表示根據(jù)本發(fā)明實施方式的語言監(jiān)視器的運行實例的示意圖,這里,32位的應用程序運行于64位的操作系統(tǒng)。具體實施方式這里,結(jié)合附圖對本發(fā)明的示例性實施方式進行說明:圖10示出了根據(jù)本發(fā)明實施方式下述的打印機驅(qū)動30的特征。(1)下述打印機驅(qū)動30的UI驅(qū)動38為應用程序提供獨特的擴展I/F單元382。擴展I/F單元382為除Windows型OS(操作系統(tǒng))定義的DDI(設備驅(qū)動接口)之外的接口。UI驅(qū)動38能夠接受(接收)通過擴展I/F單元382的方式改變的打印設置。(2)UI驅(qū)動38將由擴展I/F單元382接受的打印設置存儲在語言監(jiān)視器32中。由應用程序通過UI驅(qū)動38的方式設置打印設置時,打印設置存儲在DEVMODE結(jié)構(gòu)中。但是,存儲在例如語言監(jiān)視器32中的打印設置和存儲在DEVMODE結(jié)構(gòu)中的打印設置,此后統(tǒng)稱為“打印設置”。也就是說,不管打印設置的存儲位置,均使用術(shù)語“打印設置”。語言監(jiān)視器32能針對打印機驅(qū)動30的每個邏輯打印機存儲打印設置。語言監(jiān)視器32為API(應用程序編程接口)類型。因此,在以下記載的實施方式中,直接從UI驅(qū)動38等此類裝置向語言監(jiān)視器32設置打印條件,是指UI驅(qū)動38等諸如此類裝置通過API的方式設置打印條件。(3)當應用程序31輸出執(zhí)行打?。ù蛴?zhí)行指令)的指令給Windows型操作系統(tǒng)時,打印機驅(qū)動30的渲染驅(qū)動39從語言監(jiān)視器32中讀取打印設置。在DEVMODE結(jié)構(gòu)中注冊打印設置時,渲染驅(qū)動39也從DEVMODE結(jié)構(gòu)中讀取打印設置。(4)根據(jù)獲取的打印設置,渲染驅(qū)動39生成給打印機(打印機任務語言(PJL))的命令,或生成將在打印機打印的打印數(shù)據(jù)(打印機描述語言(PDL))。由于應用程序31通過擴展I/F單元382設置打印設置,因此,無需在DEVMODE結(jié)構(gòu)中存儲高度機密數(shù)據(jù)。通過使用語言監(jiān)視器32,不管打印系統(tǒng)結(jié)構(gòu)采用RAW假脫機還是EMF假脫機,渲染驅(qū)動39都能夠獲取打印設置。也就是說,例如,能夠預防因使用不同進程而導致的拒絕訪問,這是因為,語言監(jiān)視器32為Windows型操作系統(tǒng)的功能的一部分。進一步地,即使在服務器端執(zhí)行渲染,渲染驅(qū)動39能訪問語言監(jiān)視器32,這是因為,如下所述,語言監(jiān)視器32為由Windows型操作系統(tǒng)支持的功能。因此,甚至在打印機驅(qū)動30通過指向與打印的方式安裝于下述的客戶端PC中時,渲染驅(qū)動39能夠獲取打印設置。配置圖11A為了根據(jù)本發(fā)明實施方式的打印系統(tǒng)400的配置的示意圖。圖11B為根據(jù)本發(fā)明實施方式的數(shù)據(jù)處理裝置(本實施方式中為客戶端PC)100的硬件配置的示意圖。在圖11A和圖11B中,客戶端PC100和圖像形成裝置(本實施方式中,打印機)200通過網(wǎng)絡300相互連接。本實施方式中,打印機200可為一臺或多臺打印機。在客戶端PC100接受來自用戶的操作時,應用程序31請求使用如GDI、DDI和打印機驅(qū)動30來執(zhí)行打印。打印機驅(qū)動30通過執(zhí)行下述的進程生成打印數(shù)據(jù),并將生成的打印數(shù)據(jù)傳輸給打印機200。只要打印機200包含圖像形成功能,打印機200的名稱不限于打印機,也可以為如復印機(copymachine)、復制機(duplicatingmachine)或傳真機(圖像傳輸裝置)。客戶端PC100和打印機200可直接相互連接,例如,通過USB(通用串行總線)電纜。客戶端PC100通過總線連接至CPU11、ROM(只讀存儲器)12、RAM(隨機訪問存儲器)13、擴展I/F14、通信設備15、輸出設備16、顯示控制單元17和存儲設備18。CPU11從存儲設備18中讀取操作系統(tǒng)10、應用程序31和打印機驅(qū)動30,并將RAM103作為運行空間,運行操作系統(tǒng)10、應用程序31和打印機驅(qū)動30。只要應用程序31能請求打印機200進行打印,應用程序31可為任意類型的軟件或程序。例如,應用程序31可為文檔生成軟件、瀏覽器如軟件或展示文檔生成軟件。進一步地,應用程序31可為任意類型的軟件或程序,只要應用程序31能夠生成、顯示并管理文檔數(shù)據(jù)(打印目標),使文檔數(shù)據(jù)能夠被打印出來。文檔數(shù)據(jù)(打印目標)并限于包含字符(字母)、符號或數(shù)字的數(shù)據(jù),還可以為包括圖像或照片的數(shù)據(jù)。RAM13為運行空間(主存儲內(nèi)存),可在其中臨時存儲必要的數(shù)據(jù)。例如,ROM12中存儲有BIOS、初始設置數(shù)據(jù)以及啟動程序。擴展I/F14為設置有電纜(USB電纜)或便攜記錄介質(zhì)20的接口。通信設備15根據(jù)CPU11的指令,將數(shù)據(jù)包(本實施方式中,打印數(shù)據(jù))發(fā)送給打印機200。例如,通信設備15可為LAN(本地局域網(wǎng)絡)卡或以太網(wǎng)(注冊商標)卡。輸入設備16為用戶接口,從用戶那接受各種操作(指令)。例如,輸入設備16可為鍵盤、鼠標、觸摸板或自動輸入設備。顯示控制單元17根據(jù)應用程序31指定的屏幕數(shù)據(jù),通過控制如分辨率或色彩數(shù),控制顯示器19的渲染。顯示器19可為包括如液晶顯示器或有機電致發(fā)光顯示器的FPD(平板顯示器)。存儲設備18為存儲有操作系統(tǒng)10、打印機驅(qū)動30和應用程序31的非易失性存儲器(non-volatilememory)。例如,存儲設備18可為HDD(硬盤驅(qū)動)或閃存。操作系統(tǒng)10優(yōu)選為Windows型操作系統(tǒng)。但是,也可以使用其他具有與Windows型操作系統(tǒng)實質(zhì)性相同功能的操作系統(tǒng)。例如,客戶端PC使用的Windows型操作系統(tǒng)可為WindowsNT、Windows98、Windows2000、WindowsME、WindowsXP、WindowsVista、Windows7、Windows7以及Windows型操作系統(tǒng)的其他后續(xù)版本。例如,服務器端使用的Windows型操作系統(tǒng)可為Windows2000Server、Windows2003Server、Windows2008Server以及Windows型操作系統(tǒng)的其他后續(xù)版本。例如,存儲介質(zhì)20為如SD(安全數(shù)字)卡或USB內(nèi)存的非易失性存儲器。打印機驅(qū)動30可靜態(tài)分布記錄于記錄介質(zhì)20或從服務器(未示出)下載。在使用指向和打印時,打印機驅(qū)動30從服務器端PC(圖11中未示出)下載。圖12為顯示客戶端PC100和打印機驅(qū)動30的各功能或功能元件的示意圖??蛻舳薖C100包括由Windows型操作系統(tǒng)運行的應用程序30、打印機驅(qū)動30、語言監(jiān)視器32以及通信單元40。由于語言監(jiān)視器32為Windows型操作系統(tǒng)提供的功能,因此,廣義上來講,語言監(jiān)視器32可以看作是Windows型操作系統(tǒng)的一部分。盡管附圖中未示出,如GDI、spooler及打印機處理器等器件,也與Windows型操作系統(tǒng)一同安裝在客戶端PC100中。打印機驅(qū)動30包括UI驅(qū)動38和渲染驅(qū)動39。進一步地,UI驅(qū)動38包括顯示單元381和擴展I/F單元382。在用戶輸入文檔打印操作至應用程序31情況下,UI驅(qū)動38的顯示單元381在顯示器19上顯示打印設置界面(也稱為“打印對話框”)。用戶可通過操作打印設置界面設置打印條件,如“頁數(shù)”、“雙面打印”、“多頁合并打?。∟-upprinting)”、“圖書合并(bookbinding)”、“縮小/放大”。進一步地,顯示單元381可在用戶指示開始打印后顯示打印設置界面并接受打印設置的改變。打印設置存儲在稱為DEVMODE結(jié)構(gòu)(此后將其簡稱為DEVMODE)的數(shù)據(jù)表(數(shù)據(jù)結(jié)構(gòu))中。DEVMODE為成員可變的數(shù)據(jù)結(jié)構(gòu),定義這些可變值,是為了允許打印條件通常由運行在Windows型操作系統(tǒng)的各種打印機驅(qū)動30進行設置。進一步地,UI驅(qū)動38包括的擴展I/F單元382在無需Windows型操作系統(tǒng)介入的情況下,接受來自應用程序31的打印設置。一般來講,為了使應用程序31訪問UI驅(qū)動38,應用程序31調(diào)用GDI,并通過Windows型操作系統(tǒng)訪問UI驅(qū)動38。擴展I/F單元382為通向打印機驅(qū)動30的獨特接口,該打印機驅(qū)動30允許UI驅(qū)動38接受來自應用程序31(無需Windows型操作系統(tǒng)介入)的打印設置及在打印進程中的設置(如,批量傳輸設置)。渲染驅(qū)動39參考DEVMODE(在打印設置包含于該DEVMODE時)和打印設置(以及在打印設置被接受時,下述的操作設置),并根據(jù)打印設置通過將文檔數(shù)據(jù)(打印目標)轉(zhuǎn)換為打印數(shù)據(jù)的方式生成打印數(shù)據(jù)。語言監(jiān)視器32包括數(shù)據(jù)存儲單元321和通信單元322。在打印機驅(qū)動30向通信單元40傳輸打印數(shù)據(jù)時,通信單元322控制數(shù)據(jù)通信(發(fā)送/接收)。通信單元322控制客戶端PC100的語言監(jiān)視器32與通信單元40之間的數(shù)據(jù)通信。通信單元322通過通信單元40接收來自打印機200的消息。數(shù)據(jù)存儲單元321中存儲打印設置,打印機驅(qū)動30通過使用語言監(jiān)視器32的功能實現(xiàn)數(shù)據(jù)存儲單元321。因此,這不需要改變或基本不需要改變Windows型操作系統(tǒng)。需要注意的是,下面對數(shù)據(jù)存儲單元321進行詳細描述。客戶端PC100的通信單元40為與打印機驅(qū)動200通信的功能器件。通信單元40使用如TCP/IP協(xié)議。盡管圖12中在UI驅(qū)動38內(nèi)示出擴展I/F單元382,但只要擴展I/F單元382包含于打印機驅(qū)動30中,擴展I/F單元382也可以位于UI驅(qū)動38外部。因此,如圖13所示,擴展I/F單元382可從UI驅(qū)動38中分離(獨立)出來。圖14為示出打印機驅(qū)動30的擴展I/F單元382、應用程序31和操作系統(tǒng)(本實施方式中,Windows型操作系統(tǒng))10之間關(guān)系的示意圖。假設在UI驅(qū)動38不包括擴展I/F單元(諸如擴展I/F單元382)的情況下,應用程序31和打印機驅(qū)動(包括UI驅(qū)動38和渲染驅(qū)動39)30將一直通過操作系統(tǒng)10進行數(shù)據(jù)傳遞。然而,通過在打印機驅(qū)動30中設置擴展I/F單元382,能夠?qū)崿F(xiàn)應用程序31與打印機驅(qū)動30之間的直接數(shù)據(jù)傳遞。也就是說,應用程序31和打印機驅(qū)動30能夠在沒有操作系統(tǒng)10介入的情況下,進行數(shù)據(jù)傳遞。因此,應用程序31能夠直接向打印機驅(qū)動30中設置打印設置(打印條件)。圖15為示出根據(jù)本發(fā)明實施方式的Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)中的渲染驅(qū)動39和UI驅(qū)動38的示意圖。Windows型操作系統(tǒng)的GDI34通過向打印機驅(qū)動30制定DDI命令,調(diào)用打印機驅(qū)動30的UI驅(qū)動38和渲染驅(qū)動39。UI驅(qū)動38和渲染驅(qū)動39互相不直接通信。然而,由于DEVMODE在DDI(作為用于從Windows型操作系統(tǒng)調(diào)用打印機驅(qū)動的I/F)的參數(shù)中,UI驅(qū)動38和渲染驅(qū)動39均可參考DEVMODE。Windows型操作系統(tǒng)調(diào)用的UI驅(qū)動38接受來自用戶的打印設置,并將打印設置存儲在DEVMODE中。當開始準備打印時,DEVMODE從Windows型操作系統(tǒng)傳遞至渲染驅(qū)動39。也就是說,當開始準備打印時,通過與UI驅(qū)動38確定“打印設置”并通過與渲染驅(qū)動39接受“打印設置”,根據(jù)打印設置能夠生成打印命令或渲染數(shù)據(jù)。這是Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)的基本打印序列。因此,如果使用只遵從Windows型操作系統(tǒng)打印體系結(jié)構(gòu)的打印機驅(qū)動,渲染驅(qū)動39則無法參考沒有存儲在DEVMODE中的打印設置。但是,根據(jù)本發(fā)明實施方式的打印機驅(qū)動30,打印機驅(qū)動30能夠參考DEVMODE中的打印設置和為語言監(jiān)視器32設置的打印設置。圖16為示出根據(jù)本發(fā)明實施方式的語言監(jiān)視器32的運行示意圖。語言監(jiān)視器32接收從打印處理器41傳送的打印數(shù)據(jù),并將打印數(shù)據(jù)傳送給通信單元40(端口監(jiān)視器41和端口驅(qū)動43)。打印處理器41包括假脫機功能。端口監(jiān)視器42根據(jù)傳輸協(xié)議執(zhí)行進程,并將打印數(shù)據(jù)傳輸給端口驅(qū)動43。端口驅(qū)動43控制打印機200和客戶端PC100之間的連接接口(如,USB、NIC),并將打印數(shù)據(jù)傳送給打印機200。根據(jù)Windows型操作系統(tǒng),打印機驅(qū)動30能夠使用Windows型操作系統(tǒng)提供的語言監(jiān)視器32和制造商(打印機制造商、傳真機制造商)提供的語言監(jiān)視器32。根據(jù)本發(fā)明實施方式的語言監(jiān)視器32可包括商用的語言監(jiān)視器和制造商提供的語言監(jiān)視器。使用實例圖17為示出根據(jù)本發(fā)明實施方式的將打印設置(打印條件)向擴展I/F單元382設置的示意圖。應用程序31包括擴展I/F調(diào)用單元,用于調(diào)用擴展I/F單元382以及向UI驅(qū)動38設置打印設置。技術(shù)上來講,向UI驅(qū)動38設置的設置是傳輸設置。然而,本實施方式中,傳輸設置也稱為(refertoas)打印設置。由于擴展I/F制造商公開擴展I/F單元382的規(guī)范(API),第三方(即,除制造商之外的團體或個人)可制造擴展I/F調(diào)用單元311。進一步地,制造商可制造擴展I/F調(diào)用單元311或包括擴展I/F調(diào)用單元311的應用程序31,并提供制造的擴展I/F調(diào)用單元或應用程序31。應用程序31使用擴展I/F調(diào)用單元311調(diào)用打印機驅(qū)動30的擴展I/F單元382(在Windows型操作系統(tǒng)不介入的情況下),并將打印設置設置至擴展I/F單元382。如上所述,例如,沒有設置至DEVMODE中的數(shù)據(jù)可以是具有高機密性的數(shù)據(jù)。在圖17所示的實例中,從安全角度來講,用戶姓名(個人數(shù)據(jù))和密碼是不存儲在DEVMODE中的數(shù)據(jù)。UI驅(qū)動38通過擴展I/F單元382接收應用程序31設置的打印設置,并將接收的打印設置存儲在語言監(jiān)視器32中。在本進程中,使用被稱為“SendRecvvBidiDataFromPort()”的Windows型操作系統(tǒng)的API(應用程序編程接口)。下面會對“SendRecvvBidiDataFromPort()”進行詳細描述。通過Windows型操作系統(tǒng)10,將打印的執(zhí)行從應用程序31通知給渲染驅(qū)動39。由于打印設置已經(jīng)存儲在(注冊)在語言監(jiān)視器32中,因此不必在顯示器19上為UI驅(qū)動38顯示打印設置界面。通過執(zhí)行打印操作,將存儲在DEVMODE中的打印設置傳遞(以在DEVMODE中的存儲狀態(tài))至渲染驅(qū)動39。進一步地,渲染驅(qū)動39從語言監(jiān)視器32中獲取借助擴展I/F單元382設置的打印設置。然后,渲染驅(qū)動39生成打印機200能夠理解的打印數(shù)據(jù)。本實施方式中,除那些關(guān)于安全性之外的打印設置存儲在DEVMODE中,并通過Windows型操作系統(tǒng)以存儲在DEVMODE中狀態(tài)傳遞給渲染驅(qū)動39。可替換的是,所有打印設置通過擴展I/F單元382的方式,可存儲于語言監(jiān)視器382中。如圖17所示,圖17的實例中并沒有使用DEVMODE。圖18為示出根據(jù)本發(fā)明實施方式的向擴展I/F單元382設置打印設置的設置實例的示意圖。圖18示出設置應用程序31A,與用于生成文檔數(shù)據(jù)的應用程序31相互獨立。與圖17所示的應用程序31類似的是,設置應用程序31A包括擴展I/F單元311,擴展I/F單元311用于調(diào)用擴展I/F單元382單元以及向UI驅(qū)動38設置打印設置。本實施方式中,將要設置打印機驅(qū)動(PC-FAX)30的打印設置包括地址(指示傳真?zhèn)鬏斈繕说牡刂罚?、發(fā)送者數(shù)據(jù)(指示傳真?zhèn)鬏數(shù)陌l(fā)送者的數(shù)據(jù))。UI驅(qū)動38在語言監(jiān)視器32中存儲(注冊)打印設置。也就是說,設置應用程序31A為關(guān)于打印機驅(qū)動30的打印設置(即,設置打印條件)專用的應用程序。圖18中,應用程序A和應用程序B為生成文檔數(shù)據(jù)的應用程序31。在應用程序(應用程序A和應用程序B)31生成文檔數(shù)據(jù)之前,設置應用程序31A能夠執(zhí)行打印設置。在應用程序31指示打印的執(zhí)行情況下,渲染驅(qū)動39從語言監(jiān)視器32獲取打印設置,將打印設置轉(zhuǎn)換為打印機200能夠理解的數(shù)據(jù),并將轉(zhuǎn)換的數(shù)據(jù)傳輸至打印機200。為了執(zhí)行在擴展I/F單元382中的打印設置之外的目的,圖18所示的設置應用程序31可獨立于應用程序31而設置。在打印機驅(qū)動30設置有打印條件的情況下,設置應用程序31可獨立于應用程序31設立。在打印機驅(qū)動30設置有打印條件的情況下,設置應用程序31A可獨立于應用程序(應用程序A和應用程序B)31而設置,或者,與應用程序31(即,包括于圖17中所示的應用程序31)形成聯(lián)合體。將設置應用程序31獨立于應用程序(應用程序A和應用程序B)31設立的一個實例為:設置應用程序31為表格(form)打印應用程序。SendRecvvBidiDataFromPort()。圖19A為示出“SendRecvvBidiDataFromPort()”的格式實例示意圖?!癝endRecvvBidiDataFromPort()”函數(shù)為加載在語言監(jiān)視器32中的API。與打印機驅(qū)動30類似的是,語言監(jiān)視器32包括由Windows型操作系統(tǒng)確定的I/F?!癝endRecvvBidiDataFromPort()”函數(shù)為Windows型操作系統(tǒng)確定的I/F的一個實例?!癝endRecvvBidiDataFromPort()”函數(shù)支持應用程序31和打印機200之間的雙向通信以及應用程序31與假脫機器之間的雙向通信。在圖19A中,“hport”指示的是調(diào)用源模塊的端口的操控。進一步地,“dwAccessBit”指示的是由調(diào)用源模塊提供的存取屏蔽(ACCESS_MASK)結(jié)構(gòu)(其允許訪問打印機或打印服務器)。進一步地,“pAction”指示的是調(diào)用源模塊提供的請求行為?!皃ReqData”指示的是包含有請求數(shù)據(jù)的PBIDI_REQUEST_CONTAINER結(jié)構(gòu)的指針。進一步地,“ppResData”指示的是指向內(nèi)存空間的指針,該內(nèi)存空間用于接收包含有響應數(shù)據(jù)的PBIDI_REQUEST_CONTAINER結(jié)構(gòu)的地址。圖19B為“PBIDI_REQUEST_CONTAINER”結(jié)構(gòu)的格式實例示意圖。盡管圖19B中未示出,“PBIDI_RESPONSE_CONTAINER”的結(jié)構(gòu)與“PBIDI_REQUEST_CONTAINER”的結(jié)構(gòu)實質(zhì)相同?!癙BIDI_REQUEST_CONTAINER”的結(jié)構(gòu)為用于將“bidirequests”請求列表存儲于其中的容器。Windows型操作系統(tǒng)提供“bidirequests”請求和響應方案,該方案包括:含有成對請求與響應的數(shù)據(jù)庫的方案,其中,請求與響應用于打印機與應用程序之間的雙向通信。在圖19B中,“version”指示方案如“1”的版本。進一步地,“Flags”指示由系統(tǒng)(Windows型操作系統(tǒng))保留的標示(flag)的集合。“Flags”的值可為0。進一步地,“Count”指示“aDatamember”的“bidirequests”數(shù)量。進一步地,“aData[]”指示“BIDI_REQUEST_DATA”的陣列(排列)。陣列的每個元素包括單一的“bidirequest”。圖19C為BIDI_REQUEST_DATA結(jié)構(gòu)的格式實例的示意圖。BIDI_REQUEST_DATA結(jié)構(gòu)包括單一的“bidirequest”。在圖19C中,“dwReqNumber”指示請求的索引?!癲wReqNumber”用于通過針對于響應的多請求來匹配一個操作的請求。進一步地,“pSchema”指示指向方案字符串的第一個位的內(nèi)存位置的指針。進一步地,“data”指代配合方案的BIDI_DATA?!癝endRecvvBidiDataFromPort()”函數(shù)用于在語言監(jiān)視器32中設置條件,或者為語言監(jiān)視器32制作請求(詢問)。打印機驅(qū)動30通過“SendRecvvBidiDataFromPort()”調(diào)用語言監(jiān)視器32,以便于語言監(jiān)視器32用作存儲空間。換句話說,語言監(jiān)視器32及“SendRecvvBidiDataFromPort()”函數(shù)提供數(shù)據(jù)存儲單元321。如上所述,語言監(jiān)視器32并不必由制造商開發(fā)。標準的語言監(jiān)視器32能夠與Windows型操作系統(tǒng)共同使用。在語言監(jiān)視器32不是由制造商開發(fā)的情況下,運行標準的語言監(jiān)視器32。在制造商開發(fā)與預定的I/F對應的語言監(jiān)視器32的情況下,語言監(jiān)視器32增設有額外的功能。在本實施方式中,打印機驅(qū)動30或類似部件能夠通過I/F如“SendRecvBidiDataFromPort()”與語言監(jiān)視器32交換數(shù)據(jù)。更為具體地來講,將“JOBID”設置于“IBidiRequest”(COM接口的實例)的“SetSchema()”中,以及將打印設置設置“IBidiRequest”的“SetInputData”。在UI驅(qū)動38設置IBidiRequest對象,并調(diào)用該SendRecv(),假脫機調(diào)用SendRecvBidiDataFromPort()并將打印設置設置預定參數(shù)(如,第三參數(shù)、第四參數(shù))中。由此,打印設置設置在語言監(jiān)視器32中。例如,在使用渲染驅(qū)動39讀取打印設置情況下,打印機驅(qū)動30設置IBidiRequest對象,并調(diào)用SendRecv()。因此,打印設置存儲于IBidiRequest中。相應地,渲染驅(qū)動39調(diào)用IBidiReqeust的GetOutputData()時,渲染驅(qū)動39能夠接收存儲在IBidiRequest中的打印設置。通過擴展I/F單元382的方式,設置打?。▊髡?zhèn)鬏敚l件的操作圖20為示出了根據(jù)本發(fā)明實施方式應用程序31(31A)通過擴展I/F單元382將打?。▊髡?zhèn)鬏敚l件設置UI驅(qū)動38的順序圖。由于在設置打?。▊髡?zhèn)鬏敚l件的階段執(zhí)行這個操作,所以設置應用程序31A可獨立于應用程序31或包含于應用程序31。步驟S1:應用程序31向打印機驅(qū)動30的擴展I/F單元382指定打印設置。與UI驅(qū)動38相同的方式,應用程序31能夠顯示打印設置界面,并接受來自用戶的打印設置。步驟S2:應用程序31發(fā)送通知給打印機驅(qū)動30的擴展I/F單元382,指示所指定的打印設置需要被確認(確定)。步驟S2.1:打印機驅(qū)動30的擴展I/F單元382指示語言監(jiān)視器32將所指定的打印設置存儲在其中。更確切地講,打印設置存儲在“SendRecvBidiDataFromPort()”函數(shù)的預定參數(shù)中。方便起見,圖20的順序圖示出:在步驟S2.1中,擴展I/F單元382訪問語言監(jiān)視器32。也可通過顯示UI驅(qū)動38訪問語言監(jiān)視器32來示出步驟S2.1。步驟S3:在步驟S3或之后,應用程序31主要執(zhí)行典型的打印操作。第一,應用程序31指示GDI開始打印進程的準備。更具體來講,應用程序31使用CreateDC()函數(shù)將打印設置轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。需要注意的是,例如,在傳輸進程完成后,應用程序31指示GDI開始打印進程的準備。步驟S3.1:GDI34通過調(diào)用與API對應的DDI,發(fā)送打印設置的打印進程給渲染驅(qū)動39。從應用程序31傳遞至GDI34的打印設置,以“CreateDC”(DEVMODE)的形式,存儲于“DrvEnablePDEV()”的參數(shù)中,并通知給渲染驅(qū)動39。那么,渲染驅(qū)動39能夠參考打印設置,直到任務完成(即,直到設備描述表(devicecontext)清除)。步驟S4:當GDI34通知應用程序31打印進程的準備完成時,應用程序31指示GDI34啟動打印進程。更確切地講,例如,應用程序31通過使用“StartDoc()”將“DocINFO”轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。步驟S4.1:GDI34指示渲染驅(qū)動39啟動打印進程。更確切地講,GDI34發(fā)送“DrvStartDoc()”函數(shù)給渲染驅(qū)動39。步驟S4.1.1:通過“DrvStartDoc()”調(diào)用打印機驅(qū)動30的渲染驅(qū)動39時,渲染驅(qū)動39詢問是否存在與應用程序31設置的打印設置相對應的打印設置。更確切地講,渲染驅(qū)動39為SendRecvBidiDataFromPort()的參數(shù)設置查詢指示值,并將“SendRecvBidiDataFromPort()”的參數(shù)發(fā)送給語言監(jiān)視器32。當由應用程序31設置的打印設置存在于語言監(jiān)視器32中時,語言監(jiān)視器32將該設置設置“SendRecvBidiDataFromPort()”,并將“SendRecvBidiDataFromPort()”發(fā)送給渲染驅(qū)動39。打印機驅(qū)動30的渲染驅(qū)動39根據(jù)從語言監(jiān)視器32獲得的打印設置(以及,當打印設置存儲在DEVMODE中時,還根據(jù)DEVMODE),生成打印數(shù)據(jù),并將生成的打印數(shù)據(jù)發(fā)送給打印機200。步驟S5:當GDI34通知應用程序31完成打印進程的啟動時,應用程序31以頁為單位(即逐頁)重復下面的進程:第一,應用程序31指示GDI34接受新的頁面。更確切地講,應用程序31將“StartPage()”發(fā)送給GDI34。步驟S5.1:GDI34將“DrvStartPage()”發(fā)送給渲染驅(qū)動39。然后,GDI34將從應用程序31獲得的渲染函數(shù)(文檔數(shù)據(jù))發(fā)送給渲染驅(qū)動39。然后,渲染驅(qū)動39根據(jù)所獲取的打印設置將文檔數(shù)據(jù)轉(zhuǎn)換為打印數(shù)據(jù)。然后,渲染驅(qū)動39將打印數(shù)據(jù)發(fā)送給打印機200。步驟S6:當渲染驅(qū)動39通知應用程序31一頁渲染進程(單頁渲染(asinglepageworthofrendering))完成時,應用程序31通知GDI34一頁寫入(單頁寫入(asinglepageworthofwriting))完成。更確切地講,應用程序31發(fā)送“EndPage()”給GDI34。步驟S7:當所有頁的渲染進程完成時,應用程序31通知GDI34打印任務完成。更具體地來講,應用程序31發(fā)送“EndDoc()”給GDI34。步驟S8:應用程序31將“DeleteDC()”通知給GDI34,并清除設備描述表。在本階段,如果應用程序31指示再次啟動打印進程,渲染驅(qū)動39使用與前次打印進程相同的打印設置,生成打印數(shù)據(jù),這是因為,語言監(jiān)視器32的打印設置尚未改動。步驟S9:在完成打印進程之后,應用程序31通知打印機驅(qū)動30的擴展I/F單元382取消打印設置。步驟S10:打印機驅(qū)動30的擴展I/F單元382將指示取消的值設置為“SendRecvBidiDataFromPort()”的參數(shù)。然后,擴展I/F單元382(UI驅(qū)動38)指示語言監(jiān)視器32取消(清空)打印設置。圖20所示的步驟S2.1中,打印設置(打印條件)通過一次通信來進行設置。但打印設置也可通過多次通信來進行設置。類似地,在步驟S4.1.1中,不僅可通過一次通信讀取數(shù)據(jù),還可以通過多次通信讀取數(shù)據(jù)。進一步地,步驟S2.1中的進程可在步驟S1中執(zhí)行。如圖20所示,當調(diào)用“DrvStartDoc()”時,打印機驅(qū)動30的渲染驅(qū)動39從語言監(jiān)視器32中獲取擴展I/F單元382的設置數(shù)據(jù)(打印設置)。如上所述,對于RAW假脫機和EMF假脫機,Windows型操作系統(tǒng)的操作順序和進程是不同的。然而,在RAW假脫機和EMF假脫機中,即便打印機驅(qū)動的操作不同,但訪問語言監(jiān)視器32的方式是相同的。因此,設計渲染驅(qū)動39,以便在“DrvStartDoc()”運行時,語言監(jiān)視器32能夠獲取打印設置。也就是說,設計打印機驅(qū)動30的進程不必考慮假脫機類型。這樣,通過在相同DDI執(zhí)行相同進程,不管假脫機的類型差別,均能使用語言監(jiān)視器32。如上所述,參照圖20,當調(diào)用“DrvStartDoc()”時,打印機驅(qū)動39從語言監(jiān)視器32中獲取打印設置。但是,打印機驅(qū)動39也可在其他時刻獲取打印設置,只要該時刻在將要傳輸至打印機200的打印數(shù)據(jù)生成之前。在設置打印設置(操作設置)之后的傳輸操作當用戶通過運行設置應用程序31A,來設置打印設置(打印條件)的情況下,用戶還能設置操作設置(操作條件)。操作設置為包含于打印設置中的項目。本實施方式中,操作設置為指定打印機200執(zhí)行操作或進程的設置(條件)。圖21為示出向擴展I/F單元382設置打印設置的實例的示意圖。在設置應用程序31A為打印條件和對UI驅(qū)動38的操作方面,圖21所示的實例與圖18所述的實例不同。圖21所示實例的其他方面(例如,包含于UI驅(qū)動38的擴展I/F單元382)與圖17所示的基本相同。圖21所示的設置應用程序31A設置如下的操作條件:操作設置:批量傳輸設置在從打印機執(zhí)行用于發(fā)送多個文檔的傳真?zhèn)鬏斍闆r下,應用程序每指示執(zhí)行一次打印,就收取一次接通費(connectionfee)。因此,通過一次連通后傳輸所有文檔的數(shù)據(jù),而不是重復進行連通和斷開的方式,能夠節(jié)省連通費。例如,“批量傳輸設置”是用于節(jié)省連通費的操作設置。批量傳輸設置是一種指示渲染驅(qū)動39成批執(zhí)行來自多個應用程序的文檔(任務)的數(shù)據(jù)的傳輸操作設置。在圖21中,在接受用于傳真?zhèn)鬏數(shù)拇蛴≡O置時,設置應用程序31A向UI驅(qū)動38設置打印設置。然后,設置應用程序31A通過打印機驅(qū)動30的擴展I/F單元382,為傳真?zhèn)鬏斣O置打印設置(例如,地址數(shù)據(jù)、發(fā)送者姓名)以及操作設置(本實例中,批量傳輸設置)。在向UI驅(qū)動38設置批量傳輸設置之后,由應用程序(A、B)31執(zhí)行打印進程。因此,渲染驅(qū)動39從語言監(jiān)視器32中讀取打印設置和操作設置,并生成打印機200能夠理解的打印數(shù)據(jù)。然后,根據(jù)批量傳輸設置,渲染驅(qū)動39將打印數(shù)據(jù)成批地傳送給打印機200。相應地,對于相同地址(目標)傳真?zhèn)鬏斈軌蛲ㄟ^一次連通完成。應用程序(A、B)31可單獨傳輸,也可與多個文檔的數(shù)據(jù)在一批中傳輸。在圖21中,設置應用程序31A可與應用程序(A、B)31組成聯(lián)合體。在另一實例中,存在這樣一種操作設置,其允許相同文檔可傳輸至多個地址(廣播)。圖22-24為描述批量傳輸?shù)牟僮鞯氖疽鈭D。在圖21-24中,設置應用程序31A和應用程序(A、B)31一并稱為“應用程序31”。S1:應用程序31向打印機驅(qū)動30的擴展I/F單元382設置操作設置。與UI驅(qū)動38的方式相同,應用程序31能夠在顯示器19上顯示操作設定界面。進一步地,應用程序31能夠從用戶那接受操作設置。S2:然后,應用程序31在打印機驅(qū)動30的擴展I/F單元382設置打印設置。S3:應用程序31發(fā)送通知給打印機驅(qū)動30的擴展I/F單元382,指示確認(定義)所指定的打印設置和操作。步驟S3.1:打印機驅(qū)動30的擴展I/F單元382指示語言監(jiān)視器32存儲所指定的打印設置和操作設置。更確切地講,將打印設置和操作存儲在“SendRecvBidiDataFromPort()”函數(shù)的預定參數(shù)中。由于操作設置會被維持(存儲)直到操作設置被清除,所以操作設置處于鎖定狀態(tài)。步驟S4:在步驟S4或之后,應用程序31主要執(zhí)行典型的打印操作。第一,應用程序31指示GDI34開始打印進程的準備。更確切地說,應用程序31通過使用“CreateDC()”函數(shù)將打印設置轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。步驟S4.1:GDI34通過調(diào)用與API對應的DDI,發(fā)送打印設置的打印進程給渲染驅(qū)動39。打印設置以“CreateDC”(DEVMODE)參數(shù)的形式從應用程序31傳遞至GDI34,存儲在“DrvEnablePDEV()”的參數(shù)中,并通知給渲染驅(qū)動39。然后,渲染驅(qū)動39能夠參考打印設置,直到任務完成(即,設備描述表清除)。步驟S5:當GDI34通知應用程序31打印進程的準備完成時,應用程序31指示GDI34啟動打印進程。更確切地講,例如,應用程序31使用“StartDoc()”函數(shù)將“DocINFO”轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。步驟S5.1:GDI34指示渲染驅(qū)動39啟動打印進程。更確切地講,GDI34發(fā)送“DrvStartDoc()”函數(shù)至渲染驅(qū)動39。步驟S5.1.1:通過“DrvStartDoc()”調(diào)用打印機驅(qū)動30的渲染驅(qū)動39時,渲染驅(qū)動39詢問是否存在與應用程序31設置的打印設置和操作設置相對應的打印設置和操作設置。更確切地講,渲染驅(qū)動39設置詢問“SendRecvBidiDataFromPort()”的參數(shù)的指示值,并向語言監(jiān)視器32發(fā)送“SendRecvBidiDataFromPort()”的參數(shù)。當應用程序31設置的打印設置和操作設置存在于語言監(jiān)視器32中時,語言監(jiān)視器32給“SendRecvBidiDataFromPort()”設置打印設置和操作設置,并發(fā)送“SendRecvBidiDataFromPort()”至渲染驅(qū)動39。打印機驅(qū)動30的渲染驅(qū)動39根據(jù)從語言監(jiān)視器32獲取的打印設置(如果打印設置存儲于DEVMODE中,還根據(jù)DEVMODE),生成打印數(shù)據(jù),并將生成的打印數(shù)據(jù)發(fā)送給打印機200。S6:當GDI34通知應用程序31打印進程啟動完成時,應用程序31以頁為單位(即逐頁)重復以下的進程。在圖22所示的實例中,只單頁打印。第一,應用程序31指示GDI34接受新頁面的打印數(shù)據(jù)。更確切地講,應用程序31發(fā)送“StartPage()”至GDI34。S6.1:GDI34發(fā)送“DrvStartPage()”至渲染驅(qū)動39。S7:然后,GDI34發(fā)送從應用程序31獲取的渲染函數(shù)(文檔數(shù)據(jù))給渲染驅(qū)動39。然后渲染驅(qū)動39根據(jù)所獲取的打印設置,將文檔數(shù)據(jù)轉(zhuǎn)換為打印數(shù)據(jù)。如果沒有設置批量傳輸設置,渲染驅(qū)動39根據(jù)從語言監(jiān)視器32獲取的打印設置生成打印數(shù)據(jù),并將打印數(shù)據(jù)傳送給打印機200。但是,當渲染驅(qū)動39檢測到已設置有批量傳輸設置,渲染驅(qū)動39維持(存儲)打印數(shù)據(jù),暫不傳輸打印數(shù)據(jù)。S8:當GDI34通知應用程序31一頁渲染進程(單頁渲染)完成時,應用程序31通知GDI34一頁寫入(單頁寫入)完成。更確切地講,應用程序31發(fā)送“EndPage()”至GDI34。S8.1:GDI34發(fā)送“DrvSendPage()”至渲染驅(qū)動39。S9:當所有頁的渲染進程完成,應用程序31通知GDI34打印任務完成。更確切地講,應用程序31發(fā)送“EndDoc()”至GDI34。S9.1:GDI34發(fā)送“DrvEndDoc()”至渲染驅(qū)動39。S10:應用程序31將“DeleteDC()”通知給GDI34,并清除設備描述表。S10.1:GDI34傳輸“DrvDisiblePDEV”至渲染驅(qū)動39。然后,渲染驅(qū)動39清除DEVMODE。在本階段,完成一個任務的執(zhí)行(單個文檔的數(shù)據(jù)傳輸完成)。在批量傳輸中,應用程序不傳輸打印數(shù)據(jù)給打印機200而執(zhí)行下一個任務。步驟S11-S17的進程實質(zhì)上與步驟S4-S10的相同。應用程序31能夠任意次數(shù)地重復步驟S4-S10的進程。在本實施方式中,一批傳輸兩個任務的數(shù)據(jù)(兩個文檔數(shù)據(jù))。S18:應用程序31指示打印機驅(qū)動30的擴展I/F單元382取消批量傳輸設置。例如,用戶登記多個文檔(傳輸目標)的文檔數(shù)據(jù)時,應用程序31在所有文檔傳輸完成后,指示取消批量傳輸設置。這樣,在某些情況下,優(yōu)選應用程序31(生成文檔數(shù)據(jù))和設置應用程序31A(設置打印設置/操作設置)組成聯(lián)合體。在應用程序31和設置應用程序31A單獨設立(即,未組成聯(lián)合體)的情況下,應用程序31可根據(jù)用戶的操作取消批量傳輸設置??商鎿Q地,批量傳輸設置的取消也可自動執(zhí)行。例如,批量傳輸設置可在設置批量傳輸設置之后的預定的時間段后進行取消,或者在某一具體時間進行取消。S18.1:在步驟S18.1中或之后,擴展I/F單元382主要執(zhí)行典型的打印操作??商鎿Q地,在步驟S18.1中或之后,應用程序31可替代擴展I/F單元382,執(zhí)行典型的打印操作。首先,擴展I/F單元382指示GDI34啟動打印進程的準備。更確切地說,擴展I/F單元382通過使用“CreateDC()”函數(shù)將打印設置轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。S18.1.1:GDI34通過調(diào)用與API對應的DDI,發(fā)送打印設置的打印進程給渲染驅(qū)動39。打印設置以“CreateDC”(DEVMODE)參數(shù)的形式,從擴展I/F單元382傳遞至GDI34,該打印設置存儲于“DrvEnablePDEV()”的參數(shù)中,并將該打印設置通知給渲染驅(qū)動39。然而,由于沒有傳輸文檔數(shù)據(jù),渲染驅(qū)動39不能通過參考DEVMODE來生成打印數(shù)據(jù)。S18.2:GDI34通知擴展I/F單元382打印進程的準備完成時,擴展I/F單元382指示GDI34啟動打印進程。更確切地講,例如,擴展I/F單元382通過使用“StartDoc()”函數(shù)將“DocINFO”轉(zhuǎn)換為參數(shù),并調(diào)用GDI34。S18.3:擴展I/F單元382將“ExtEscape()”傳輸給GDI34。“ExtEscape()”函數(shù)為允許訪問不能通過GDI34(本實例中,渲染驅(qū)動39)被訪問的模塊的API。在GDI34不介入的情況下,可使用“ExtEscape()”函數(shù)從應用程序等向驅(qū)動傳輸數(shù)據(jù),或者,在GDI34不介入的情況下,可使用“ExtEscape()”函數(shù)從驅(qū)動獲取數(shù)據(jù)?!癊xtEscape()”可包括用于將積累(存儲)的打印數(shù)據(jù)傳輸給打印機200的請求。S18.3.1:GDI34將“ExtEscape()”轉(zhuǎn)換為DDI,即“DrvStartPage()”,并將“DrvStartPage()”傳輸給渲染驅(qū)動39。S18.3.2:進一步地,GDI34將“DrvEscape()::PASSTHROUGH()”傳輸給渲染驅(qū)動39。根據(jù)“DrvEscape()::PASSTHROUGH()”中的指令,渲染驅(qū)動39將積累的打印數(shù)據(jù)傳輸給打印機200。S18.4:當擴展I/F單元382從GDI34得知打印數(shù)據(jù)已傳輸時,擴展I/F單元382通知GDI34打印任務完成。更確切地講,擴展I/F單元382將“EndDoc()”發(fā)送給GDI34。S18.4.1:GDI34將“DrvEndDoc()”傳輸給渲染驅(qū)動39。S18.5:擴展I/F單元382將“DeleteDC()”通知給GDI34,并清除設備描述表。S18.5.1:GDI34將“DrvDisiblePDEV”傳輸給渲染驅(qū)動39。然后,渲染驅(qū)動39清除DEVMODE。S19:當擴展I/F單元382通知應用程序31操作完成時,應用程序31指示打印機驅(qū)動30的擴展I/F單元382取消打印設置。S19.1:打印機驅(qū)動30的擴展I/F單元382在“SendRecvBidiDataFromPort()”的參數(shù)中設置取消的指示值。然后,擴展I/F單元382指示語言監(jiān)視器32取消(清空)打印設置。從而,擴展I/F單元382清除存儲在語言監(jiān)視器32打印設置和操作設置。相應地,取消操作的鎖定狀態(tài)。因此,即使操作設置不是存儲在DEVMODE中的項目,打印機驅(qū)動30的操作指定(操作設置)能夠在語言監(jiān)視器32中注冊。在步驟S18中,打印機驅(qū)動30的擴展I/F單元382通過GDI34(常規(guī)打印任務)向渲染驅(qū)動39發(fā)送取消批量傳輸設置的指令(通知)??商鎿Q地,擴展I/F單元382可直接發(fā)送指令給渲染驅(qū)動39。多個邏輯打印機的身份標識在一些情況下,多個邏輯打印機可在一個客戶端PC上注冊。在本實施方式中,邏輯打印機為在Windows型操作系統(tǒng)的打印機文件夾中標示為打印機圖標的邏輯打印機。Windows型操作系統(tǒng)針對一個打印機驅(qū)動30能夠生成多個邏輯打印機。從應用程序31的角度看,邏輯打印機為虛擬輸出目標。由打印機驅(qū)動30渲染的打印數(shù)據(jù)輸出至用戶指定的邏輯打印機,并通過Windows型操作系統(tǒng)從邏輯打印機傳輸至物理打印機。每個邏輯打印機都可以分配一個名稱。例如,邏輯打印機的名稱可由用戶分配,也可以根據(jù)打印機驅(qū)動中的包裝名稱(nameofapackage)進行自動分配。例如,可以將指示功能的設置、按指示是否共享打印機的設置、按假脫機類型的設置或按指定選項配置(optionconfiguration)的設置配置給邏輯打印機。換句話說,每個物理打印機初始設置是能夠改變的。對多個邏輯打印機注冊于一個客戶端PC的情況,針對每個邏輯打印機設置進行打印設置和操作設置的設置是比較方便的。在一種配置中,一旦擴展I/F單元382設置打印設置之后,多個應用程序31使用相同的打印設置。在另一種配置中,一旦擴展I/F單元382設置操作設置之后,多個應用程序31使用相同的操作設置。比較理想的是,針對每個邏輯打印機存儲打印設置和操作設置。因此,擴展I/F單元382在語言監(jiān)視器32中注冊打印設置和操作設置,將邏輯打印機名稱(此后也可稱為“邏輯打印機ID”)作為密鑰。圖25為示出針對多個邏輯打印機設置打印設置的操作實例的示意圖。對于多個邏輯圖標(邏輯打印機)注冊在一個客戶端PC100上的情況,打印設置注冊在語言監(jiān)視器32中,使用邏輯打印機ID作為密鑰。圖25中的應用程序31是作為由應用程序31A和應用程序(A、B)31組成的聯(lián)合體的實例。如下所述,應用程序31使用打印機驅(qū)動30的擴展I/F單元382。在本實例中,應用程序31向邏輯打印機名稱(邏輯打印機ID)A設置打印設置AB,應用程序31向邏輯打印機名稱(邏輯打印機ID)B設置打印設置MN。邏輯打印機ID為用戶指定作為輸出目標的邏輯打印機的ID。因此,由應用程序31、UI驅(qū)動38和渲染驅(qū)動39檢測邏輯打印機ID(將其作為參考)。因此,UI驅(qū)動38能夠向語言監(jiān)視器32設置打印設置,并使用邏輯打印機ID(對應于輸出目標的邏輯打印機)作為密鑰。渲染驅(qū)動39將邏輯打印機ID作為密鑰詢問語言監(jiān)視器32,并獲取與詢問對應的打印設置。因此,能針對每個邏輯打印機、傳真打印及傳真?zhèn)鬏攣碇付ù蛴≡O置或操作設置。需要注意的是,即便在進行批量傳輸時,能針對每個邏輯打印機來設置打印設置/操作設置。采用指向和打印安裝方式的語言監(jiān)視器接下來要說明的是,使用采用指向和打印安裝方式的語言監(jiān)視器32管理打印設置和操作設置的方法。圖26為示出具有指向和打印環(huán)境的打印系統(tǒng)400的配置的示意圖。在該打印系統(tǒng)400中,四個客戶端PC100通過網(wǎng)絡B連接于服務器端PC110。盡管在圖26中,打印機200連接至服務器端PC110,但打印機200可連接至網(wǎng)絡B。打印機驅(qū)動30安裝于服務器端PC110。服務器端PC110復制打印機驅(qū)動30和將該復制分配至各客戶端PC100。因此,通過服務器端PC110和各客戶端PC100之間的協(xié)同操作,打印機驅(qū)動30在不煩擾用戶的情況下也能夠安裝。下面的實例為:客戶端PC100與服務器端PC110連接且使用指向和打印安裝方式來安裝打印機驅(qū)動30。在指向與打印環(huán)境的服務器端執(zhí)行渲染中,由于客戶端PC100(本實例中,客戶端PC1)接受用戶設置的打印設置,服務器端PC110和客戶端PC100可能很難共享打印設置等。然而,由于上述語言監(jiān)視器32是Windows型操作系統(tǒng)內(nèi)部的功能(功能元件),安裝有指向與打印的客戶端PC1的Windows型操作系統(tǒng),能夠?qū)⒋蛴≡O置傳輸給服務器端PC110。因此,服務器端PC110能夠通過Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)的方式,從客戶端PC1獲取打印設置和操作設置。圖27為在指向與打印環(huán)境中語言監(jiān)視器32的操作實例的示意圖。語言監(jiān)視器32為安裝在Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)中的模塊。因此,在指向與打印環(huán)境中,即使在UI驅(qū)動38分配至客戶端PC100時,或者在渲染驅(qū)動39的進程分配至服務器端PC110時,只有在服務器端PC提供的語言監(jiān)視器32允許運行。盡管在客戶端PC100也提供語言監(jiān)視器32,但是客戶端PC100的語言監(jiān)視器32不運行??蛻舳薖C1的打印機驅(qū)動30和服務器端PC110的打印機驅(qū)動30被配置為只訪問一個語言監(jiān)視器32。通過使用如RPC(遠程程序調(diào)用),客戶端PC100的Windows型操作系統(tǒng)和服務器端PC110的Windows型操作系統(tǒng),在客戶端PC100和服務器端PC110之間建立通信。當UI驅(qū)動38訪問客戶端PC100的語言監(jiān)視器32時,客戶端PC100的語言監(jiān)視器32不運行,但客戶端PC的假脫機35將打印設置傳輸給服務器端PC110的語言監(jiān)視器32。由于客戶端PC100和服務器端PC110上安裝的是相同的Windows型操作系統(tǒng),客戶端PC1和服務器端PC110均可共享使用Windows型操作系統(tǒng)的打印體系結(jié)構(gòu)的語言監(jiān)視器32。因此,能夠預防如因不同制造商開發(fā)的特有模塊而造成的訪問受限和通信錯誤等問題。進一步地,由于客戶端PC100和服務器端PC110上安裝的是相同的Windows型操作系統(tǒng),客戶端PC100和服務器端PC110對于Windows型操作系統(tǒng)具有親和力。雖然RAW假脫機和EMF假脫機作為假脫機類型,包含于指向與打印環(huán)境中,但當然RAW假脫機作為假脫機類型時,不能在服務器端執(zhí)行渲染(服務器端渲染)。這是因為,作為應用程序31的進程,RAW假脫機限制能夠執(zhí)行渲染的位置。另外,如圖27所示,對于執(zhí)行使用RAW假脫機類型的客戶端渲染、使用EMF假脫機類型的客戶端渲染、使用EMF假脫機類型的服務器端渲染,能夠使用語言監(jiān)視器32。在64位操作系統(tǒng)中運行32位應用程序的實例圖28為示出在64位操作系統(tǒng)中運行32位應用程序時,程序語言監(jiān)視器32的操作實例的示意圖。在下文中,假定為傳真?zhèn)鬏斣O置打印設置的設置應用程序31A為32位應用程序,Windows型操作系統(tǒng)為64位操作系統(tǒng)。當應用程序31執(zhí)行打印進程時,根據(jù)WOW64方案來執(zhí)行“sp1wow64.exe”。因此,應用程序31可以是32位應用程序,也可以是64位應用程序。與Windows型操作系統(tǒng)類似的是,打印機驅(qū)動30也設計成64位。這樣,渲染驅(qū)動39為64位驅(qū)動。在UI驅(qū)動38也為64位驅(qū)動,并安裝于客戶端PC1100中。但是,當設置應用程序31A(32位應用程序)試圖訪問擴展I/F單元382時,“sp1wow64.exe”并不運行。因此,設置應用程序31A不能訪問擴展I/F單元382。在這種情況下,通過使用稱為替換安裝的方案,Windows型操作系統(tǒng)將32位打印機驅(qū)動(其預先注冊為64位打印機驅(qū)動的兼容替代)注冊至客戶端PC1100中。在圖28所示的實例中,注冊32位打印機驅(qū)動是指注冊32位打印機驅(qū)動,不是64位打印機驅(qū)動。由于使用32位擴展I/F單元382的設置應用程序31A設計成32位,所以將32位UI驅(qū)動38加載至32位擴展I/F單元382。因此,UI驅(qū)動38能夠從32位的設置應用程序31A接受打印設置等。通過的API作為“SendRecvBidiDataFromPort():”的方式,擴展I/F單元382與語言監(jiān)視器32進行通信。因此,在不考慮設置應用程序31A和Windows型操作系統(tǒng)結(jié)合(例如,32/64位應用程序、32/64位操作系統(tǒng))的情況下,擴展I/F單元382能夠在64位語言監(jiān)視器32中存儲打印設置等。也就是說,因為使用API“SendRecvBidiDataFromPort():”,所以設置應用程序31A和Windows型操作系統(tǒng)無論是32位還是64位都沒有問題。進一步地,當執(zhí)行打印進程時,使用稱為“SendRecvBidiDataFromPort():”的API,64位渲染驅(qū)動39與語言監(jiān)視器32進行通信。因此,在不考慮設置應用程序31A和Windows型操作系統(tǒng)結(jié)合(例如,32/64位應用程序、32/64位操作系統(tǒng))的情況下,渲染驅(qū)動39能夠從語言監(jiān)視器32中讀取打印設置等。因此,根據(jù)本發(fā)明上述的實施方式,即使32位應用程序在具有打印機驅(qū)動30的64位操作系統(tǒng)中運行,也能夠通過擴展I/F單元382的方式,使用設置應用程序31A設置打印設置,并且,也能從渲染驅(qū)動39中讀出打印設置。因此,根據(jù)本發(fā)明上述實施方式的打印機驅(qū)動30,當應用程序31使用擴展I/F單元382并設置打印設置時,能夠達到下述效果:1)不管使用的是RAW假脫機還是EMF假脫機,都能夠根據(jù)打印機驅(qū)動30的擴展I/F單元382指示的打印設置,執(zhí)行打??;2)在不依賴于假脫機類型的情況下,能夠根據(jù)(通過指向和打印方式安裝的)打印機驅(qū)動30通過擴展I/F單元382的方式指示的打印設置,執(zhí)行打印;3)即使在32位應用程序在64位操作系統(tǒng)中運行的情況下,根據(jù)打印機驅(qū)動39的擴展I/F單元382指示的打印設置,執(zhí)行打印。進一步地,打印機驅(qū)動30能夠?qū)⒋蛴≡O置存儲在DEVMODE中。進一步地,打印機驅(qū)動30能夠?qū)⑷康拇蛴≡O置存儲在語言監(jiān)視器32中。通過本發(fā)明的上述實施方式,無論操作環(huán)境如何,打印機驅(qū)動能夠提供擴展I/F單元,并且應用程序能夠通過使用該擴展I/F單元來設定例如打印設置。本發(fā)明并不限于具體公開的實施方式,并且在不背離本發(fā)明范圍的情況下,可以進行變化和修改。
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大兴区| 博野县| 大同市| 阿城市| 淮安市| 和田县| 辽阳市| 逊克县| 高安市| 南靖县| 芜湖市| 东宁县| 油尖旺区| 吐鲁番市| 福州市| 班玛县| 长岭县| 新沂市| 兴安盟| 柳江县| 康乐县| 北票市| 青冈县| 临安市| 彭水| 井冈山市| 乐昌市| 县级市| 冕宁县| 四川省| 奎屯市| 类乌齐县| 临夏市| 明光市| 通渭县| 宝山区| 阿克苏市| 阳江市| 夏邑县| 横峰县| 贡山|