專利名稱::移動計算裝置用戶打印文檔的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及計算機打印,尤其涉及使移動計算裝置用戶能方便地打印文檔的一種方法。(2)
背景技術(shù):
:隨著互聯(lián)網(wǎng)的成熟,諸如電子郵件、日歷、文件存儲、鑒別等越來越多的功能已經(jīng)轉(zhuǎn)移到了互聯(lián)網(wǎng)的萬維網(wǎng)上。隨著接入高速互聯(lián)網(wǎng)的可用性在任何地方的發(fā)展,用戶把他們的優(yōu)先選擇轉(zhuǎn)移到基于互聯(lián)網(wǎng)的移動方案,特別是與無線互聯(lián)網(wǎng)的連接。因此,現(xiàn)在許多移動計算裝置配備了無線互聯(lián)網(wǎng)接入能力,而且在較寬的波形因數(shù)(formfactors)范圍內(nèi)的新互聯(lián)網(wǎng)裝置激增,諸如上網(wǎng)小區(qū)電話(即,有能力無線地連接互聯(lián)網(wǎng)的小區(qū)電話)等?,F(xiàn)在有成百萬在使用的人們從他們的小區(qū)電話和其它手持裝置接入他們的數(shù)據(jù)、文檔以及電子郵件。即使移動裝置向它們的用戶提供自由接入互聯(lián)網(wǎng)或其它網(wǎng)絡(luò)而無需束縛在他們的臺式計算機上,但是諸如PDA或上網(wǎng)小區(qū)電話之類的大多數(shù)小型移動裝置所具有的顯示器屏幕很小,多少有幾分不方便,通常難于在這種小型屏幕上閱讀正規(guī)的文檔(例如,電子制表)。為了這個原因,小型移動裝置的用戶可能要求把文檔打印出來而閱讀打印出來的文檔。畢竟,紙是可攜帶的、閱讀起來方便的、以及便于共享的大型觀看媒體。此外,它不需要電源。在互聯(lián)網(wǎng)上可得到大量內(nèi)容以及小型裝置的物理限制意味著用戶需要在他們可以訪問內(nèi)容的任何地方不時地打印內(nèi)容。然而,當(dāng)前當(dāng)移動裝置用戶離開他們的臺式計算機時,他們沒有方便的方法來打印文檔。傳統(tǒng)上,即使是膝上計算機的用戶,當(dāng)他們離開他們的辦公室時,打印也有困難。例如,當(dāng)用戶帶她的膝上計算機到她公司的另一建筑物去參加會議時,即使她能夠登錄到共同的企業(yè)內(nèi)部互聯(lián)網(wǎng)上并檢索她所需要的會議文檔,但是她會發(fā)現(xiàn)她不能夠方便地打印這個文檔。為了在該建筑物的打印機上打印這個文檔,她必須首先發(fā)現(xiàn)該建筑物中有那些打印機,選擇離她最近的打印機,并把該打印機的驅(qū)動程序下載到她的膝上計算機中。然后,她對該特定的文檔格式運行合適的應(yīng)用程序(例如,MicrosoftWord,AdobeAcrobatReader等),使文檔變成打印機一可接受的格式,并使用打印機驅(qū)動程序來打印該文檔。當(dāng)用戶轉(zhuǎn)到一個新的位置和想在不同的打印機上打印時,她必須重復(fù)打印機安裝過程。與用膝上計算機打印相比較,小型互聯(lián)網(wǎng)裝置用戶打印文檔更困難。當(dāng)前存在用于這些"細(xì)小一用戶"裝置的硬件和操作系統(tǒng)平臺的多種多樣的裝置。這種多樣性使開發(fā)用于每個硬件/操作系統(tǒng)平臺的打印驅(qū)動程序的健全裝置極為困難。此外,一般打印繪制需要較強的CPU能力和存儲器消耗。許多小型移動裝置很簡單地,不具備存儲用于打印操作的應(yīng)用程序或打印機驅(qū)動程序或處理能力所需要的存儲器空間。因此,所需要的是提供一種有效的解決方案,使各種類型移動裝置的用戶在需要文檔時可在任何時候任何地方打印文檔,即使該裝置沒有直接連接到打印機,或甚至該裝置不具備處理打印任務(wù)的容量或軟件。(3)
發(fā)明內(nèi)容由于上述情況,本發(fā)明提供一種網(wǎng)絡(luò)打印服務(wù),這種服務(wù)使諸如膝上計算機、個人數(shù)字助理(PDA)裝置、上網(wǎng)小區(qū)電話等之類的移動計算裝置能夠容易地打印文檔,即使這些裝置沒有直接連接到打印機或不支持應(yīng)用程序和打印驅(qū)動程序。當(dāng)移動計算裝置的用戶想要打印文檔時,使用移動裝置來接入諸如互聯(lián)網(wǎng)之類的網(wǎng)絡(luò),打印服務(wù)就駐留在該網(wǎng)絡(luò)上。打印服務(wù)包括與用戶交互作用以接收打印請求數(shù)據(jù)的打印服務(wù)界面、用于處理打印請求的路由器部件、以及把文檔從源文檔格式轉(zhuǎn)換成用于打印的目標(biāo)文檔格式的繪制部件。用戶使用打印服務(wù)界面輸入識別文檔在網(wǎng)絡(luò)上的位置(例如根據(jù)文檔的URL(統(tǒng)一資源定位符))的打印請求。另一方面,可以直接把文檔從移動裝置傳遞到打印服務(wù)。如果可適用的話,用戶還通過相同的界面規(guī)定目標(biāo)打印機。當(dāng)打印機服務(wù)接收到請求時,如果該請求給出文檔的URL,則它檢索相應(yīng)于該URL的文檔,把文檔變成合適的目標(biāo)格式,并按用戶的要求打印文檔。6不僅可以在互聯(lián)網(wǎng)上實施本發(fā)明的網(wǎng)絡(luò)打印服務(wù)框架,而且還可以在不同大小的網(wǎng)絡(luò)上實施,諸如共同的企業(yè)內(nèi)部互聯(lián)網(wǎng)、家庭局域網(wǎng)等。(4)在所附的權(quán)利要求書規(guī)定本發(fā)明的特征的同時,尤其,從下面結(jié)合附圖的詳細(xì)描述中,對本發(fā)明以及它的目的和優(yōu)點將更好地理解圖l是方框圖,一般示出可以在其上實施本發(fā)明的一個示例計算機系統(tǒng);圖2是示意圖,示出在互聯(lián)網(wǎng)上提供的打印服務(wù)的示例實施例,用于處理移動互聯(lián)網(wǎng)裝置的用戶的打印請求;圖3是示意圖,示出在互聯(lián)網(wǎng)上另一個打印服務(wù)的示例實施例;以及圖4是示意圖,示出駐留在用戶的個人計算機上和經(jīng)過公式的企業(yè)內(nèi)部網(wǎng)可訪問的打印服務(wù)網(wǎng)關(guān)。(5)具體實施例方式轉(zhuǎn)到附圖,其中用相同的標(biāo)記作相應(yīng)的識別,所示出的本發(fā)明是在合適的計算機環(huán)境中實施的。雖然并不要求,但是將在諸如由個人計算機執(zhí)行的程序模塊之類的計算機一可執(zhí)行指令的一般情況中描述本發(fā)明。一般,程序模塊包括執(zhí)行特定任務(wù)或執(zhí)行特定抽象數(shù)據(jù)類型的例行程序、程序、目標(biāo)、部件、數(shù)據(jù)結(jié)構(gòu)等。此外,熟悉本
技術(shù)領(lǐng)域:
的人員會理解,可以用其它計算機系統(tǒng)配置來實施本發(fā)明,包括手持裝置、多處理器系統(tǒng)、基于微處理器的或可編程的消費電子線路、網(wǎng)絡(luò)個人計算機、小型計算機、主計算機等??梢栽诜植际接嬎悱h(huán)境中實施本發(fā)明,在這種環(huán)境中,由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理裝置來執(zhí)行任務(wù)。在分布式計算環(huán)境中,可以把程序模塊置于本地和遠(yuǎn)程存儲器存儲裝置兩者中。下面的描述從通用計算裝置的描述開始,所述通用計算裝置可以用于實施本發(fā)明的示例系統(tǒng)中,并將參考圖2—4更詳細(xì)地描述本發(fā)明?,F(xiàn)在轉(zhuǎn)到圖l,以傳統(tǒng)個人計算機20的形式來示出通用計算裝置,它包括處理單元21、系統(tǒng)存儲器22以及系統(tǒng)總線23,所述總線把包括系統(tǒng)存儲器的各種系統(tǒng)部件耦合到處理單元21。系統(tǒng)總線23可以是數(shù)種總線類型中的任何一種,包括存儲器總線或存儲器控制器、外圍總線以及使用多種總線結(jié)構(gòu)中的任何一種結(jié)構(gòu)的本地總線。系統(tǒng)存儲器包括只讀存儲器(ROM)24以及隨機存取存儲器(RAM)25。把包括幫助在個人計算機20內(nèi)的單元之間傳遞信息(諸如在起動期間)的基本例行程序的基本輸入/輸出系統(tǒng)(BIOS)26存儲在ROM24中。個人計算機20進一步包括用于從硬盤60讀出和寫入的硬盤驅(qū)動器27、用于從可拆卸磁盤29讀出和寫入的磁盤驅(qū)動器28、以及用于從可拆卸光盤31(諸如CDROM或其它光學(xué)媒體)讀出或?qū)懭氲墓獗P驅(qū)動器30。分別通過硬盤驅(qū)動接口32、磁盤驅(qū)動接口33以及光盤驅(qū)動接口34把硬盤驅(qū)動器27、磁盤驅(qū)動器28以及光盤驅(qū)動器30連接到系統(tǒng)總線23。驅(qū)動器和它們相關(guān)聯(lián)的計算機可讀出媒體提供計算機可讀出指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和用于個人計算機20的其它數(shù)據(jù)的非易失性存儲。雖然這里描述的示例實施例使用硬盤60、可拆卸磁盤29和可拆卸光盤31,但是熟悉本
技術(shù)領(lǐng)域:
的人員會理解,在示例操作環(huán)境中也可以使用可存儲計算機可訪問數(shù)據(jù)的其它類型計算機可讀出媒體,諸如盒式磁帶、快閃存儲器卡、數(shù)字視頻盤、Bernoulli磁帶盒、隨機存取存儲器、只讀存儲器、存儲區(qū)網(wǎng)絡(luò)等??梢园寻ú僮飨到y(tǒng)35、一個或多個應(yīng)用程序36、其它程序模塊37以及程序數(shù)據(jù)38的許多程序模塊存儲在硬盤60、磁盤29、光盤31、ROM24或RAM25上。用戶可以通過諸如鍵盤40和指示器42之類的輸入設(shè)備把命令和信息輸入個人計算機20。其它輸入設(shè)備(未示出)可以包括話筒、搖桿、游戲小鍵盤、衛(wèi)星碟形天線、掃描器等。通常通過耦合到系統(tǒng)總線的串行端口接口46把這些和其它輸入設(shè)備連接到處理單元21,但是可能通過其它接口連接,諸如并行端口、游戲端口或通用串行總線(USB)或網(wǎng)絡(luò)接口卡。還通過諸如視頻適配器48之類的接口把監(jiān)視器47或其它類型的顯示裝置連接到系統(tǒng)總線23。除了監(jiān)視器之外,個人計算機一般包括未示出的其它外圍輸出設(shè)備,諸如揚聲器和打印機。個人計算機20可以在網(wǎng)絡(luò)化環(huán)境中操作,所述網(wǎng)絡(luò)化環(huán)境使用到諸如遠(yuǎn)程計算機49之類的一個或多個遠(yuǎn)程計算機的邏輯連接。雖然在圖1中只示出一個存儲器裝置50,但是遠(yuǎn)程計算機可以是另外的個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)個人計算機、同等裝置或上述相對于個人計算機20描述的所有單元。在圖1中描繪的邏輯連接包括局域網(wǎng)(LAN)51和廣域網(wǎng)(WAN)52。在辦公室、全企業(yè)的計算機網(wǎng)、企業(yè)內(nèi)部互聯(lián)網(wǎng)以及互聯(lián)網(wǎng)中,這種網(wǎng)絡(luò)環(huán)境是很平凡的。當(dāng)在局域網(wǎng)網(wǎng)絡(luò)環(huán)境中使用時,通過網(wǎng)絡(luò)接口或適配器53把個人計算機20連接到本地網(wǎng)絡(luò)51。當(dāng)在廣域網(wǎng)網(wǎng)絡(luò)環(huán)境中使用時,個人計算機20—般包括調(diào)制解調(diào)器54或在廣域網(wǎng)WAN52上建立通信的其它手段。通過串行端口接口46把調(diào)制解調(diào)器54(可以是內(nèi)部的或外部的)連接到系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,可以把相對于個人計算機20或其一部分描繪的程序模塊存儲在遠(yuǎn)程存儲器存儲裝置中。可以理解,所示的網(wǎng)絡(luò)連接是示例,可以使用在計算機之間建立通信鏈路的其它手段。例如,計算機可以是膝上計算機的形式,并配備有無線連接到互聯(lián)網(wǎng)或其它網(wǎng)絡(luò)的無線發(fā)送和網(wǎng)絡(luò)能力。在下面的說明中,除非另有所指,將參考一臺或多臺計算機執(zhí)行的操作的動作和符號表示來描述本發(fā)明。照這樣,可以理解,這些有時稱之為計算機執(zhí)行的動作和操作包括通過電信號(所述電信號表示結(jié)構(gòu)形式的數(shù)據(jù))的計算機處理單元的操作。這種操作使數(shù)據(jù)變換或保持在它在計算機存儲器系統(tǒng)中的位置上,按熟悉本
技術(shù)領(lǐng)域:
的人員理解的方式再配置或改變計算機的操作。保持?jǐn)?shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是存儲器的物理位置,所述存儲器具有由數(shù)據(jù)格式定義的特定特性。然而,在上述情況中描述本發(fā)明的時,并不意味著一種限制,熟悉本
技術(shù)領(lǐng)域:
的人員會理解,此后描述的各種動作和操作也可以在硬件中實施?,F(xiàn)在轉(zhuǎn)到圖2,本發(fā)明針對一種打印服務(wù)體系結(jié)構(gòu),這種打印服務(wù)體系結(jié)構(gòu)允許諸如膝上計算機、PDA、上網(wǎng)小區(qū)電話(或"智能小區(qū)電話")等的移動計算裝置的用戶能夠打印文檔,即使移動裝置沒有直接連接或控制打印機,或即使該裝置不能為執(zhí)行打印操作所需要的應(yīng)用程序和打印機驅(qū)動程序提供處理能力或存儲器容量。根據(jù)本發(fā)明,移動裝置不需要進行使文檔變成打印機可接受格式的處理,甚至不必知道打印機的位置在哪里。而是,移動裝置只要査找移動裝置所連接的網(wǎng)絡(luò)上的打印服務(wù),告訴打印服務(wù)文檔在哪里,或把文檔傳遞給打印服務(wù),打印服務(wù)會控制打印操作,按請求打印文檔。圖2示出一個實施例,其中執(zhí)行打印服務(wù)70作為互聯(lián)網(wǎng)72上的網(wǎng)服務(wù)器的一部分。然而,可以理解,根據(jù)本發(fā)明的打印服務(wù)體系結(jié)構(gòu)是可擴充的,以致可以在諸如處理打印任務(wù)的共同企業(yè)內(nèi)部互聯(lián)網(wǎng)之類的其它網(wǎng)絡(luò)中使用,將在下面進行更詳細(xì)的描述。如在圖2中所示,把在本實施例中可以是上網(wǎng)小區(qū)電話76、PDA78、膝上計算機80或任何其它互聯(lián)網(wǎng)裝置等的用戶的移動裝置連接到互聯(lián)網(wǎng)72上。作為一種情況中的例子,名字為"Jane"的用戶可能在她旅行時攜帶上網(wǎng)小區(qū)電話76。當(dāng)她在一個旅館登記住宿時,把她的"互聯(lián)網(wǎng)憑證"給旅館。旅館有一個具有打印服務(wù)70的互聯(lián)網(wǎng)上的網(wǎng)站86。此后,當(dāng)Jane準(zhǔn)備一個用戶會議時,Jane要打印文檔。假定包括她要打印的那一個文檔的她的文檔92存儲在網(wǎng)上的網(wǎng)存儲器90中。她使用她的上網(wǎng)小區(qū)電話76與互聯(lián)網(wǎng)72連接,并訪問(經(jīng)過無線應(yīng)用協(xié)議(WAP))旅館的網(wǎng)站86,它代表包括打印任務(wù)的査詢和選擇的打印服務(wù)界面頁面88。Jane通過界面網(wǎng)頁88輸入有關(guān)打印任務(wù)的信息,包括文檔的位置、打印規(guī)格數(shù)據(jù)(例如,彩色或黑/白、常用的或加粗的、復(fù)制的份數(shù)等)以及任何其它需要的信息。在這個例子中,通過文檔的統(tǒng)一資源定位符(URL)來規(guī)定待打印文檔94的位置。她還可以規(guī)定是否把經(jīng)打印的文檔傳送到她的旅館房間或發(fā)送到總臺由她去取。然后,她提出打印請求96,并通過上網(wǎng)小區(qū)電話76接收來自打印服務(wù)對于接收到打印請求的確認(rèn)98。打印服務(wù)70包括部件100、此后稱之為打印服務(wù)網(wǎng)關(guān)(PSG),用于處理經(jīng)過互聯(lián)網(wǎng)從不同用戶來的打印請求。當(dāng)它接收到Jane的打印請求96時,它使用在旅館客人數(shù)據(jù)庫中的登記信息來驗證她的旅館客人狀態(tài)。如果有什么問題,則它會通過Jane的小區(qū)電話76立即通知她。如果用戶狀態(tài)和打印請求兩者都是有效的,則打印服務(wù)網(wǎng)關(guān)100使用Jane的互聯(lián)網(wǎng)憑證來訪問存儲了她的文檔的她的網(wǎng)存儲器90,并使用特定文檔94的URL來檢索該文檔。在檢索文檔之后,打印服務(wù)網(wǎng)關(guān)IOO從處理打印任務(wù)的打印機庫106選擇打印機,并把文檔變成適合于所選擇打印機的打印準(zhǔn)備好格式。使用特定文檔格式(例如,微軟字處理)的合適應(yīng)用程序來執(zhí)行變換。為了該目的,打印服務(wù)可以保存用于處理不同類型文檔的多個應(yīng)用程序110。另一方面,打印服務(wù)可以使用互聯(lián)網(wǎng)上的外部變換服務(wù),諸如圖2中的變換服務(wù)112、114、116。然后把經(jīng)變換的文檔發(fā)送到所選擇打印機進行打印,并按打印請求中的規(guī)定傳送經(jīng)打印的文檔。雖然在本例子中的移動裝置是上網(wǎng)小區(qū)電話,但是可以理解,提出打印請求所用的特定類型的移動裝置是不嚴(yán)格的,膝上計算機和其它互聯(lián)網(wǎng)裝置的用戶可以按同樣方式使用打印服務(wù)70來打印文檔。從本例子可以看到,用戶的移動裝置不需要攜帶要打印的特定文檔。在本例子中,甚至上網(wǎng)小區(qū)電話76不必具有存儲文檔拷貝的存儲器容量。而是,用戶只需要規(guī)定在哪里可以找到文檔,打印服務(wù)會根據(jù)該信息和使用訪問該文檔所需要的用戶憑證自動地檢索該文檔。關(guān)于這一點,用戶的憑證是打印服務(wù)已經(jīng)可得到的(例如,在旅館登記時提供),或是連同打印請求一起提供,諸如通過使用證明或互聯(lián)網(wǎng)"護照"。然而,有可能用戶的移動裝置已經(jīng)攜帶了文檔。例如,可以是這樣的情況,用戶的移動裝置是諸如膝上計算機之類的"富有的用戶"。在該情況中,用戶可以直接從她的裝置把文檔作為打印請求數(shù)據(jù)的一部分發(fā)送到打印服務(wù)網(wǎng)關(guān)。可以理解,用戶的移動裝置不需要對文檔進行任何變換或控制打印操作。結(jié)果,移動裝置不須具有文檔特定格式的應(yīng)用程序(例如,微軟字處理AdobeAcrobatReader),而且不需要把打印驅(qū)動程序下載到裝置中。這是一個重要的優(yōu)點,因為諸如PAD或上網(wǎng)小區(qū)電話之類的許多移動裝置不具備變換打印文檔的處理能力或保存應(yīng)用程序或打印驅(qū)動程序的存儲器容量。此外,即使移動裝置是諸如膝上計算機之類具備實質(zhì)處理能力和存儲容量的"富有的用戶",但是尋找正確的驅(qū)動程序以下載到裝置然后使用裝置來控制打印機的操作也是一個極復(fù)雜的過程。通過把打印任務(wù)委托給輕量級移動裝置可訪問的網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))上的打印服務(wù),用戶可以在實質(zhì)上她去的任何地方和她希望的任何時間(受到網(wǎng)絡(luò)連接的限制)使用移動裝置來打印文檔而無需關(guān)心打印操作的細(xì)節(jié)。為了說明本發(fā)明的打印服務(wù)體系結(jié)構(gòu)的寬廣的應(yīng)用性,下面參考圖3描述另一種情況。在這種情況中,Jane是房地產(chǎn)經(jīng)紀(jì)人。在她去會見她的用戶的路上,她想從她的小區(qū)電話76打印最新的住房列表。為了這個,她在她的小區(qū)電話上顯示的菜單中點擊"尋找最近的打印中心"功能。在本例子中,Jane的小區(qū)電話提供者具有黃頁服務(wù),該服務(wù)包括到商用打印中心網(wǎng)頁的網(wǎng)鏈接。當(dāng)她點擊"尋找最近的打印中心"功能時,她的小區(qū)電話檢測她當(dāng)前的位置,并搜索該位置的打印中心列表。它按離開她當(dāng)前位置的距離增加的次序顯示出五種最佳選擇。Jane通過點擊一個打印中心的鏈接從該列表選出例如具有特許名稱"ABC"的打印中心124。然后她連接到ABC的網(wǎng)服務(wù)器120,并用所顯示的ABC網(wǎng)頁122來輸入她的請求。然后,她通過ABC網(wǎng)頁輸入她的打印請求和計費信息。與圖2的例子相似,接收打印請求的服務(wù)網(wǎng)關(guān)126駐宿在ABC打印中心網(wǎng)服務(wù)器120上。當(dāng)用戶輸入打印請求時,打印服務(wù)網(wǎng)關(guān)檢索在請求中規(guī)定的URL處的文檔,把文檔改變成打印格式,并在Jane選擇的ABD打印中心124處的打印機上打印。在本實施例中,由于通過用戶選擇在打印中心處要打印的文檔,所以在網(wǎng)上的ABC的打印服務(wù)不需要本地打印機。本發(fā)明的打印服務(wù)框架是可擴充的,而且可以用于不同大小的網(wǎng)絡(luò)。作為例子,下面參考圖4描述另一種移動打印情況,圖4示出一個實施例,在該實施例中,在公司的企業(yè)內(nèi)部互聯(lián)網(wǎng)上實施打印服務(wù)132。在這種情況中,名字為"Chris"的用戶到他公司中的另一建筑物中的會議室去開會,他隨身攜帶他的連接網(wǎng)絡(luò)的PDA138。在會議室中,他意識到他必須打印一份會議的文檔。為了如此進行,Chris不需要知道共享的打印機在建筑物的什么地方或如何安裝打印驅(qū)動程序。他使用他的PDA通過共同的企業(yè)內(nèi)部互聯(lián)網(wǎng)136訪問駐宿在他的辦公室中的臺式個人計算機(PC)132上的打印服務(wù)網(wǎng)關(guān)142。打印服務(wù)網(wǎng)關(guān)142已經(jīng)訪問Chris的PC132可用的所有的公司網(wǎng)絡(luò)打印機。它幫助Chris選擇一臺特定的打印機,諸如通過打印機定位圖。Chris使用PDA與打印服務(wù)網(wǎng)關(guān)142交互作用,并把打印請求148發(fā)送給打印服務(wù)網(wǎng)關(guān)。打印請求通過URL識別要打印的文檔,該文檔可能存儲在他的臺式PC中,或在企業(yè)內(nèi)部互聯(lián)網(wǎng)的一個位置上。它還根據(jù)諸如打印機位置之類的信息識別目標(biāo)打印機。如果需要的話,Chris的計算機根據(jù)要求安裝目標(biāo)打印機所需要的打印機驅(qū)動程序。然后Chris走到所識別的打印機去選取經(jīng)打印的文檔。回到圖2,在一個實施例中,打印服務(wù)70包括一個或多個服務(wù)器,每個服務(wù)器都駐宿有打印服務(wù)網(wǎng)關(guān)部件100,以及用于處理各種文檔格式的應(yīng)用程序110的集合。例如,應(yīng)用程序可以包括用于HTML(超文本標(biāo)簽語言)文檔的MicrosoftInternetExplorer、用于PDF"文件的AdobeAcrobatReader以及用于".DOC"的微軟字處理等。在示例實施例中,打印服務(wù)進一步包括打印機106的集合以及應(yīng)用程序可以用來產(chǎn)生打印準(zhǔn)備好輸出數(shù)據(jù)的相應(yīng)的打印機驅(qū)動程序。打印機驅(qū)動程序的集合根據(jù)服務(wù)支持的特定打印機而變化。例如,旅館打印服務(wù)可以使用與管理相同的打印機型號,并且只需要一種打印機驅(qū)動程序,而企業(yè)的打印服務(wù)可能由于不同打印機型號的積累而需要許多打印機驅(qū)動程序。打印服務(wù)70包括提供用戶界面的打印服務(wù)用戶界面部件150,以允許用戶輸入打印請求和得到請求的確認(rèn)。它還可以提供一般戶打印請求和打印服務(wù)的最新狀態(tài)。這個用戶界面部件根據(jù)服務(wù)以及用戶而變化(例如,與膝上個人計算機相比,PDA用小屏幕)。在用戶界面之后是打印服務(wù)網(wǎng)關(guān)的編程界面,它定義如何構(gòu)成到打印服務(wù)的打印請求以及經(jīng)過互聯(lián)網(wǎng)(或企業(yè)內(nèi)部互聯(lián)網(wǎng))接收反饋。在一種實施中,用戶界面部件創(chuàng)建實際打印請求軟件包,并把它發(fā)送到打印服務(wù)網(wǎng)關(guān)。在另一種實施中,用戶可以直接訪問打印服務(wù)網(wǎng)關(guān)的編程界面,并把打印請求(按XML(擴展標(biāo)簽語言)格式)直接發(fā)送到打印服務(wù)。在一種實施中,打印請求的內(nèi)容包括下列數(shù)據(jù)1.用戶的"互聯(lián)網(wǎng)憑證"或網(wǎng)站身份。需要這個信息來鑒別文檔訪問以及打印服務(wù)訪問的用戶。也可以在登錄或計費時使用。2.文檔的內(nèi)容或它的URL。3.任選的文檔的格式。如果不提供這個信息,則打印服務(wù)將通過分析內(nèi)容來確定格式,盡管這一般是效率不高的。4.任選的目標(biāo)打印機的URL和諸如型號名稱、PnPID(PnP識別號)、安全訪問代碼等的特征。5.任選的、用于選擇目標(biāo)打印機的標(biāo)準(zhǔn)(例如,位置)。如果這個信息丟失以及沒有給出打印機URL,則打印服務(wù)會根據(jù)它自己的標(biāo)準(zhǔn)(諸如負(fù)載平衡和優(yōu)先級)選擇目標(biāo)打印機。6.任選的打印操作要求,諸如彩色、雙面、常用。如果丟失這個信息,則將使用缺省設(shè)置。打印服務(wù)70產(chǎn)生的響應(yīng)的內(nèi)容包括接受請求的確認(rèn)或拒絕請求,如果接受請求,則一個在登錄和計費中使用的任務(wù)ID(識別號)。由于下列任何一個原因和/或其它原因可能拒絕打印請求沒有鑒別用戶能使用打印服務(wù);打印服務(wù)離線;不能檢索文檔內(nèi)容;不支持文檔格式;不支持規(guī)定的打印機;以及不能滿足規(guī)定的打印要求(諸如彩色打印)。諸如膝上計算機之類某些"富有的用戶"裝置具有更大的處理能力以及較大的應(yīng)用程序庫。就提出打印請求而論,它們可能更高級,所以用戶可能得到較佳的打印質(zhì)量和性能。例如,裝置可以查詢所支持文檔格式的列表(例如按照減少優(yōu)先權(quán)的次序)。在經(jīng)過圖2中示出的互聯(lián)網(wǎng)的移動打印實施例中,打印服務(wù)網(wǎng)關(guān)(PSG)100包括路由部件160、變換部件162、以及登錄和計費部件166。路由部件160執(zhí)行下面的功能分析輸入打印請求。鑒別要使用打印服務(wù)的用戶。與用戶協(xié)商有關(guān)的打印能力(例如,文檔格式)。這將允許強大的用戶提出最佳效果的較佳格式。'如果需要的話,檢索文檔內(nèi)容。如果文檔的訪問有限制,則使用所提供的用戶憑證。M'吏用戶的請求有效,并給出反饋。如果支持從給定源格式到給定目標(biāo)格式的轉(zhuǎn)換,則這包括調(diào)用PSG變換部件使之有效。使請求進行假脫機和調(diào)度以進一步處理(變換和/或打印)。,如果合適的話,把打印請求再引導(dǎo)到另一個打印服務(wù)??梢园堰@用于打標(biāo)記服務(wù)。例如,旅館打印服務(wù)可以簡單地使所有打印請求通過而到達實際處理和打印的打印服務(wù)承包人。打印服務(wù)網(wǎng)關(guān)100的變換部件162負(fù)責(zé)把源文檔格式轉(zhuǎn)換成一般是打印準(zhǔn)備好格式的目標(biāo)格式。它保持信息,使之約在所支持的輸入格式和輸出格式之間映射。這包括信息,所述信息有關(guān)格式是什么以及執(zhí)行特定的映射需要什么應(yīng)用程序軟件或外部變換服務(wù)。它使用數(shù)據(jù)驅(qū)動的方法來提供可伸展性。當(dāng)在本地完成格式轉(zhuǎn)換時,在本地安裝合適的應(yīng)用程序軟件和打印驅(qū)動程序。如果使用外部專用打印變換服務(wù),則打印服務(wù)網(wǎng)關(guān)使內(nèi)容(例如,.ps文件)簡單地通過而無需任何轉(zhuǎn)換。為了增加格式轉(zhuǎn)換的可靠性,具有一個正規(guī)的中間格式是極有利的,所有用戶可以使用它來提出文檔數(shù)據(jù)。這種格式將與裝置無關(guān)。缺少標(biāo)準(zhǔn)格式,打印服務(wù)可能使格式限制在滿足它的可靠性標(biāo)準(zhǔn)的設(shè)置上。網(wǎng)打印服務(wù)的另一個部件是登錄和計費部件,它處理打印請求服務(wù)的登錄和計費操作。為支持互聯(lián)網(wǎng)業(yè)務(wù)模型而提供,如果在不同類型的網(wǎng)絡(luò)中執(zhí)行網(wǎng)絡(luò)打印服務(wù),有可能不需要。例如,當(dāng)旅館打印服務(wù)需要計費功能時,在公司的企業(yè)內(nèi)部互聯(lián)網(wǎng)上的打印服務(wù)可能不需要。如上所述,打印服務(wù)提供編程界面,該編程界面允許用戶提出打印任務(wù)請求以及查詢?nèi)蝿?wù)狀態(tài)。在一種實施中,存在網(wǎng)打印服務(wù)支持的三種強制性方法CreatePrint.丁ob(創(chuàng)建打印任務(wù))允許用戶提出打印請求。Cance,lPrintJob(取消打印任務(wù)):允許用戶取消以前已經(jīng)提出的打印請求。GetPrint.TobData(得到打印任務(wù)數(shù)據(jù)):允許用戶査詢以前已經(jīng)提出的打印請求的狀態(tài)。還有網(wǎng)打印服務(wù)可以選擇支持以使操作最優(yōu)化的三種任選的方法IsFormatS卯ported(支持格式嗎):允許用戶找出打印服務(wù)是否支持特定文檔格式。用戶可以首先使用這種方法來驗證格式,特別當(dāng)直接把文檔內(nèi)容嵌入在打印請求中時。GetS叩portedFormat(得到支持的格式):允許用戶得到支持文檔格式的列表。用戶可能要求使用這種方法來選擇一種最優(yōu)格式以提出源文檔,特別當(dāng)用戶(例如,膝上計算機)有能力進行格式轉(zhuǎn)換的某些形式時。GetPrinterModels(得到打印機型號):允許用戶找出打印服務(wù)使用的打印機型號列表以及它們相關(guān)聯(lián)的可安裝的設(shè)置(諸如是否安裝雙面器)。這將使富有的用戶(諸如膝上計算機)產(chǎn)生高保真度打印機準(zhǔn)備數(shù)據(jù),并通過打印服務(wù)直接到打印機。少數(shù)打印服務(wù)期望支持這種方法,正好是只接收打印機準(zhǔn)備數(shù)據(jù)的那些服務(wù)。下面描述以上確定的方法中的每一種方法的細(xì)節(jié)。在每種方法的說明的后面是詳細(xì)說明所有參數(shù)的"變元"表。它具有如下的屬性DataField(數(shù)據(jù)字段)參數(shù)的名稱。它跟隨在名稱約定VisualStudio.NET之后。Dir:參數(shù)的方向,IN(入),OUT(出),或IN/OUT(入/出)(在C#中的'ref,)。Type:數(shù)據(jù)類型,如C弁中所定義。M/0:表示參數(shù)是強制性的('M')還是任選的('0')。Comment(注釋)定義參數(shù)的意思和它的用途。如果在多種方法中出現(xiàn)相同的參數(shù),則該參數(shù)具有相同的意思并且只在一個地方定義。跟隨在"變元"表之后的是錯誤代碼列表。錯誤代碼返回到〈S0AP:fault〉單元中。從IPP狀態(tài)代碼得到錯誤代碼,其名稱跟隨在C弁名稱約定之后。1.CreatePrintJob當(dāng)調(diào)用CreatePrintJob時,打印服務(wù)將創(chuàng)建新的打印任務(wù)以表示新打印請求以及分配唯一的任務(wù)ID(識別號)。它根據(jù)用戶的提供以及實際可得到的支持來更新任務(wù)數(shù)據(jù)。如果提供文檔URL鏈接,則它以用戶的名義檢索文檔內(nèi)容。如果一切都有效,則它設(shè)置任務(wù)狀態(tài)為"接受",并在繼續(xù)進行文檔打印的同時對用戶作出響應(yīng)。用戶可以在較晚時間通過GetPrintJobData查詢打印請求的狀態(tài),諸如估計完成時間或?qū)嶋H打印設(shè)置。在所有情況中,在它的響應(yīng)注意,如果打印服務(wù)選擇接受打印準(zhǔn)備好數(shù)據(jù),則它應(yīng)支持參數(shù)"jobTicket",該參數(shù)封裝用于產(chǎn)生打印準(zhǔn)備好數(shù)據(jù)的打印設(shè)置的整個集。"jobTicket"是基于標(biāo)準(zhǔn)視窗打印系統(tǒng)方案的。如果打印服務(wù)不能承受"jobTicket"中的所有設(shè)置,則它應(yīng)拒絕打印請求和返回ClientErrorNotPossible(用戶錯誤不可能)。Arguments(變元)數(shù)據(jù)字段JobID方向OUT;類型單元;M/0:M注釋打印服務(wù)在1到2'32—1的范圍中創(chuàng)建唯一的打印任務(wù)識別號。在保證沒有兩個有效的打印請求具有相同識別號的同時,打印服務(wù)可以使任務(wù)識別號再循環(huán)。在諸如CancelPrintJob(取消打印任務(wù))和GetPrintJobData(得到打印任務(wù)數(shù)據(jù))之類接著的操作中使用這個識別號。數(shù)據(jù)字段jobname(任務(wù)名稱)方向IN;類型字符串;M/0:M注釋打印請求的名稱,諸如要打印的文檔的名稱。數(shù)據(jù)字段userName(用戶名稱)方向IN;類型字符串;M/0:M注釋經(jīng)編碼的用戶護照簽到識別號和口令。將使用這個憑證來鑒定打印服務(wù)的使用以及當(dāng)使用文檔URL時使打印服務(wù)以用戶的名義檢索文檔內(nèi)容。如果諸如商業(yè)打印店之類的打印服務(wù)需要用戶憑證,則用戶必須提供這個數(shù)據(jù)。否則,它將接收到"ClientErrorNotAuthenticated"(用戶錯誤未鑒定)。數(shù)據(jù)字段docLink(文檔鏈接)方向IN;類型字符串;M/0:0注釋待打印文檔的URL。如果它丟失了,則打印服務(wù)應(yīng)該假設(shè)用戶將通過"docContent"(文檔內(nèi)容)參數(shù)直接發(fā)送文檔內(nèi)容。在大多數(shù)情況中,提供"docLink",即,通過參考打印。如果打印服務(wù)支持一個任務(wù)中接受多個文檔,則用戶可以在一個CreatPrintJob請求中提供多個URL。數(shù)據(jù)字段docContent(文檔內(nèi)容)方向IN;類型字節(jié)[];M/0:0注釋字節(jié)的序列表示待打印文檔的內(nèi)容,如果這是零,并且"docLink"也是零,則打印服務(wù)將帶錯誤代碼"ClientErrorDocumentAccessError"(用戶錯誤文檔訪問錯誤)而返回。數(shù)據(jù)字段docFormat(文檔格式)方向IN;類型字符串;M/0:0注釋文檔內(nèi)容的格式,諸如"PostScriptLevel2"或"DOC"。如果不提供該參數(shù),則打印服務(wù)將分析文件名稱和/或內(nèi)容,以便弄清楚格式。數(shù)據(jù)字段targetPrinter(目標(biāo)打印機)方向IN;類型字符串;M/0:0注釋目標(biāo)打印機的名稱。數(shù)據(jù)字段num0fC叩ies(復(fù)制份數(shù))方向頂;類型單元;M/0:0注釋要打印的復(fù)制份數(shù)。缺省值是l。將核對所有打印頁面。數(shù)據(jù)字段d叩lex(雙面)方向IN;類型字符串;M/0:0注釋定義在物理頁面上如何打印邏輯頁面。任選包括.'"單面打印"、"沿長邊雙面打印"以及"沿邊短雙面打印"。數(shù)據(jù)字段nllp(n向上)方向IN;類型字符串;M/0:0注釋定義在物理頁面的一面上如何編排邏輯頁面。從"l一向上"、"2一向上"以及"4一向上"選擇。缺省值是"l一向上"。數(shù)據(jù)字段isColor(是彩色嗎)方向IN;類型布爾(bool);M/0:0注釋如果"真",則用彩色打印文檔。否則,用黑/白打印。缺省值是黑/白。數(shù)據(jù)字段paperType(紙型號)方向IN;類型字符串;M/0:0注釋在打印文檔時使用的紙的型號,諸如"201b標(biāo)準(zhǔn)白紙"。由每個打印服務(wù)設(shè)置缺省值。如果是由用戶規(guī)定的,則將對照其它任務(wù)要求進行驗證。如果有沖突,則服務(wù)應(yīng)根據(jù)它的優(yōu)先級選取合適的紙型號,并相應(yīng)地更新任務(wù)數(shù)據(jù)。數(shù)據(jù)字段bindingType(裝訂式樣)方向IN;類型字符串;M/0:0注釋待使用的裝訂式樣,諸如"無"、"巻"、"梳狀"、"U形釘釘住"。缺省值是"無"。如果由用戶規(guī)定,則將對照其它任務(wù)要求進行驗證。如果有沖突,則服務(wù)應(yīng)選取合適的裝訂式樣,并相應(yīng)地更新任務(wù)數(shù)據(jù)。數(shù)據(jù)字段jobTicket()方向IN;類型字節(jié)[];M/0:0注釋描述用于產(chǎn)生打印準(zhǔn)備好數(shù)據(jù)的打印設(shè)置的整個集的XML氣泡。只在提出打印準(zhǔn)備好("原始")文檔時使用。它遵循標(biāo)準(zhǔn)視窗打印系統(tǒng)方案。數(shù)據(jù)字段〈customfields〉(定制字段)方向IN;類型N/A;M/0:0注釋每個打印服務(wù)可以定義附加的字段,諸如"promotioncode"(提升代碼)。錯誤代碼代碼0x0000;意義Successful0K(成功同意);用途該操作成功。代碼0x0400;意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如不良參數(shù)值。代碼0x0402;意義ClientErrorNotAuthenticated(用戶錯誤不鑒定);用途不鑒定用戶使用打印服務(wù)。代碼0x0403;意義ClientErrorNotAuthorized(用戶錯誤不授權(quán));用途不授權(quán)用戶創(chuàng)建打印任務(wù)。代碼0x0404;意義ClientErrorNotPossible(用戶錯誤不可能);用途打印服務(wù)不能滿足要求,諸如當(dāng)用戶提出打印準(zhǔn)備好數(shù)據(jù)時不能承受在任務(wù)票(jobTicket)中的所有設(shè)置。代碼0x040a;意義ClientErrorDocumentFormatNotS叩ported(用戶錯誤溫度格式不支持)用途不支持源文檔格式。代碼0x0411;意義ClientErrorDoc匿ntFo進tError(用戶錯誤文檔格式錯誤);用途源文檔是形成不良的。代碼0x0412;意義ClientErrorDocumentAccessError(用戶錯誤文檔訪問錯誤);用途打印服務(wù)不能訪問文檔內(nèi)容。代碼0x0500;意義ServerErrorlnternalError(服務(wù)錯誤內(nèi)部錯誤);用途這是所有內(nèi)部錯誤的雜物箱錯誤代碼。代碼0x0506;意義ServerErrorNotAc印tingJob(服務(wù)器錯誤不接受任務(wù));用途由于某些原因打印服務(wù)不接受新的打印任務(wù)。代碼0x0509;意義ServerErrorMultipleDocumentJobNotSupported(月艮務(wù)器錯誤多個文檔任務(wù)不支持);用途打印服務(wù)不能接受包含多個文檔的打印請求。2.CANCELPR而OB(取消打印任務(wù))在驗證用戶憑證之后打印服務(wù)刪除給定的打印任務(wù)。變元-數(shù)據(jù)字段J0blD(任務(wù)識別號)方向IN;類型單元;M/0:M注釋在CreatePrintJob響應(yīng)中返回的唯一的任務(wù)識別弁。數(shù)據(jù)字段userCredential(用戶憑證)方向IN;類型字符串;M/0:0注釋如果用用戶憑證創(chuàng)建任務(wù),則取消該任務(wù)需要相同的憑證。錯誤代碼代碼0x0000;代碼意義SuccessfulOK(成功同意);用途成功地刪除任務(wù)。代碼0x0400;代碼意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如無效的任務(wù)識別號或任務(wù)已經(jīng)取消。代碼0x0402;代碼意義ClientErrorNotAuthenticated(用戶錯誤不鑒定);用途不鑒定用戶。代碼0x0403;代碼意義ClientErrorNotAuthorized(用戶錯誤不授權(quán));用途不授權(quán)用戶刪除給定的打印任務(wù)(例如另外某個人的任務(wù))。代碼0x0500;代碼意義ServerErrorlnternalError(服務(wù)錯誤內(nèi)部錯誤);用途所有內(nèi)部錯誤的雜物箱錯誤代碼。3.GetPrintJobData這個方法返回與給定任務(wù)識別號相關(guān)聯(lián)的打印任務(wù)數(shù)據(jù)集,如下所列出。任務(wù)可以是任何狀態(tài)"接受"、"打印"、"取消"或"完成"。每個打印任務(wù)決定它要把打印任務(wù)的數(shù)據(jù)保持多久。注意,當(dāng)打印請求包含與裝置無關(guān)的文檔格式(諸如.DOC)時,與請求一起來的打印設(shè)置作為"建議"來處理。服務(wù)可以根據(jù)它的能力調(diào)節(jié)設(shè)置,以便解決沖突(諸如"彩色"以及"雙面打印")。用戶可以調(diào)用GetPrintJobData來找出打印中使用的實際設(shè)置,如果合適的話,就通知用戶。變元數(shù)據(jù)字段JobID(任務(wù)識別號)方向IN;類型單元;M/0:M注釋在CreatePrintJob響應(yīng)中返回的唯一的任務(wù)識別#。數(shù)據(jù)字段userCredential(用戶憑證)方向IN;類型字符串;M/0:0注釋如果用用戶憑證創(chuàng)建打印任務(wù),則需要。數(shù)據(jù)字段jobState(任務(wù)狀態(tài))方向OUT;類型字符串;M/0:M注釋任務(wù)的當(dāng)前狀態(tài)"接受"、"打印"、"取消"或"完成"。數(shù)據(jù)字段timeOfSubmission(提出時間)方向OUT;類型字符串;M/0:M注釋當(dāng)接受任務(wù)時的經(jīng)編碼的時間戳。格式是IS08601。本地時間表示為YYYYMMDDTHHMMSS,而UTC時間為YYYYMMDDTHHMMSSZ。數(shù)據(jù)字段jobName(任務(wù)名稱)方向OUT;類型字符串;M/0:M注釋打印任務(wù)的名稱。數(shù)據(jù)字段userName(用戶名稱)方向OUT;類型字符串;M/0:M注釋占有該任務(wù)的用戶名。數(shù)據(jù)字段printer(打印機)方向OUT;類型字符串;M/0:M注釋打印任務(wù)發(fā)送到的打印機。數(shù)據(jù)字段numOfCopies(復(fù)制份數(shù))方向OUT;類型單元;M/0:M注釋要打印弁份拷貝。數(shù)據(jù)字段nUp(n向上)方向OUT;類型字符串;M/0:M注釋布局的說明。如果當(dāng)創(chuàng)建打印任務(wù)時用戶已經(jīng)規(guī)定布局格式,則有可能要修改來解決沖突和其它限制。數(shù)據(jù)字段duplex(雙面)方向IN;類型字符串;M/0:M注釋雙面設(shè)置。如果當(dāng)創(chuàng)建打印任務(wù)時用戶已經(jīng)規(guī)定雙面設(shè)置,則有可能要修改來解決沖突和其它限制。數(shù)據(jù)字段isColor(是彩色嗎)方向OUT;類型布爾(bool);M/0:M注釋表示是否為彩色任務(wù)。數(shù)據(jù)字段paperType(紙型號)方向OUT;類型字符串;M/0:M注釋打印任務(wù)所使用的紙的型號。如果當(dāng)創(chuàng)建打印任務(wù)時用戶已經(jīng)規(guī)定紙的型號,則有可能要修改來解決沖突和其它限制。數(shù)據(jù)字段bindingType(裝訂式樣)方向OUT;類型字符串;M/0:0注釋打印任務(wù)所使用的裝訂式樣,如果當(dāng)創(chuàng)建打印任務(wù)時用戶已經(jīng)規(guī)定裝訂式樣,則有可能要修改來解決沖突和其它限制。數(shù)據(jù)字段completionTime(完成時間)方向OUT;類型字符串;M/0:0注釋期望完成打印任務(wù)的期限。格式是ISO8601。本地時間表示為YYYYMMDDTHHMMSS,UTC時間表示為YYYYMMDDTHHMMSSZ。數(shù)據(jù)字段printCost(打印成本)方向OUT;類型字符串;M/0:0注釋當(dāng)服務(wù)對打印收費時使用。數(shù)據(jù)字段mailingCost(郵寄成本)方向OUT;類型字符串;M/0:0注釋當(dāng)把打印頁面郵寄給用戶時使用。錯誤代碼GetPrintJobData具有和CancelPrintJob相同的錯誤代碼集。4.IsFo簡tS叩ported(支持格式嗎)如果打印服務(wù)支持這種方法,則如果支持給定的文檔格式它就應(yīng)該返回"真"。否則,返回"假"。變元數(shù)據(jù)字段docFormat(文檔格式)方向IN;類型字符串;M/0:M注釋文檔格式名稱。數(shù)據(jù)字段s叩ported(支持)方向OUT;類型布爾(bool);M/0:M注釋真或假。錯誤代碼代碼0x0000;代碼意義SuccessfulOK(成功同意);用途成功地完成請求。代碼0x0400;代碼意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如零'docFormat,。代碼0x0500;代碼意義ServerErrorlnternalError(服務(wù)錯誤內(nèi)部錯誤);用途所有內(nèi)部錯誤的雜物箱錯誤代碼。代碼0x0501;代碼意義ServerErrorOperationNotS叩ported(服務(wù)器錯誤操作不支持);用途打印服務(wù)不支持該方法。5.GETSUPPORTEDFORMATS(得到支持格式)如果打印服務(wù)支持這種方法,則它應(yīng)該返回支持文檔格式的列表。變元數(shù)據(jù)字段supportedFormat(支持格式)方向OUT;類型字符串;M/0:M注釋文檔格式的陣列。錯誤代碼具有同IsFormatS叩ported相同的錯誤代碼集。注意,如果用戶有轉(zhuǎn)換文檔格式的手段(諸如特定打印機驅(qū)動程序),則它可以使用GetS叩portedFormats來找到最優(yōu)化的提交格式。否則,它可以使用IsFormatS叩ported來查詢所牽涉的文檔是否可以打印。用戶不必調(diào)用任何方法使文檔格式有效。如果它不這樣,而且不支持所提出的格式,則打印服務(wù)將返回ClientErrordocumentFormatNotS卿orted(用戶錯誤文檔格式不支持)錯誤代碼。6.GETPRINTERMODELS(得到打印機型號)如果打印服務(wù)支持這種方法,則它應(yīng)該返回正在使用的打印機名稱(諸如"HPLaserJet8000")的列表。這種方法針對富有的PC用戶,以最優(yōu)化的打印變換質(zhì)量把打印機準(zhǔn)備好數(shù)據(jù)直接發(fā)送到打印服務(wù)。變元數(shù)據(jù)字段printerModel(打印機型號)方向OUT;類型字符串;M/0:M注釋打印機型號名稱的陣列。錯誤代碼具有同IsFormatS叩ported相同的錯誤代碼集。WSD(網(wǎng)絡(luò)服務(wù)說明語言)定義根據(jù)本發(fā)明的一個實施例的特征,為了加強互聯(lián)網(wǎng)上的網(wǎng)打印服務(wù)的打印服務(wù)界面的通用性,提供根據(jù)XML(擴展標(biāo)簽語言)的網(wǎng)服務(wù)說明語言(WSDL)來描述打印服務(wù)界面。它定義了在與網(wǎng)打印服務(wù)交換消息時用戶必須遵循的消息格式。注意,對于特定實施,根據(jù)需要和任選的參數(shù)('minOccurs'),WSDL說明可能稍有改變。還有'缺省值名稱空間和打印服務(wù)的位置將需要修改。<xmlversion-"l.0"encoding-"utf-8"><definit丄onsxmlns:http="http:〃schetnas.xmlsoap.org/wsdl/http/"xmlns:soap-"http:〃schemas.xmlsoap.org/wsdl/soap/"xmlns:s-"http://www,w3.org/2001/XMLSchema"xtnlns:s0="http-//tempuri,org/"xtnlns:soapenc="http//schemas.xmlsoap,org/soap/encoding/"xmlns:ttn-"http://microsoft.com/wsdl/tnime/textMatching/"xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"targetNamespace-"http:〃tempuri.org/"xmlns-"http://schemasxmlsoap.org/wsdl/"><types><s;schemaelementFormDefault-"qualified"targetNamespace-"http//tempuriorg/"><s:elementname-"CreatePrintJob"><s:cotnplexType><s:sequsnce><s:elementniinOccurs-"l"maxOccurs-"l"name="jobName"type-"s:string"/:><s:elementminOccurs-"l"maxOccurs-""name-"userName"type=,'s:string"/><s:elementminOccurs-"Q"maxOccurs="l"namWuserCredential"type="s:string"/><s:elementminOccurs-"0',maxOccurs-"l"name-"docliink"type-"s:string"/><s:elementtuiriOccur"0"maxOccurs-,'1"name-"docCont:ent:"type-"s:baseS4Binary"/><s:elementminOccurs-',0"maxOccurs-"1"name-"docFormat"type-"s:s仁ring"/><s-element:minOccurs-"0"maxOccurs="l"name-"targetPrinter"type-11s:string"/><s:elementminOccurs-,'0"maxOccurs-"1"name-"numOfCopies"types"s:unsignedlnt:,,/><s:elementu1inOccu3:s-',O"maxOccurs-'T'name-"duplex"type-"s-stringw/><s:elementminOccurs-"O"maxOccurs-"l"name-"nUp,,type="sstring"/><s:elementminOccurs-"0"maxOccurs-,T,natne-"isColor"type-"s:boolean"/><s:elementtninOccurs-"O"maxOccurs=,T,name="paperType"type豕"s:string"/><s:elementminOccurs"0nmaxOccurs-Tname="bindingType"type-"s:string"/><s:elementminOccurs-"0BmaxOccurs-"l"name="jobTicketBtype豕"sbase54BinaryM/></s'ssqusncs:*</s:complexType:></s:element><s:elementnanie-"CreatePriritJobResponse"><scomplexType><s:elementminOccurs-"l"maxOccurs-',l,'name-,、CreatePrintJobResul仁,'type-"s:imsignedlnt"<s-elementminOccurs-"l"maxOccurs-"l"name-"jobID"type-"s:unsignedlnt"/></s:sequence></s:complexType></s:element><s:eleiuentnan\e"CancelPrintJob":><s:complexType><s:elementminOccurs-"l"maxOccurs-,'l"name-"jobIDntype-"s:unsignedlnt,'/><s:elementminOccurs一"0,,maxOccurs-"1"name-"userCredential',type-"s:string"/></s:sequencer</s:complexType></s:element><s:elementname-"CancelPrintJobResponse"><s:complexType><s:elementminOccurs-WmaxOccurs=:,l"name-,,CancelPrintJobResult"仁ype-,'s:unsignedlnt"/></ssequence^</s:complexType></s:element;*<s-elementname-"GetPrintJobData">27<s:complexType><s:sequence:*<s:elementminOccurs-,T,maxOccurs-,T,name-"job工D',type-"s:unsignedlnt"/><s:element;minOccurS-"O"maxOccurs-,,:L"name-"userCredential"type-"s:string"/></s:sequence></s:comple;cType〉</s:element><s:elementname-"GetPrintJobDataResponse"><s:complexType><s:elementrainOccurs-"l"tnaxOccurs-"l"name-"GetPrintJobDataResult"type-nsunsigned工nt,'/><s:elementminOccurs-"1"maxOccurs-"l"name-"jobS仁ate"type-"sstring"/><s:elementminOccurs-"0nmaxOccurs-'T,name-,,errorCode"type="s:unsignedlnt',/><s:elementminOccurs-"1"maxOccurs='T,name-"timeOfSubmission"type-"s-string"/><s:elementminOccurs-"1"maxOccurs-'T'name-"jobNsune"type-"sstring"/><s:elementminOccurs-'T'niaxOccurs-'T,name-"userName"type-"s-string"/><s:elementminOccurs-,'0"maxOccurs-"l"name-',printer"type-,,s:string"/><s:elementminOccurs-"l"maxOccurs-"l"name-"numOfCopies"type-"s:unsignedlnt,'/><s:elementminOccurs*"1"maxOccurs-"1"name-"duplex"type-"s:string"/;><s:elemen仁minOccursa"i"maxOccurs-,'1"name-"nUp,,type-"s;string"/><s:elementminOccurs="l"maxOccurs-nl"name-"isColor"type-"s:boolean"/><selemen仁minOccurs-"1"maxOccurs-"1"r1ame-"pape2:Type,,type-"s:string"/><selementminOccurs-"1,'maxOccurs-"1"name-"bindingType"type-"s:string"/><s:elementminOccuirs"0"tnaxOccurs-',1"name="completionTinie"type-"s:string"/><s:elementminOccurs"0"maxOccurs-'T'name-"printingCost"type-"sstring"/><s:elementminOccurs-"O"maxO'ccurs-""name="mailingCo3t,,type-,,sstring"/></s:sequence></s:complexType></s:elements<曰eletuentnaTOe-"IsForroatSupported"><s:complexType><s:S6qu€nc6><s:elementminOccurs"lMmaxOccurs="l"name-"docFormat"type-"s:string"/></s:sequence></scomplexType></s:element><selementname-"IsFormatSupportedResponse"》<s:complexType>"elementminOccurs="l"maxOccurs-"l',name-"IsFormatSupportedResult"type-"s-unsigneciln仁"/name-"supported"type-,'s''boolean"/></s:sequencer</s:complexType></s:elements<s:elementname-"GetSuppor仁edDocFormats"><s:complexType/></s:element><s''elementname-',GetSupportedDoc:FormatsResponse"><s:complexType><s:ssqusriC6><s:elementn\inOccurs-TmaxOccurs-'T'namWGetSupportedDocFormatsResult"type-',s:unsignedlntw/<s-elementminOccurs-"l"maxOccurs*""name'supportedDocFormats"t:ype-',s0:ArrayOfString"/></s:ssqusncs></s'con\plexType></s:elements<s:complexTypename-"ArrayOfString"><s:elementminOccurs-,'0"maxOccursa"unbounded"《/s:sequencer</scomplexType><s:elementname-"GetP:rinterModels">《s.'complexType/></s:element><s:elementnanie"GetPrinterModelsResponse":><scomplexType》<s:elementminOccurs豕,T'maxOccurss"l1name="GetPrinterModelsResult"type-"s:unsignedlnt"/>name-"prin仁erModels"type-',sO:ArrayOfString"/:><:/ssequence;;></s-complexType></s:element><s:elementname-"unsignedlnt"type-"s:unsignedlnt"/></s:schema></types>messagename^'CreatePrintJobSoapInb<partname="parameters"element-"s0-CreatePi:in仁Job"/></message>^messagename-"CreatePrintJobSoapOut"><partname-"parameters,'eleiuent="s0:CreatePrin仁JobResponse"/></message>name="string"nillable-"仁rue',typestring"/><table>tableseeoriginaldocumentpage32</column></row><table><partname-"parameters"element-"s0:GetSuppor仁edDocFormatsResponse',/></message><messagename-"Ge仁PrinterModelsSoapIn"><partname"parameters"element-"sO'-GetPrin仁erModels"/</messagre><messagename-"GetPrin仁erModelsSoapOut"><partname-"parameters"elemenWsO:GetPrirxterModelsResponse"/></message><portTypename-,,WebPrintServiceSoap"><operationname-"CreatePrintJob"><inputmessage-"sO.-Crea仁ePrin仁JobSoap工n"/><outputmessage-'s0:CreatePi:intJobSoapOut"/></operation><operationname-"CancelPrintJob"><inputmessagWs0:CancelP2rintJ0bS0apIn"/><outputmessage-,,sOCancelPrintJobSoapOut"/><:/operation>reoperationname=,,GetPrintJobData"><inputmessage-,'sO:GetPrlntJobDataSoapIn"/><outputmessage-"sO:GetPrintJobDataSoapOut,'/></operation>(operationname-"IsFormatSuppot:teci"><inputmessage-'-sO-IsFormatSupportedSoapIn"/><outputmessage-"sO:IsForrnatSupport;edSoapOut"/</operation>^operationnarrie-"GetSupportedDocFormat:s'、<inputmessage="s0:GetSupportedDocFormatsSoapIn"/><outputmessage="sO:GetSupportedDocFormatsSoapOut',/</operation><operationname-"GetPrinterModels"><inputmessage-"s0:GetPrinterModelsSoapIn"/><outputmessage-"s0:GetPrinterModelsSoapOut"/></portType><bindingname-"WebPriiatServiceSoap"type-"s0:WebPrintServiceSoap">)s一,,w4,n"transport-"http://schemas'xtulsoap,org/soap/httpMstyle-"document"/:><operationname="CireatePrint:Job"><soap:operationsoapAci:ion="http:〃t考uriorg/CreatePrintJob,,style-"document"/><input><soap:bodyuse-"literal"/></input><output:><soap:bodyuse-,'literal"/></outputs<:/operation:*^operationname-"CancelPrintJob"><soap:operationsoapAction-"http://tempuri.or"g/CancslPrintJob"style-"document"/><input><soap:bodyuse-"literal"/></input><output><soap-bodyuse-"literal"/></output></operation><operaticmname-"GetPrintJobData"><soap:operationsoapActicm-::http://t:empuri.org/GetPrintJobData"style-"document"/><:input><soap:bodyuse-,,literal"/></inputs<output><soap:bodyuse-"literal"/></output></operation》<operationname-"IsFormatSupported"><soapoperationsoapAction-,'http:〃tempuri,org/IsFormatSupportedstyle-"document"/><inputs<soap:bodyuse-"li仁eral"/></input:><output><soap:bodyuse-"literal"/></output></operation>(operationname-"GetSupportedDocFormats"><soap:operationsoapAction-"http:〃tetnpuri,02:g/GetSupportedDocFormats"style-"document"/><input><soap:bodyuse-"literal"/></input>i"^\,'ri,,t"、<soap:bodyuse-"litera"/></output></operation<operaticmname-"<3etPrinLt:erModels"><soap:operaticm3oapAct:ion="http://tempuri,org/GetPrinterModels"style-"document"/><:input><soap:bodyuse-"literal"/></input><output><soap:bodyuse-"literal"/></output></operation></binding><servicename-"WebPrintService":><docun\entation>webprintservice,</documentation><portname-"WebPrintServiceSoap',binding-"s0:WebPrintServiceSoap"><soap:addresslocation-"http:〃localhost/PCPrintPortal/WebPrintService,asmx"/></port:></service:></definitions:*由于有許多實施例可以應(yīng)用本發(fā)明的原理,應(yīng)該理解,這里描述的根據(jù)附圖的實施例意味著僅作為示例而不是作為對本發(fā)明的限制。因此,這里所描述的本發(fā)明設(shè)想在下面權(quán)利要求書的范圍內(nèi)的所有如此的實施例以及其等效物。權(quán)利要求1.一種用于提供網(wǎng)絡(luò)打印服務(wù)的方法,其特征在于,包括顯示一個服務(wù)界面,供用戶經(jīng)過網(wǎng)絡(luò)與打印服務(wù)通信,以輸入打印請求的打印請求數(shù)據(jù),所述服務(wù)界面包括所述打印服務(wù)支持的文檔格式列表,所述打印請求數(shù)據(jù)包括識別待打印文檔的數(shù)據(jù)和從文檔格式列表中選擇要用于變換所述文檔的文檔格式;使打印請求有效和向用戶提供反饋;通過打印服務(wù)得到待打印的文檔;根據(jù)所述打印請求數(shù)據(jù)確定用戶的位置;根據(jù)所述位置識別一個或多個打印機池,用于打印所述文檔;從一個或多個打印機池中選擇一個目標(biāo)打印機;通過打印服務(wù)把所述文檔變換成用于打印的所選文檔格式;以及根據(jù)所述打印請求使得經(jīng)變換的文檔被打??;其中,所述打印服務(wù)由網(wǎng)絡(luò)上的網(wǎng)站提供。2.如權(quán)利要求l所述的方法,其特征在于,所述網(wǎng)絡(luò)是互聯(lián)網(wǎng)。3.如權(quán)利要求2所述的方法,其特征在于,所述服務(wù)界面包括網(wǎng)頁,用戶通過所述網(wǎng)頁輸入打印請求數(shù)據(jù)。4.如權(quán)利要求2所述的方法,其特征在于,識別所述待打印文檔的數(shù)據(jù)包括待打印文檔的URL(統(tǒng)一資源定位符),并且其中,計算機可讀出媒體進一步包括計算機可執(zhí)行指令,用于執(zhí)行從所述URL檢索出待打印文檔的步驟。5.如權(quán)利要求4所述的方法,其特征在于,檢索所述待打印文檔的步驟包括使用用戶憑證來得到對所述URL的訪問。6.如權(quán)利要求2所述的方法,其特征在于,得到所述待打印文檔的步驟包括在互聯(lián)網(wǎng)上檢索出來自用戶的待打印文檔的發(fā)送。7.如權(quán)利要求1所述的方法,其特征在于,所述變換步驟包括運行相應(yīng)于待打印文檔格式的本地應(yīng)用程序以變換所述文檔。8.如權(quán)利要求1所述的方法,其特征在于,所述變換步驟包括調(diào)用遠(yuǎn)程打印變換服務(wù)來變換待打印文檔。9.如權(quán)利要求1所述的方法,其特征在于,所述打印步驟包括在打印服務(wù)的本地打印機上打印文檔。10.如權(quán)利要求l所述的方法,其特征在于,所述打印步驟包括在遠(yuǎn)程打印機上打印文檔。11.如權(quán)利要求l所述的方法,其特征在于,所述網(wǎng)絡(luò)是企業(yè)內(nèi)部網(wǎng)。12.供移動計算裝置的用戶打印文檔的一種方法,其特征在于,它包含使用移動計算裝置來連接其上駐留有打印服務(wù)的一個網(wǎng)絡(luò),其中所述打印服務(wù)獲得文檔并將所述文檔變換成待打印格式;訪問打印服務(wù)提供的服務(wù)界面,用于接收打印請求,所述服務(wù)界面包括所述打印服務(wù)支持的文檔格式列表;通過服務(wù)界面輸入打印文檔的打印請求數(shù)據(jù),所述打印請求數(shù)據(jù)包括識別待打印文檔的數(shù)據(jù)和從文檔格式列表中選擇要用于變換所述文檔的文檔格式;以及接收來自打印服務(wù)的、確認(rèn)接收的打印請求數(shù)據(jù)的確認(rèn);其中,所述打印服務(wù)由網(wǎng)絡(luò)上的網(wǎng)站提供。13.如權(quán)利要求12所述的方法,其特征在于,所述網(wǎng)絡(luò)是互聯(lián)網(wǎng)。14.如權(quán)利要求13所述的方法,其特征在于,所述服務(wù)界面包括網(wǎng)頁,用戶通過所述網(wǎng)頁輸入打印請求數(shù)據(jù)。15.如權(quán)利要求12所述的方法,其特征在于,所述輸入打印請求數(shù)據(jù)步驟包括輸入待打印文檔的URL。16.如權(quán)利要求15所述的方法,其特征在于,所述輸入步驟進一步包括為訪問URL而提供用戶的憑證。17.如權(quán)利要求12所述的方法,其特征在于,所述輸入步驟進一步包括經(jīng)過互聯(lián)網(wǎng)把待打印文檔發(fā)送到打印服務(wù)。18.如權(quán)利要求12所述的方法,其特征在于,所述網(wǎng)絡(luò)是企業(yè)內(nèi)部網(wǎng)。19.如權(quán)利要求12所述的方法,其特征在于,所述移動計算裝置是網(wǎng)絡(luò)蜂窩電話。20.如權(quán)利要求12所述的方法,其特征在于,所述移動計算裝置是膝上計算機。21.如權(quán)利要求12所述的方法,其特征在于,所述移動計算裝置是個人數(shù)字助理(PDA)裝置。22.—種可通過網(wǎng)絡(luò)訪問的打印服務(wù)系統(tǒng),其特征在于,它包括位于網(wǎng)絡(luò)上的一網(wǎng)站,所述網(wǎng)站提供打印服務(wù);界面部件,用于向用戶提供經(jīng)過所述網(wǎng)絡(luò)可訪問的服務(wù)界面,供用戶輸入打印請求的打印請求數(shù)據(jù),所述服務(wù)界面包括所述打印服務(wù)支持的文檔格式列表,所述打印請求數(shù)據(jù)包括識別待打印文檔的數(shù)據(jù)和從文檔格式列表中選擇要用于變換所述文檔的文檔格式;用于將所述文檔變換成用于打印的所述文檔格式的變換部件;請求處理部件,用于使打印請求有效,得到待打印文檔,并根據(jù)打印請求打印經(jīng)變換的文檔,其中所述文檔的得到和變換是由所述打印服務(wù)在將所述文檔提交給打印機之前就已執(zhí)行。23.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,進一步包括相應(yīng)于待打印文檔格式和所述變換部件可調(diào)用的至少一個應(yīng)用程序,用于把所述文檔變換成打印格式。24.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,對所述變換部件編程以調(diào)用遠(yuǎn)程打印變換服務(wù),把所述文檔變換成打印格式。25.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,所述網(wǎng)絡(luò)是互聯(lián)網(wǎng),其中,所述服務(wù)界面包括網(wǎng)頁,用戶可以通過所述網(wǎng)頁輸入打印請求數(shù)據(jù)。26.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,配置服務(wù)界面以接收識別待打印文檔位置的URL作為打印請求數(shù)據(jù)的參數(shù)。27.如權(quán)利要求26所述的打印服務(wù)系統(tǒng),其特征在于,對所述請求處理部件進行編程以訪問檢索待打印文檔的URL。28.如權(quán)利要求27所述的打印服務(wù)系統(tǒng),其特征在于,對所述請求處理部件進行編程,以使用用戶憑證以便得到對所述URL的訪問。29.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,配置所述服務(wù)界面以經(jīng)過網(wǎng)絡(luò)接收來自用戶的待打印文檔。30.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,進一步包括打印文檔的可選擇的打印機庫。31.如權(quán)利要求22所述的打印服務(wù)系統(tǒng),其特征在于,迸一步包括登錄和計費部件,用于處理打印請求處理的登錄和計費。全文摘要在諸如互聯(lián)網(wǎng)或共同的企業(yè)內(nèi)部互聯(lián)網(wǎng)之類的網(wǎng)絡(luò)上提供一種打印服務(wù),用于諸如膝上計算機、PDA和上網(wǎng)小區(qū)電話等的移動計算裝置。當(dāng)移動裝置的用戶要打印文檔時,使用移動裝置來訪問打印服務(wù),并發(fā)送打印請求,所述打印請求根據(jù)URL(統(tǒng)一資源定位符)而規(guī)定文檔在網(wǎng)絡(luò)上的位置。作為響應(yīng),打印服務(wù)使打印請求有效,檢索文檔、把文檔變換成可打印、并按用戶的請求打印文檔。另一方面,可以通過移動裝置直接把文檔提供給打印服務(wù)。文檔編號G06F3/12GK101526889SQ20091000675公開日2009年9月9日申請日期2003年6月25日優(yōu)先權(quán)日2002年6月26日發(fā)明者Z·吳申請人:微軟公司