專利名稱:客戶/服務器打印機驅(qū)動程度系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及一種打印機驅(qū)動程序。特別是,本發(fā)明涉及一種用于在網(wǎng)絡計算機(“NC”)、網(wǎng)絡設備和能夠進行打印的其它非PC裝置上執(zhí)行打印作業(yè)的客戶/服務器系統(tǒng)。
網(wǎng)絡計算機是一種連接到局域網(wǎng)(“LAN”)或因特(Internet)網(wǎng)上的小型計算機,包含顯著的本地處理智能。這種NC能夠運行從LAN或因特網(wǎng)下載的或從不可變本地存儲器(例如只讀CD-ROM)加載的應用程序。NC通常不具有本地永久性存儲器,而是遠程存儲信息。因此,NC高度依賴于所述網(wǎng)絡。另外,NC的特征在于使用非傳統(tǒng)的操作系統(tǒng),經(jīng)常使用電視監(jiān)視器用于顯示和具有有限的本地容量。與NC相關的當前規(guī)劃目標市場是家庭-新消費者易于使用教育-與傳統(tǒng)具有多控制的PC相比,是更為廉價的解決辦法商業(yè)-在服務器/MIS級更廉價的連接和更多的控制類似的,網(wǎng)絡設備(諸如是因特電話等)是一種包含計算能力的專用裝置并可以被連接到中央服務器、LAN或所述因特網(wǎng)。
傳統(tǒng)的個人計算機(“PC”)打印機驅(qū)動程序被設計成在駐留有產(chǎn)生打印請求的應用程序的PC上使用。
圖1示出了一個示例驅(qū)動程序系統(tǒng)。應用程序130將希望的打印數(shù)據(jù)轉(zhuǎn)換成GDI132或其它文本命令和圖解具有相關頁位置的基本數(shù)據(jù)和/或形成控制。所述打印作業(yè)可以被假脫機處理150(即存儲)以便允許使用者利用應用程序130恢復工作。可以利用驅(qū)動程序100將這些命令格式化成可識別的工業(yè)規(guī)定數(shù)據(jù)定義(例如PCL)或打印機驅(qū)動程序100可以使用應用程序130和/或平臺中間命令(例如Microsoft WindowsTMGDI基本數(shù)據(jù))和作用于這些命令以建立內(nèi)部直接打印機命令170以控制打印機硬件120。所述打印機不一定必須實際附著到駐留有應用程序130和驅(qū)動程序100的PC110上,但可以遠程地設置在諸如LAN網(wǎng)絡(未示出)上。
具有PC側(cè)打印機驅(qū)動程序系統(tǒng)的一個好處在于所述處理移到所述PC本身(而不是停留在打印機處),借此允許更大的靈活性和控制。這種系統(tǒng)的另一個好處在于在使打印機硬件本身的成本最小的同時可以通過使用更加強大的主機獲得更先進的功能。
作為將以傳統(tǒng)主機為基礎的打印機驅(qū)動程序模塊裝到網(wǎng)絡計算機模塊(如圖2所示)的一種嘗試,存在受到所述NC限制結(jié)果的問題。在NC環(huán)境中當前解決辦法所存在的問題是由所述NC裝置僅具有非常有限量的隨機存取存儲器(“RAM”)和沒有永久性存儲器(允許他們實現(xiàn)最低成本目標)而引起的。相反,幾乎所有的標準PC打印機驅(qū)動程序都使用對本地永久性存儲器的本地假脫機處理。而對于NC來講這通常是不可能的。另外,利用通常是4MB的少量局部RAM,特別是如果需要打印彩色位圖或復雜圖形圖象,經(jīng)常會出現(xiàn)對所述驅(qū)動程序、應用程序和打印數(shù)據(jù)不夠的存儲器。另外,很多如今正在開發(fā)的NC裝置具有不同的操作系統(tǒng)和具有不同的API和/或GDI接口定義,從而使得開發(fā)打印機驅(qū)動程序非常的麻煩。因此,傳統(tǒng)的平臺支持需要新軟件驅(qū)動程序的產(chǎn)生。
在NC210(圖2)上的傳統(tǒng)打印工具采用了標準的打印模塊。例如,在所述NC系統(tǒng)中,服務器200被用于加載應用程序130、與網(wǎng)絡通信和存儲NC210所需要的數(shù)據(jù)。NC210本身運行可以請求打印的應用程序130。其它的工具細節(jié)與在用于PC的標準打印模塊中的相同(見圖1)。
這種傳統(tǒng)NC打印模塊的好處在于1)它與當前的驅(qū)動程序模塊類似,2)所述GUI模塊已經(jīng)為所述平臺了解。但是,所述NC系統(tǒng)存在這種打印模塊的下述缺陷。即在所述NC上存在嚴重的存儲器和圖象限制。而且,NC硬件差別對于其上的軟件運行和與NC相連的硬件產(chǎn)生獨特的問題。另外,傳統(tǒng)的假脫機處理系統(tǒng)在所述NC在存儲空間和/或存儲器方式受到限制的情況下是不能接受的,因此,不能處理即使是規(guī)模適中的打印作業(yè),特別是包含大量圖形數(shù)據(jù)的打印作業(yè)。這種打印系統(tǒng)不能利用具有最少RAM的NC進行工作。
從這些缺陷的角度出發(fā),本發(fā)明提出了一種用于NC特別有效的新的打印機驅(qū)動程序系統(tǒng),。簡單地說,本發(fā)明將打印任務分成能夠進行本地處理的多個部分和能夠被所述服務器進行處理的多個部分。通常,所述服務器比所述NC更能夠?qū)?shù)據(jù)進行處理并具有數(shù)量較多的存儲器空間。本發(fā)明的好處在于所述服務器被用于暫存和處理,借此以減輕所述NC的負擔。對更加復雜和高質(zhì)量信息的打印比使用所述NC內(nèi)的傳統(tǒng)驅(qū)動程序更加容易。
本發(fā)明克服了對所述NC裝置的限制,但仍然允許使用者根據(jù)當前欣賞的圖形容量進行打印。使用本發(fā)明,可以克服缺少用于保存中間數(shù)據(jù)(假脫機)的能力的問題和缺少用于建立圖形圖象的空間的問題。建立用于打印的復雜位圖的困難任務被移到具有足夠處理能力和存儲器的服務器。實質(zhì)上,所述驅(qū)動程序在NC和服務器之間被分開,其中的每一部分執(zhí)行最適于其所駐留的系統(tǒng)的任務。增加了一個附加的作業(yè)管理部分,用于執(zhí)行在服務器上的打印圖象建立任務的啟動和管理在服務器和所述NC中軟件之間的應答和相互作用。在打印時NC和服務器之間的網(wǎng)絡信息流通量增加,但與本發(fā)明所提供的極大增強功能相比,這僅是一個次要問題(特別是對于其中具有有效帶寬的快速鏈接被置于適當位置的內(nèi)部網(wǎng)環(huán)境)。本發(fā)明還提供一個可選擇的驅(qū)動功能處理的位置。
本發(fā)明的附加優(yōu)點部分如下描述,部分可從所述描述中清楚看到,或通過實踐本發(fā)明可以學習到。借助于在所附權(quán)利要求中特別指出的元件和元件組合可以實現(xiàn)和獲得本發(fā)明的優(yōu)點。另外,還應當理解,前面的一般描述和下面的詳細描述僅僅作為例子和解釋,并不對本發(fā)明構(gòu)成限制。
圖1的框圖示出了現(xiàn)有技術(shù)以PC為基礎的打印機驅(qū)動程序系統(tǒng);圖2的框圖示出了應用到網(wǎng)絡計算機(NC)裝置的傳統(tǒng)的驅(qū)動程序系統(tǒng);圖3-6的框圖和處理流程涉及到本發(fā)明的打印機驅(qū)動程序系統(tǒng)。
通過參考本發(fā)明最佳實施例的下面詳細描述及其附圖可以更加容易地理解本發(fā)明。
在披露和描述本發(fā)明的方法和裝置之前,應當理解,這里所示用的術(shù)語僅僅是為了描述特定實施例的目的并非被作為限制。必須指出,作為在說明書和權(quán)利要求中所使用的,除非上下文明確指出以外,單數(shù)形式“一”和“該”也包括復數(shù)。
盡管本發(fā)明特別適用于在結(jié)合NC情況下使用,還應當指出,所述客戶/服務器打印機驅(qū)動程序系統(tǒng)模塊并不局限于NC并可以被應用于可能期望將打印數(shù)據(jù)建立任務從請求計算機轉(zhuǎn)移的情況。
如上面所指出的,本發(fā)明提供一種新的打印機驅(qū)動程序系統(tǒng),該系統(tǒng)可以有效地用于NC。本發(fā)明將打印數(shù)據(jù)分成多個可以被進行本地處理的部分和多個由一個服務器進行處理的部分。所述服務器通常比NC更能夠進行處理和具有更大的存儲空間。所述服務器被用于暫存和處理,借此以減輕所述NC的負荷。
根據(jù)本發(fā)明,如果所述驅(qū)動程序是由諸如JAVA編程語言的平臺獨立語言寫成的,那么,相同的驅(qū)動程序軟件可以被應用在支持Java虛擬機(JVM)定義的任意NC裝置上。對于這個平臺獨立的唯一附加要求是與作為圖形和正文基本單元的源的公用API的定義。
本發(fā)明提供一個系統(tǒng),用于使用所述客戶/服務器打印機驅(qū)動程序?qū)σ粋€打印作業(yè)進行處理,客戶/服務器打印機驅(qū)動程序用于與至少一個服務器側(cè)計算裝置進行通信的客戶側(cè)計算裝置。所述系統(tǒng)包括一個客戶側(cè)驅(qū)動程序子系統(tǒng)、一個服務器側(cè)子系統(tǒng)和一個與所述客戶側(cè)驅(qū)動程序子系統(tǒng)進行通信的裝置,用于將經(jīng)過處理的打印作業(yè)輸出給信號處理裝置。所述客戶側(cè)驅(qū)動程序子系統(tǒng)本身包括一個用于將所述打印作業(yè)傳送給服務器側(cè)計算裝置的服務器側(cè)驅(qū)動程序子系統(tǒng)的裝置。所述服務器側(cè)驅(qū)動程序子系統(tǒng)包括用于接收來自所述客戶側(cè)驅(qū)動程序子系統(tǒng)傳送裝置的所述打印作業(yè)的裝置。所述服務器側(cè)驅(qū)動程序子系統(tǒng)還包括對所述打印作業(yè)進行處理借此以建立經(jīng)過處理的服務器側(cè)打印作業(yè)的裝置。所述服務器側(cè)子系統(tǒng)還包括用于將經(jīng)過處理的服務器側(cè)打印作業(yè)傳送給客戶側(cè)驅(qū)動程序子系統(tǒng)的一個裝置。最后,所述客戶側(cè)驅(qū)動程序子程序還包括一個用于接收來自所述服務器側(cè)子系統(tǒng)的經(jīng)過處理的服務器側(cè)打印作業(yè)的裝置。
本發(fā)明還提供一種處理打印作業(yè)的客戶服務器方法,用于與至少一個服務器側(cè)計算裝置進行通信的客戶側(cè)計算裝置。這種方法包括但不局限于從所述客戶側(cè)向服務器側(cè)計算裝置傳送所述打印作業(yè)的步驟。所述方法還包括在服務器側(cè)接收來自客戶側(cè)傳送裝置的打印作業(yè)和在所述服務器側(cè)對所述打印作業(yè)進行處理以建立經(jīng)過處理的打印作業(yè)的步驟。然后,這個經(jīng)過處理的打印作業(yè)從服務器側(cè)傳送給客戶側(cè),并被所述客戶側(cè)接收和輸出給信號處理裝置。
例如,所述信號處理裝置可以是一個能夠接收和打印所述打印作業(yè)的打印機。所述方法還包括在所述打印機上接收和打印所述打印作業(yè)的步驟。另外,本發(fā)明提供一種用于使用客戶/服務器打印驅(qū)動程序?qū)Υ蛴∽鳂I(yè)進行處理的系統(tǒng),客戶服務器打印機驅(qū)動程序用于與至少一個服務器側(cè)計算裝置進行通信客戶側(cè)計算裝置。這個系統(tǒng)包括一個客戶側(cè)驅(qū)動程序子系統(tǒng)。這個子系統(tǒng)包括用于將所述打印作業(yè)分成一個或多個由客戶側(cè)、服務器側(cè)或其組合進行處理的部分。另外,所述客戶側(cè)驅(qū)動程序子系統(tǒng)包括用于響應所述劃分裝置將所述打印作業(yè)的服務器側(cè)部分傳送給服務器側(cè)計算裝置的服務器側(cè)驅(qū)動程序子系統(tǒng)的一個裝置。所述客戶側(cè)子系統(tǒng)還包括一個用于對打印作業(yè)的客戶側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的客戶側(cè)打印作業(yè)部分的裝置。所述客戶側(cè)子系統(tǒng)還包括用于接收經(jīng)過處理的服務器側(cè)打印作業(yè)部分并可能將其結(jié)果與客戶側(cè)結(jié)果相結(jié)合以建立總結(jié)果的裝置。
另外,這個系統(tǒng)還包括一個服務器側(cè)驅(qū)動程序子系統(tǒng),該子系統(tǒng)包括一個用于接收來自所述客戶側(cè)驅(qū)動程序子系統(tǒng)傳送裝置的所述打印作業(yè)的服務器側(cè)部分的裝置。服務器側(cè)子系統(tǒng)還包括一個用于對打印作業(yè)的服務器側(cè)部分進行處理并借此以建立一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分的裝置。最后,所述服務器側(cè)外子系統(tǒng)包括一個用于將一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分傳送給所述客戶側(cè)驅(qū)動程序子系統(tǒng)的裝置。
所述系統(tǒng)還包括一個用于與客戶側(cè)驅(qū)動程序子系統(tǒng)進行通信的裝置,用于向信號處理裝置(例如打印機)輸出經(jīng)過處理的客戶側(cè)和服務器側(cè)打印作業(yè)部分。
打印作業(yè)的客戶側(cè)部分可以對應于正文信息和所述打印作業(yè)的服務器側(cè)部分對應于圖形信息,或在客戶和服務器能力基礎上的其它安排。
另外,所述劃分裝置還可以包括一個用于確定在客戶和服務器側(cè)計算裝置之間通信量的裝置,如果該通信量位于預定閾值范圍之內(nèi),對所述打印作業(yè)進行劃分,借此在使客戶側(cè)和服務器側(cè)計算裝置之間的通信量最小化、存儲器容量和處理器速度等的基礎上,將由客戶側(cè)和服務器側(cè)或其相結(jié)合進行處理的一個或多個部分是優(yōu)選的。另外,服務器側(cè)計算裝置是一個運行于一個網(wǎng)絡的計算機,所述網(wǎng)絡可以是一個局域網(wǎng)絡或因特網(wǎng)。
本發(fā)明還提供一個對打印作業(yè)進行處理的方法,用于與至少一個服務器側(cè)計算裝置進行通信的客戶側(cè)計算裝置。所述方法包括但不局限于下述步驟。首先,在客戶側(cè)將所述打印作業(yè)劃分成將由所述客戶側(cè)、服務器側(cè)或其相結(jié)合進行處理的一個或多個部分。其次,從所述客戶側(cè)向所述服務器側(cè)計算裝置傳送所述打印作業(yè)的服務器側(cè)部分。然后,在所述客戶側(cè)對所述打印作業(yè)的客戶側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的客戶側(cè)打印作業(yè)部分和在服務器側(cè)接收來自所述客戶側(cè)傳送裝置的所述打印作業(yè)的服務器側(cè)部分。此后,在所述服務器側(cè)對所述打印作業(yè)的服務器側(cè)部分進行處理,借此以建立一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分和在服務器側(cè)向所述客戶側(cè)傳送一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分。最后,在客戶側(cè)接收經(jīng)過處理的服務器側(cè)打印作業(yè)部分并將經(jīng)過處理的客戶側(cè)和服務器側(cè)打印作業(yè)部分輸出給信號處理裝置(例如打印機)。
所述信號處理裝置可以是一個能夠接收客戶側(cè)和服務器側(cè)打印作業(yè)并打印所述打印作業(yè)的一個打印機。所述打印作業(yè)的客戶側(cè)部分可以對應于正文信息和所述打印作業(yè)的服務器側(cè)部分可以對應于圖形信息,或其它的邏輯安排或任務的劃分。另外,客戶側(cè)和服務器側(cè)部分可以分別涉及“低”/“中”和“高”質(zhì)量部分。如在下面的例子中示出的,可以具有多個客戶側(cè)或服務器側(cè)部分,因此,只借助于舉例,所述“低”和“中”質(zhì)量部分應當被本地分開進行處理,見例如圖6。
此外,所述劃分步驟還包括確定在所述客戶和服務器側(cè)計算裝置之間的通信量,如果所述量位于預定閾值范圍之內(nèi),基于客戶側(cè)和服務器側(cè)計算裝置之間通信量最小化、處理速度、RAMH和永久緩沖存儲等對所述打印作業(yè)進行劃分,使一個或多個部分被客戶側(cè)、服務器側(cè)或其相結(jié)合進行處理是優(yōu)選的。
下面的例子試圖對本專業(yè)技術(shù)領域內(nèi)的技術(shù)人員提供一個完整的披露,并對如何構(gòu)成、使用和評價本系統(tǒng)進行描述,作為本發(fā)明的純粹示例而不是作為列本發(fā)明的發(fā)明人的發(fā)明范圍的限制。試圖保證關于數(shù)量(例如所述量等)的精度,但某些誤差和偏差可能發(fā)生。
例子例1在一個實施例中,客戶/服務器打印模塊運行如下(在NC的上下文中)(見圖3)。下述功能是由服務器300處理的1)應用程序服務,通信和數(shù)據(jù)存儲;2)打印作業(yè)假脫機處理350;和3)打印數(shù)據(jù)建立360。下述功能是由NC310處理的1)請求打印的應用程序330的運行;2)作業(yè)管理和用戶接口(“JMUI”)控制380;3)打印機用戶接口340;和4)打印格式化370。打印機裝置320通常被連接到NC310,如圖所示。但是,利用本發(fā)明系統(tǒng)通過簡單地將格式化的打印數(shù)據(jù)370重新定向到適當?shù)耐ㄐ判诺篮洼敵鲅b置上可以很容易地進行網(wǎng)絡打印。
在NC310請求的基礎上,服務器300提供可由NC310執(zhí)行的應用程序330并加以運行。運行應用程序330的NC310產(chǎn)生打印請求。這個請求被本地地提供給NC310和作業(yè)管理和用戶接口控制子系統(tǒng)380。這個子系統(tǒng)380是打印機驅(qū)動程序100的一部分。JMUI子系統(tǒng)380了解打印機用戶接口340,它向所述系統(tǒng)的用戶提供了一個用戶接口。子系統(tǒng)380經(jīng)過一個網(wǎng)絡(未示出)將所述打印請求傳送給服務器300。在服務器300一側(cè),所述打印請求被假脫機處理操作350并在遠離NC310的地方建立打印數(shù)據(jù)(一般的位圖象)360。最后,打印數(shù)據(jù)被從服務器300返回到NC310,并在這里執(zhí)行最終的打印格式化370。對于NC310是本地(或經(jīng)過網(wǎng)絡附著)的打印裝置320接收被格式化的數(shù)據(jù)并打印所述作業(yè)。
很明顯,這個系統(tǒng)不再需要所述NC提供用于假脫機處理打印作業(yè)的本地存儲器和存儲空間。該系統(tǒng)還減輕了所述NC不得不分配處理和存儲器資源以建立實際打印數(shù)據(jù)的負擔。
例Ⅱ在另一個實施例(圖4)中,本發(fā)明提供了一種用于NC的客戶/服務器打印系統(tǒng),在這個模型中,打印數(shù)據(jù)的特征在于打印驅(qū)動程序100的NC410部分和只有那些需要復雜、遠程處理的所述打印作業(yè)部分被傳送給服務器400。因此,簡單的打印數(shù)據(jù)建立任務被進行本地處理。這個系統(tǒng)對沒有使所述NC過載的打印作業(yè)的那些部分提供有效的本地處理。在這種情況下,依據(jù)可以獲得的資源,所述作業(yè)部分可以在NC和服務器之間在“每頁”、“每個頻帶”、“每行”、“每個作業(yè)”或其它基礎上進行分割。就上述NC客戶/服務器打印驅(qū)動程序模型來講,所述打印作業(yè)的復雜部分是遠程進行處理的。當根據(jù)簡單和復雜打印作業(yè)來描述本系統(tǒng)時,這種分配不是絕對的。例如,工作標準(labor criteria)的劃分能夠以可得到的存儲器(RAM)、永久性存儲器和頁面定向等為基礎。
特別是,系統(tǒng)如在例I中所述運行,但具有下述變化。首先,JMUI控制子系統(tǒng)480試圖提供一個附加的功能。具體地說,JMUI子系統(tǒng)480現(xiàn)在能夠確定所述應用程序打印作業(yè)是比較簡單(例如,具有較小存儲器需要的文本)還是比較復雜(例如具有較大存儲器需求的圖形)。JMUI子系統(tǒng)480將復雜部分傳送給服務器400以用于假脫機處理450打印數(shù)據(jù)建立460。JMUI子系統(tǒng)480在NC410處保持簡單部分以用于本地打印數(shù)據(jù)建立465。最后,打印格式化470處于JMUI子系統(tǒng)480的控制之下,借此使JMUI子系統(tǒng)480能夠監(jiān)視必要的狀態(tài)和頁位置信息482,從而保證最后的打印機420的輸出表示來自在服務器400和NC410(客戶)側(cè)上處理的數(shù)據(jù)部分的完整的頁數(shù)據(jù)。由此,JMUI482在將命令傳送給打印裝置420本身之前負責重建所述打印數(shù)據(jù)。在這個例子中,只有復雜部分被傳送給服務器400并在這里被假脫機處理450和處理460。
例Ⅲ另外,在另一個例子(圖5)中,來自NC510應用程序530的所有打印作業(yè)都被直接傳送給服務器500用于假脫機處理550。在這個實施例中,JMUI子系統(tǒng)580然后接收來自服務器500的被進行假脫機處理的作業(yè),確定復雜程度585,并在該確定的基礎上分配打印數(shù)據(jù)建立(560或565)。對于簡單打印作業(yè),本地建立所述數(shù)據(jù)565,但是,對于復雜打印作業(yè),服務器500打印數(shù)據(jù)建立系統(tǒng)560反過來參考552被進行假脫機處理的打印作業(yè)550(還是在服務器500一側(cè))并使用它建立與包括打印行562或其它數(shù)據(jù)在內(nèi)的復雜數(shù)據(jù)對應的打印數(shù)據(jù)560。系統(tǒng)的其余部分與上述相同。
例Ⅳ另外,在其它的例子中,本發(fā)明還提供了一個適用于與NC一起運行的客戶/服務器打印驅(qū)動程序系統(tǒng)。這個實施例基本示于圖6。
對于全球因特網(wǎng),由于每個打印譯碼都需要進出所述因特網(wǎng),所以,來自NC打印請求的附加通信流量是一個障礙。作為對先前例子的加強,提供了下述例子,這些例子將某些基本的(文本和簡單數(shù)據(jù)塊圖形)驅(qū)動程序圖象功能返回到NC610。本地地執(zhí)行標準打印,不需要LAN或因特通信,因此可以很快。另一方面,服務器600包含驅(qū)動程序100的一部分,這個部分被用于建立復雜圖形圖象。
服務器600將應用程序630裝載到NC610中。希望進行打印的NC610應用程序630建立一個以具體本地連接的打印機620或遠程打印機(未示出)為目標的打印對象(例如GDI命令)。驅(qū)動程序100取出所述數(shù)據(jù)并在數(shù)據(jù)類型的基礎上確定如何建立打印圖象以及向消費者提供用戶接口640。為了在打印過程中使網(wǎng)絡延時的影響最小,簡單對象(文本、數(shù)據(jù)塊圖形)的存儲和打印數(shù)據(jù)建立被本地進行665,但由于服務器600具有處理大量數(shù)據(jù)的足夠的永久性存儲器和處理能力,所以,比較復雜圖形660的存儲和建立是在服務器600處進行的。甚至對智能應用程序這樣做也許是可行的,即將指向可以存儲在假脫機處理數(shù)據(jù)650中的復雜位圖和其它圖形的指針或索引傳送給驅(qū)動程序,而不是所有的數(shù)據(jù)。在數(shù)據(jù)復雜程度的基礎上,應用數(shù)據(jù)可以被傳送給假脫機程序650或局部NC,從而使復雜的大數(shù)據(jù)塊決不會被下加載到NC上,直到它們被格式化以用于打印為止。下面將詳細解釋當前實施例的驅(qū)動程序部分。
一旦接收數(shù)據(jù)進行打印,數(shù)據(jù)經(jīng)常被存儲650(在服務器600處的假脫機操作)以允許用戶較塊地返回到應用程序630(如果數(shù)據(jù)量非常少,可以省略這個步驟)。驅(qū)動程序的作業(yè)管理部分680選擇將被打印的數(shù)據(jù)部分,通常是由被稱之為帶的多個打印行識別的頁部分。這個部分識別甚麼樣的打印對象位于這個打印帶內(nèi),然后由所述服務器600管理與這個帶相關的打印圖象數(shù)據(jù)的建立、選擇用于簡單文本的局部圖象建立或啟動復雜圖形數(shù)據(jù)的建立。服務器600以與請求打印帶相關的圖形圖象數(shù)據(jù)作為響應。這個圖形數(shù)據(jù)668然后與任一本地顯影的文本或其它數(shù)據(jù)(來自665)相結(jié)合建立打印帶數(shù)據(jù)670。利用打印格式化程序670就打印機機械、電子特性(布線、間隔、時序)等對這個打印帶數(shù)據(jù)進行校正。隨后傳送給打印機裝置620。
通過分割在NC和服務器之間的驅(qū)動程序圖象顯影,非常簡單的、比較便宜的打印機能夠打印用戶所希望的、利用NC裝置的有限處理能力所不能打印的復雜圖形。另外,簡單打印不受因特網(wǎng)絡延遲的限制或延遲。
參看圖6,服務器600被用于存儲文件數(shù)據(jù)、NC應用程序、NC打印機驅(qū)動程序軟件、打印假脫機操作存儲程序和標準的圖象/字型(“I/F”)技術(shù)。服務器600計算機能夠產(chǎn)生適當?shù)拇蛴?shù)據(jù),并能夠?qū)⑺龃蛴D象傳送給遠程打印機或NC610本地的打印機。NC610負責以運行要求文件數(shù)據(jù)的應用程序,請求適當打印驅(qū)動程序的加載、JMUI控制682(包括打印機用戶接口640)、確定打印質(zhì)量、將所述打印作業(yè)數(shù)據(jù)傳送給適當?shù)木植縉C I/F技術(shù)(通常來自應用程序本身或來自增強的本地接口)或傳送給用于它的I/F技術(shù)的所述服務器,并在需要時執(zhí)行局部打印數(shù)據(jù)的建立,并重組用于最后同化的客戶側(cè)和服務器側(cè)打印數(shù)據(jù)部分,并輸出給附著到所述NC610上的打印機裝置620(或?qū)⑺⒌拇蛴?shù)據(jù)加載到服務器600、網(wǎng)絡或其它用于遠程打印或處理的裝置上)。
客戶/服務器打印驅(qū)動程序系統(tǒng)運行如下。文檔數(shù)據(jù)605被從服務器600加載到NC610或由用戶通過使用客戶側(cè)操作應用程序630產(chǎn)生。作為NC系統(tǒng)的標準特性,這個應用程序軟件630本身可以被從服務器600下載607。然后,NC610運行所述應用程序630,對文檔數(shù)據(jù)605進行訪問。當應用程序630的用戶請求打印文檔數(shù)據(jù)605時,應用程序630將文檔數(shù)據(jù)605傳送到NC側(cè)打印機驅(qū)動程序加載模塊632。這個模塊632確定加載哪種類型的驅(qū)動程序634,然后請求服務器600將適當?shù)尿?qū)動程序軟件634傳送給客戶610。這個驅(qū)動程序軟件634被用于管理所述打印處理的剩余部分。
在一個實施例中,所述眼務器600以及客戶610打印驅(qū)動程序100子系統(tǒng)可以得到在所述應用程序中的文檔數(shù)據(jù)605。因此,在所述應用程序630發(fā)出打印請求的基礎上,在一個實施例中文檔數(shù)據(jù)605被自動地傳送給服務器600上的假脫機操作存儲器650。另外,只有在所述打印裝置的服務器部分被激活的情況下,這個傳輸才能夠發(fā)生。
一旦所述驅(qū)動程序軟件634被裝載,打印機驅(qū)動程序軟件的JMUI子系統(tǒng)680被激活。JMUI子系統(tǒng)680與打印機用戶接口640被集成在一起并執(zhí)行一系列功能。首先,JMUI子系統(tǒng)680確定文件數(shù)據(jù)605是需要“高”、“中”或“低”質(zhì)量(復雜程度)處理685。現(xiàn)有技術(shù)中的一個技術(shù)人員應當能夠認識到“高”、“中”或“低”質(zhì)量的確定是任意的,還應當認識到在不違反本發(fā)明的基本和新穎特征的基礎上能夠進行進一步和不同的區(qū)別。也可以使用其它的標準在客戶和服務器之間分離所述打印作業(yè),包括大小、復雜程度、數(shù)據(jù)類型等。JMUI子系統(tǒng)680能夠監(jiān)視服務器側(cè)處理任務以及NC本地打印任務672。最后,JMUI子系統(tǒng)680能夠指示所述服務器600是到NC局部打印機裝置664或遠程打印機裝置662進行打印。
在所述驅(qū)動程序確定打印質(zhì)量685之后,JMUI子系統(tǒng)680將所述文件數(shù)據(jù)傳送給適當?shù)膱D象/字型(I/F)子系統(tǒng)(652、654、656或658)。I/F子系統(tǒng)將文本和圖形數(shù)據(jù)譯碼成在所述頁上的位置以作為位圖象光柵。在一個實施例中,可能的I/F子系統(tǒng)包括但不局限于1)應用程序I/F技術(shù)658,2)增強的NC本地I/F技術(shù)656,3)增強的服務器側(cè)I/F技術(shù),4)標準的服務器側(cè)I/F技術(shù)。例如,“低”質(zhì)量作業(yè)是由應用程序I/F技術(shù)658處理的,而“中”質(zhì)量作業(yè)是由增強的NC本地I/F技術(shù)656處理的。最后,“高”質(zhì)量作業(yè)可以參考標準的服務器側(cè)I/F技術(shù)652。另外,JMUI子系統(tǒng)680可以進一步確定任一作業(yè)的某些或全部在服務器600上由增強的服務器側(cè)I/F技術(shù)654進行處理。在任一事件中,適當?shù)腎/F子系統(tǒng)負責在其輸入端上打印數(shù)據(jù)的建立。另外,可以根據(jù)驅(qū)動程序的類型確定“低”、“中”和“高”質(zhì)量。
在服務器600側(cè),從假脫機操作存儲器650中提取文檔數(shù)據(jù)。在NC610或客戶側(cè),利用直接來自應用程序630的I/F子系統(tǒng)(650或658)裝載所述文檔數(shù)據(jù)。各種I/F子系統(tǒng)負責打印數(shù)據(jù)的建立。NC610負責重組客戶側(cè)和服務器側(cè)來自I/F子系統(tǒng)的打印數(shù)據(jù)670并將其格式化用于向打印裝置620輸出。但是,當JMUI子系統(tǒng)680指出所希望的是遠程打印662時,服務器建立的打印數(shù)據(jù)660被傳送給服務器600,在這里,最后的打印數(shù)據(jù)被傳送給適當?shù)倪h程打印機(未示出)。
這個實施例提供了用于打印假脫機操作的服務器電源并允許在比整個本地NC系統(tǒng)更高質(zhì)量地進行處理。另外,通過允許對文本和簡單圖象進行本地處理,(從NC到服務器的)LAN流量被大大減少。但是,如果需要或希望以增力LAN流量為代價,那么,這些實施例也能夠進行高質(zhì)量(復雜)打印。
對本專業(yè)技術(shù)領域內(nèi)的技術(shù)人員來講很明顯,在不脫離本發(fā)明精神和范圍的情況下可以做出各種修改和變化。根據(jù)本發(fā)明這里所披露的說明和實踐,本發(fā)明的其它實施例對于上述技術(shù)人員來講是很明顯的。因此,上述的說明和例子僅僅是用于舉例性質(zhì)的,下述權(quán)利要求指出了本發(fā)明真正的范圍和精神。
權(quán)利要求
1.一種用于利用供與至少一個服務器側(cè)計算裝置通信的客戶側(cè)計算裝置用的客戶/服務器打印機驅(qū)動程序?qū)Υ蛴∽鳂I(yè)進行處理的系統(tǒng),所述系統(tǒng)包括(a)客戶側(cè)驅(qū)動程序子系統(tǒng),包括用于將所述打印作業(yè)傳送給服務器側(cè)計算裝置的服務器側(cè)驅(qū)動程序子系統(tǒng)的裝置;(b)服務器側(cè)驅(qū)動程序子系統(tǒng),包括(ⅰ)用于從客戶側(cè)驅(qū)動程序子系統(tǒng)傳送裝置接收所述打印作業(yè)的裝置;(ⅱ)用于對所述打印作業(yè)進行處理借此以建立經(jīng)過處理的服務器側(cè)打印作業(yè)的裝置;(ⅲ)用于將所述經(jīng)過處理的服務器側(cè)打印作業(yè)傳送給所述客戶側(cè)驅(qū)動程序子系統(tǒng)的裝置;其中,所述客戶側(cè)驅(qū)動程序子系統(tǒng)還包括一個用于從所述服務器側(cè)子系統(tǒng)接收經(jīng)過處理的服務器側(cè)打印作業(yè)的裝置,(c)與所述客戶側(cè)驅(qū)動程序子系統(tǒng)通信的裝置,用于向信號處理裝置輸出經(jīng)過處理的打印作業(yè)。
2根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述信號處理裝置包括一個能夠接收和打印所述打印作業(yè)的打印機。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述客戶側(cè)計算裝置是一個網(wǎng)絡計算機。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述服務器側(cè)計算裝置是一個在網(wǎng)絡上運行的計算機。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中所述網(wǎng)絡是一個局域網(wǎng)。
6.根據(jù)權(quán)利要求4所述的系統(tǒng),其中所述網(wǎng)絡是因特網(wǎng)。
7.一種用于使用客戶/服務器打印機驅(qū)動程序處理打印作業(yè)的系統(tǒng),客戶/服務器打印機驅(qū)動程序用于與至少一個服務器側(cè)計算裝置通信的客戶側(cè)計算裝置,所述系統(tǒng)包括(a)客戶側(cè)驅(qū)動程序子系統(tǒng)包括(ⅰ)一個用于將所述打印作業(yè)分成由客戶側(cè)、服務器側(cè)或其相結(jié)合進行處理的一個或多個部分的裝置;(ⅱ)用于響應所述劃分裝置向所述服務器側(cè)計算裝置傳送所述打印作業(yè)的服務器側(cè)部分的裝置;(ⅲ)用于對所述打印作業(yè)的客戶側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的客戶側(cè)打印作業(yè)部分的裝置;(ⅳ)用于接收經(jīng)過處理的服務器側(cè)部分的裝置;(b)所述服務器側(cè)驅(qū)動程序子系統(tǒng)包括(ⅰ)用于從所述客戶側(cè)驅(qū)動程序子系統(tǒng)傳送裝置中接收所述打印作業(yè)服務器側(cè)部分的裝置;(ⅱ)用于對所述打印作業(yè)的服務器側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分的裝置;和(ⅲ)用于將所述一個或多個經(jīng)過處理的打印作業(yè)部分傳送給所述客戶側(cè)驅(qū)動程序子系統(tǒng)的裝置;和(c)與所述客戶側(cè)驅(qū)動程序子系統(tǒng)通信的裝置,用于向一個信號處理裝置輸出經(jīng)過處理的客戶側(cè)和服務器側(cè)打印作業(yè)部分。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述信號處理裝置包括能夠接收所述客戶側(cè)和服務器側(cè)打印作業(yè)并能夠打印所述打印作業(yè)的一個打印機。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述客戶側(cè)計算裝置是一個網(wǎng)絡計算機。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述打印作業(yè)的客戶側(cè)部分對應于正文信息。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述打印作業(yè)的服務器側(cè)部分對應于所述圖形信息。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述服務器側(cè)計算裝置是一個在網(wǎng)絡上運行的計算機。
13.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述劃分裝置還包括一個用于確定在客戶側(cè)和服務器側(cè)計算裝置之間通信量的裝置,如果所述量位于預定閾值范圍之內(nèi),劃分所述打印作業(yè),借此在客戶側(cè)和服務器側(cè)計算裝置之間通信量最小化的基礎上使將被客戶側(cè)、服務器側(cè)和其相結(jié)合所處理的一個或多個部分成為優(yōu)選的。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述網(wǎng)絡是一個局域網(wǎng)。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述網(wǎng)絡是因特網(wǎng)。
16.一種用于對一個打印作業(yè)進行處理的方法,用于與至少一個服務器側(cè)計算裝置進行通信的客戶側(cè)計算裝置,所述方法包括如下步驟(a)從所述客戶側(cè)向所述服務器側(cè)計算裝置傳送所述打印作業(yè);(b)在服務器側(cè)接收來自所述客戶側(cè)傳送裝置的所述打印作業(yè);(c)在服務器側(cè)對所述打印作業(yè)進行處理以便建立經(jīng)過處理的打印作業(yè);(d)在服務器側(cè)向所述客戶側(cè)傳送所述經(jīng)過處理的打印作業(yè);(e)在客戶側(cè)接收所述經(jīng)過處理的打印作業(yè);和(f)向一個信號處理裝置輸出所述經(jīng)過處理的打印作業(yè)。
17.根據(jù)權(quán)利要求16所述的方法,其中所述信號處理裝置包括一個能夠接收和打印所述打印作業(yè)的打印機,所述方法還包括在所述打印機上接收所述打印作業(yè)和打印所述打印作業(yè)的步驟。
18.根據(jù)權(quán)利要求16所述的方法,其中所述客戶側(cè)計算裝置是一個網(wǎng)絡計算機。
19.根據(jù)權(quán)利要求16所述的方法,其中所述服務器側(cè)計算裝置是一個在網(wǎng)絡上運行的計算機。
20.根據(jù)權(quán)利要求19所述的方法,其中所述網(wǎng)絡是一個局域網(wǎng)。
21.根據(jù)權(quán)利要求19所述的方法,其中所述網(wǎng)絡是因特網(wǎng)。
22.一種用于對打印作業(yè)進行處理的客戶/服務器方法,用于與至少一個服務器側(cè)計算裝置通信的客戶側(cè)計算裝置,所述方法包括如下步驟(a)在客戶側(cè)將所述打印作業(yè)分成將被客戶側(cè)、服務器側(cè)或其相結(jié)合進行處理的一個或多個部分;(b)從所述客戶側(cè)向所述服務器側(cè)計算裝置傳送所述打印作業(yè)的服務器側(cè)部分;(c)在客戶側(cè)對所述打印作業(yè)的客戶側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的客戶側(cè)打印作業(yè)部分;(d)在服務器側(cè)接收來自所述客戶側(cè)傳送裝置的所述打印作業(yè)的服務器側(cè)部分;(e)在服務器側(cè)對所述打印作業(yè)的服務器側(cè)部分進行處理借此以建立一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分;(f)在服務器側(cè)向客戶側(cè)傳送一個或多個經(jīng)過處理的服務器側(cè)打印作業(yè)部分;(g)在客戶側(cè)接收所述經(jīng)過處理的服務器側(cè)打印作業(yè)部分;和(h)將經(jīng)過處理的客戶側(cè)和服務器側(cè)打印作業(yè)部分輸出給一個信號處理裝置。
23.根據(jù)權(quán)利要求22所述的方法,其中所述信號處理裝置包括能夠接收客戶側(cè)和服務器側(cè)打印作業(yè)部分和打印所述打印作業(yè)的一個打印機。
24.根據(jù)權(quán)利要求22所述的方法,其中所述客戶側(cè)計算裝置是一個網(wǎng)絡計算。
25.根據(jù)權(quán)利要求22所述的方法,其中所述打印作業(yè)的客戶側(cè)部分對應于所述正文部分。
26.根據(jù)權(quán)利要求22所述的方法,其中所述打印作業(yè)的服務器側(cè)部分對應于所述圖形部分。
27.根據(jù)權(quán)利要求22所述的方法,其中所述服務器側(cè)計算裝置是一個在網(wǎng)絡上運行的計算機。
28.根據(jù)權(quán)利要求22所述的方法,其中所述劃分步驟還包括確定在客戶側(cè)和服務器側(cè)計算裝置之間通信量的步驟,如果所述量位于預定閾值范圍之內(nèi),劃分所述打印作業(yè),借此在客戶側(cè)和服務器側(cè)計算裝置之間通信量最小化的基礎上使被客戶側(cè)、服務器側(cè)或其相結(jié)合進行處理的一個或多個部分是優(yōu)選的。
29.根據(jù)權(quán)利要求27所述的方法,其中所述網(wǎng)絡是一個局域網(wǎng)。
30.根據(jù)權(quán)利要求27所述的方法,其中所述網(wǎng)絡是所述因特網(wǎng)。
全文摘要
客戶/服務器打印機驅(qū)動程序包括能夠?qū)⑺龃蛴∽鳂I(yè)劃分成將被客戶側(cè)和服務器側(cè)進行處理的多個部分并將所述作業(yè)的服務器側(cè)部分傳送給能夠?qū)λ龃蛴∽鳂I(yè)的客戶側(cè)部分進行處理的服務器子系統(tǒng)以便建立和接收經(jīng)過處理的服務器側(cè)部分的客戶側(cè)子系統(tǒng)。所述系統(tǒng)具有一個能夠從所述客戶側(cè)子系統(tǒng)接收服務器側(cè)部分并對這些部分進行處理以便建立經(jīng)過處理的服務器側(cè)部分和向所述客戶側(cè)傳送服務器側(cè)部分的服務器側(cè)子系統(tǒng)。
文檔編號G06F17/00GK1224202SQ9812698
公開日1999年7月28日 申請日期1998年12月16日 優(yōu)先權(quán)日1998年12月16日
發(fā)明者巴里·R·卡維爾 申請人:萊克斯馬克國際公司