專利名稱:移動計算裝置用戶打印文檔的系統和方法
技術領域:
本發明一般涉及計算機打印,尤其涉及使移動計算裝置用戶能方便地打印文檔的一種方法。
(2)背景技術隨著互聯網的成熟,諸如電子郵件、日歷、文件存儲、鑒別等越來越多的功能已經轉移到了互聯網的萬維網上。隨著接入高速互聯網的可用性在任何地方的發展,用戶把他們的優先選擇轉移到基于互聯網的移動方案,特別是與無線互聯網的連接。因此,現在許多移動計算裝置配備了無線互聯網接入能力,而且在較寬的波形因數(form factors)范圍內的新互聯網裝置激增,諸如上網小區電話(即,有能力無線地連接互聯網的小區電話)等。現在有成百萬在使用的人們從他們的小區電話和其它手持裝置接入他們的數據、文檔以及電子郵件。
即使移動裝置向它們的用戶提供自由接入互聯網或其它網絡而無需束縛在他們的臺式計算機上,但是諸如PDA或上網小區電話之類的大多數小型移動裝置所具有的顯示器屏幕很小,多少有幾分不方便,通常難于在這種小型屏幕上閱讀正規的文檔(例如,電子制表)。為了這個原因,小型移動裝置的用戶可能要求把文檔打印出來而閱讀打印出來的文檔。畢竟,紙是可攜帶的、閱讀起來方便的、以及便于共享的大型觀看媒體。此外,它不需要電源。在互聯網上可得到大量內容以及小型裝置的物理限制意味著用戶需要在他們可以訪問內容的任何地方不時地打印內容。
然而,當前當移動裝置用戶離開他們的臺式計算機時,他們沒有方便的方法來打印文檔。傳統上,即使是膝上計算機的用戶,當他們離開他們的辦公室時,打印也有困難。例如,當用戶帶她的膝上計算機到她公司的另一建筑物去參加會議時,即使她能夠登錄到共同的企業內部互聯網上并檢索她所需要的會議文檔,但是她會發現她不能夠方便地打印這個文檔。為了在該建筑物的打印機上打印這個文檔,她必須首先發現該建筑物中有那些打印機,選擇離她最近的打印機,并把該打印機的驅動程序下載到她的膝上計算機中。然后,她對該特定的文檔格式運行合適的應用程序(例如,Microsoft Word,Adobe AcrobatReader等),使文檔變成打印機-可接受的格式,并使用打印機驅動程序來打印該文檔。當用戶轉到一個新的位置和想在不同的打印機上打印時,她必須重復打印機安裝過程。
與用膝上計算機打印相比較,小型互聯網裝置用戶打印文檔更困難。當前存在用于這些“細小-用戶”裝置的硬件和操作系統平臺的多種多樣的裝置。這種多樣性使開發用于每個硬件/操作系統平臺的打印驅動程序的健全裝置極為困難。此外,一般打印繪制需要較強的CPU能力和存儲器消耗。許多小型移動裝置很簡單地,不具備存儲用于打印操作的應用程序或打印機驅動程序或處理能力所需要的存儲器空間。
因此,所需要的是提供一種有效的解決方案,使各種類型移動裝置的用戶在需要文檔時可在任何時候任何地方打印文檔,即使該裝置沒有直接連接到打印機,或甚至該裝置不具備處理打印任務的容量或軟件。
(3)發明內容由于上述情況,本發明提供一種網絡打印服務,這種服務使諸如膝上計算機、個人數字助理(PDA)裝置、上網小區電話等之類的移動計算裝置能夠容易地打印文檔,即使這些裝置沒有直接連接到打印機或不支持應用程序和打印驅動程序。當移動計算裝置的用戶想要打印文檔時,使用移動裝置來接入諸如互聯網之類的網絡,打印服務就駐留在該網絡上。打印服務包括與用戶交互作用以接收打印請求數據的打印服務界面、用于處理打印請求的路由器部件、以及把文檔從源文檔格式轉換成用于打印的目標文檔格式的繪制部件。用戶使用打印服務界面輸入識別文檔在網絡上的位置(例如根據文檔的URL(統一資源定位符))的打印請求。另一方面,可以直接把文檔從移動裝置傳遞到打印服務。如果可適用的話,用戶還通過相同的界面規定目標打印機。當打印機服務接收到請求時,如果該請求給出文檔的URL,則它檢索相應于該URL的文檔,把文檔變成合適的目標格式,并按用戶的要求打印文檔。
不僅可以在互聯網上實施本發明的網絡打印服務框架,而且還可以在不同大小的網絡上實施,諸如共同的企業內部互聯網、家庭局域網等。
(4)
在所附的權利要求書規定本發明的特征的同時,尤其,從下面結合附圖的詳細描述中,對本發明以及它的目的和優點將更好地理解圖1是方框圖,一般示出可以在其上實施本發明的一個示例計算機系統;圖2是示意圖,示出在互聯網上提供的打印服務的示例實施例,用于處理移動互聯網裝置的用戶的打印請求;圖3是示意圖,示出在互聯網上另一個打印服務的示例實施例;以及圖4是示意圖,示出駐留在用戶的個人計算機上和經過公式的企業內部網可訪問的打印服務網關。
(5)具體實施方式
轉到附圖,其中用相同的標記作相應的識別,所示出的本發明是在合適的計算機環境中實施的。雖然并不要求,但是將在諸如由個人計算機執行的程序模塊之類的計算機—可執行指令的一般情況中描述本發明。一般,程序模塊包括執行特定任務或執行特定抽象數據類型的例行程序、程序、目標、部件、數據結構等。此外,熟悉本技術領域的人員會理解,可以用其它計算機系統配置來實施本發明,包括手持裝置、多處理器系統、基于微處理器的或可編程的消費電子線路、網絡個人計算機、小型計算機、主計算機等。可以在分布式計算環境中實施本發明,在這種環境中,由通過通信網絡鏈接的遠程處理裝置來執行任務。在分布式計算環境中,可以把程序模塊置于本地和遠程存儲器存儲裝置兩者中。
下面的描述從通用計算裝置的描述開始,所述通用計算裝置可以用于實施本發明的示例系統中,并將參考圖2-4更詳細地描述本發明。現在轉到圖1,以傳統個人計算機20的形式來示出通用計算裝置,它包括處理單元21、系統存儲器22以及系統總線23,所述總線把包括系統存儲器的各種系統部件耦合到處理單元21。系統總線23可以是數種總線類型中的任何一種,包括存儲器總線或存儲器控制器、外圍總線以及使用多種總線結構中的任何一種結構的本地總線。系統存儲器包括只讀存儲器(ROM)24以及隨機存取存儲器(RAM)25。把包括幫助在個人計算機20內的單元之間傳遞信息(諸如在起動期間)的基本例行程序的基本輸入/輸出系統(BIOS)26存儲在ROM 24中。個人計算機20進一步包括用于從硬盤60讀出和寫入的硬盤驅動器27、用于從可拆卸磁盤29讀出和寫入的磁盤驅動器28、以及用于從可拆卸光盤31(諸如CD ROM或其它光學媒體)讀出或寫入的光盤驅動器30。
分別通過硬盤驅動接口32、磁盤驅動接口33以及光盤驅動接口34把硬盤驅動器27、磁盤驅動器28以及光盤驅動器30連接到系統總線23。驅動器和它們相關聯的計算機可讀出媒體提供計算機可讀出指令、數據結構、程序模塊和用于個人計算機20的其它數據的非易失性存儲。雖然這里描述的示例實施例使用硬盤60、可拆卸磁盤29和可拆卸光盤31,但是熟悉本技術領域的人員會理解,在示例操作環境中也可以使用可存儲計算機可訪問數據的其它類型計算機可讀出媒體,諸如盒式磁帶、快閃存儲器卡、數字視頻盤、Bernoulli磁帶盒、隨機存取存儲器、只讀存儲器、存儲區網絡等。
可以把包括操作系統35、一個或多個應用程序36、其它程序模塊37以及程序數據38的許多程序模塊存儲在硬盤60、磁盤29、光盤31、ROM 24或RAM25上。用戶可以通過諸如鍵盤40和指示器42之類的輸入設備把命令和信息輸入個人計算機20。其它輸入設備(未示出)可以包括話筒、搖桿、游戲小鍵盤、衛星碟形天線、掃描器等。通常通過耦合到系統總線的串行端口接口46把這些和其它輸入設備連接到處理單元21,但是可能通過其它接口連接,諸如并行端口、游戲端口或通用串行總線(USB)或網絡接口卡。還通過諸如視頻適配器48之類的接口把監視器47或其它類型的顯示裝置連接到系統總線23。除了監視器之外,個人計算機一般包括未示出的其它外圍輸出設備,諸如揚聲器和打印機。
個人計算機20可以在網絡化環境中操作,所述網絡化環境使用到諸如遠程計算機49之類的一個或多個遠程計算機的邏輯連接。雖然在圖1中只示出一個存儲器裝置50,但是遠程計算機可以是另外的個人計算機、服務器、路由器、網絡個人計算機、同等裝置或上述相對于個人計算機20描述的所有單元。在圖1中描繪的邏輯連接包括局域網(LAN)51和廣域網(WAN)52。在辦公室、全企業的計算機網、企業內部互聯網以及互聯網中,這種網絡環境是很平凡的。
當在局域網網絡環境中使用時,通過網絡接口或適配器53把個人計算機20連接到本地網絡51。當在廣域網網絡環境中使用時,個人計算機20一般包括調制解調器54或在廣域網WAN 52上建立通信的其它手段。通過串行端口接口46把調制解調器54(可以是內部的或外部的)連接到系統總線23。在網絡化環境中,可以把相對于個人計算機20或其一部分描繪的程序模塊存儲在遠程存儲器存儲裝置中。可以理解,所示的網絡連接是示例,可以使用在計算機之間建立通信鏈路的其它手段。例如,計算機可以是膝上計算機的形式,并配備有無線連接到互聯網或其它網絡的無線發送和網絡能力。
在下面的說明中,除非另有所指,將參考一臺或多臺計算機執行的操作的動作和符號表示來描述本發明。照這樣,可以理解,這些有時稱之為計算機執行的動作和操作包括通過電信號(所述電信號表示結構形式的數據)的計算機處理單元的操作。這種操作使數據變換或保持在它在計算機存儲器系統中的位置上,按熟悉本技術領域的人員理解的方式再配置或改變計算機的操作。保持數據的數據結構是存儲器的物理位置,所述存儲器具有由數據格式定義的特定特性。然而,在上述情況中描述本發明的時,并不意味著一種限制,熟悉本技術領域的人員會理解,此后描述的各種動作和操作也可以在硬件中實施。
現在轉到圖2,本發明針對一種打印服務體系結構,這種打印服務體系結構允許諸如膝上計算機、PDA、上網小區電話(或“智能小區電話”)等的移動計算裝置的用戶能夠打印文檔,即使移動裝置沒有直接連接或控制打印機,或即使該裝置不能為執行打印操作所需要的應用程序和打印機驅動程序提供處理能力或存儲器容量。根據本發明,移動裝置不需要進行使文檔變成打印機可接受格式的處理,甚至不必知道打印機的位置在哪里。而是,移動裝置只要查找移動裝置所連接的網絡上的打印服務,告訴打印服務文檔在哪里,或把文檔傳遞給打印服務,打印服務會控制打印操作,按請求打印文檔。
圖2示出一個實施例,其中執行打印服務70作為互聯網72上的網服務器的一部分。然而,可以理解,根據本發明的打印服務體系結構是可擴充的,以致可以在諸如處理打印任務的共同企業內部互聯網之類的其它網絡中使用,將在下面進行更詳細的描述。如在圖2中所示,把在本實施例中可以是上網小區電話76、PDA 78、膝上計算機80或任何其它互聯網裝置等的用戶的移動裝置連接到互聯網72上。
作為一種情況中的例子,名字為“Jane”的用戶可能在她旅行時攜帶上網小區電話76。當她在一個旅館登記住宿時,把她的“互聯網憑證”給旅館。旅館有一個具有打印服務70的互聯網上的網站86。此后,當Jane準備一個用戶會議時,Jane要打印文檔。假定包括她要打印的那一個文檔的她的文檔92存儲在網上的網存儲器90中。她使用她的上網小區電話76與互聯網72連接,并訪問(經過無線應用協議(WAP))旅館的網站86,它代表包括打印任務的查詢和選擇的打印服務界面頁面88。Jane通過界面網頁88輸入有關打印任務的信息,包括文檔的位置、打印規格數據(例如,彩色或黑/白、常用的或加粗的、復制的份數等)以及任何其它需要的信息。在這個例子中,通過文檔的統一資源定位符(URL)來規定待打印文檔94的位置。她還可以規定是否把經打印的文檔傳送到她的旅館房間或發送到總臺由她去取。然后,她提出打印請求96,并通過上網小區電話76接收來自打印服務對于接收到打印請求的確認98。
打印服務70包括部件100、此后稱之為打印服務網關(PSG),用于處理經過互聯網從不同用戶來的打印請求。當它接收到Jane的打印請求96時,它使用在旅館客人數據庫中的登記信息來驗證她的旅館客人狀態。如果有什么問題,則它會通過Jane的小區電話76立即通知她。如果用戶狀態和打印請求兩者都是有效的,則打印服務網關100使用Jane的互聯網憑證來訪問存儲了她的文檔的她的網存儲器90,并使用特定文檔94的URL來檢索該文檔。在檢索文檔之后,打印服務網關100從處理打印任務的打印機庫106選擇打印機,并把文檔變成適合于所選擇打印機的打印準備好格式。使用特定文檔格式(例如,微軟字處理)的合適應用程序來執行變換。為了該目的,打印服務可以保存用于處理不同類型文檔的多個應用程序110。另一方面,打印服務可以使用互聯網上的外部變換服務,諸如圖2中的變換服務112、114、116。然后把經變換的文檔發送到所選擇打印機進行打印,并按打印請求中的規定傳送經打印的文檔。
雖然在本例子中的移動裝置是上網小區電話,但是可以理解,提出打印請求所用的特定類型的移動裝置是不嚴格的,膝上計算機和其它互聯網裝置的用戶可以按同樣方式使用打印服務70來打印文檔。
從本例子可以看到,用戶的移動裝置不需要攜帶要打印的特定文檔。在本例子中,甚至上網小區電話76不必具有存儲文檔拷貝的存儲器容量。而是,用戶只需要規定在哪里可以找到文檔,打印服務會根據該信息和使用訪問該文檔所需要的用戶憑證自動地檢索該文檔。關于這一點,用戶的憑證是打印服務已經可得到的(例如,在旅館登記時提供),或是連同打印請求一起提供,諸如通過使用證明或互聯網“護照”。
然而,有可能用戶的移動裝置已經攜帶了文檔。例如,可以是這樣的情況,用戶的移動裝置是諸如膝上計算機之類的“富有的用戶”。在該情況中,用戶可以直接從她的裝置把文檔作為打印請求數據的一部分發送到打印服務網關。
可以理解,用戶的移動裝置不需要對文檔進行任何變換或控制打印操作。結果,移動裝置不須具有文檔特定格式的應用程序(例如,微軟字處理AdobeAcrobat Reader),而且不需要把打印驅動程序下載到裝置中。這是一個重要的優點,因為諸如PAD或上網小區電話之類的許多移動裝置不具備變換打印文檔的處理能力或保存應用程序或打印驅動程序的存儲器容量。此外,即使移動裝置是諸如膝上計算機之類具備實質處理能力和存儲容量的“富有的用戶”,但是尋找正確的驅動程序以下載到裝置然后使用裝置來控制打印機的操作也是一個極復雜的過程。通過把打印任務委托給輕量級移動裝置可訪問的網絡(例如,互聯網)上的打印服務,用戶可以在實質上她去的任何地方和她希望的任何時間(受到網絡連接的限制)使用移動裝置來打印文檔而無需關心打印操作的細節。
為了說明本發明的打印服務體系結構的寬廣的應用性,下面參考圖3描述另一種情況。在這種情況中,Jane是房地產經紀人。在她去會見她的用戶的路上,她想從她的小區電話76打印最新的住房列表。為了這個,她在她的小區電話上顯示的菜單中點擊“尋找最近的打印中心”功能。在本例子中,Jane的小區電話提供者具有黃頁服務,該服務包括到商用打印中心網頁的網鏈接。當她點擊“尋找最近的打印中心”功能時,她的小區電話檢測她當前的位置,并搜索該位置的打印中心列表。它按離開她當前位置的距離增加的次序顯示出五種最佳選擇。Jane通過點擊一個打印中心的鏈接從該列表選出例如具有特許名稱“ABC”的打印中心124。然后她連接到ABC的網服務器120,并用所顯示的ABC網頁122來輸入她的請求。然后,她通過ABC網頁輸入她的打印請求和計費信息。
與圖2的例子相似,接收打印請求的服務網關126駐宿在ABC打印中心網服務器120上。當用戶輸入打印請求時,打印服務網關檢索在請求中規定的URL處的文檔,把文檔改變成打印格式,并在Jane選擇的ABD打印中心124處的打印機上打印。在本實施例中,由于通過用戶選擇在打印中心處要打印的文檔,所以在網上的ABC的打印服務不需要本地打印機。
本發明的打印服務框架是可擴充的,而且可以用于不同大小的網絡。作為例子,下面參考圖4描述另一種移動打印情況,圖4示出一個實施例,在該實施例中,在公司的企業內部互聯網上實施打印服務132。在這種情況中,名字為“Chris”的用戶到他公司中的另一建筑物中的會議室去開會,他隨身攜帶他的連接網絡的PDA 138。在會議室中,他意識到他必須打印一份會議的文檔。為了如此進行,Chris不需要知道共享的打印機在建筑物的什么地方或如何安裝打印驅動程序。他使用他的PDA通過共同的企業內部互聯網136訪問駐宿在他的辦公室中的臺式個人計算機(PC)132上的打印服務網關142。打印服務網關142已經訪問Chris的PC 132可用的所有的公司網絡打印機。它幫助Chris選擇一臺特定的打印機,諸如通過打印機定位圖。Chris使用PDA與打印服務網關142交互作用,并把打印請求148發送給打印服務網關。打印請求通過URL識別要打印的文檔,該文檔可能存儲在他的臺式PC中,或在企業內部互聯網的一個位置上。它還根據諸如打印機位置之類的信息識別目標打印機。如果需要的話,Chris的計算機根據要求安裝目標打印機所需要的打印機驅動程序。然后Chris走到所識別的打印機去選取經打印的文檔。
回到圖2,在一個實施例中,打印服務70包括一個或多個服務器,每個服務器都駐宿有打印服務網關部件100,以及用于處理各種文檔格式的應用程序110的集合。例如,應用程序可以包括用于HTML(超文本標簽語言)文檔的Microsoft Internet Explorer、用于“.PDF”文件的Adobe Acrobat Reader以及用于“.DOC”的微軟字處理等。在示例實施例中,打印服務進一步包括打印機106的集合以及應用程序可以用來產生打印準備好輸出數據的相應的打印機驅動程序。打印機驅動程序的集合根據服務支持的特定打印機而變化。例如,旅館打印服務可以使用與管理相同的打印機型號,并且只需要一種打印機驅動程序,而企業的打印服務可能由于不同打印機型號的積累而需要許多打印機驅動程序。
打印服務70包括提供用戶界面的打印服務用戶界面部件150,以允許用戶輸入打印請求和得到請求的確認。它還可以提供一般戶打印請求和打印服務的最新狀態。這個用戶界面部件根據服務以及用戶而變化(例如,與膝上個人計算機相比,PDA用小屏幕)。在用戶界面之后是打印服務網關的編程界面,它定義如何構成到打印服務的打印請求以及經過互聯網(或企業內部互聯網)接收反饋。在一種實施中,用戶界面部件創建實際打印請求軟件包,并把它發送到打印服務網關。在另一種實施中,用戶可以直接訪問打印服務網關的編程界面,并把打印請求(按XML(擴展標簽語言)格式)直接發送到打印服務。
在一種實施中,打印請求的內容包括下列數據
1.用戶的“互聯網憑證”或網站身份。需要這個信息來鑒別文檔訪問以及打印服務訪問的用戶。也可以在登錄或計費時使用。
2.文檔的內容或它的URL。
3.任選的文檔的格式。如果不提供這個信息,則打印服務將通過分析內容來確定格式,盡管這一般是效率不高的。
4.任選的目標打印機的URL和諸如型號名稱、PnP ID(PnP識別號)、安全訪問代碼等的特征。
5.任選的、用于選擇目標打印機的標準(例如,位置)。如果這個信息丟失以及沒有給出打印機URL,則打印服務會根據它自己的標準(諸如負載平衡和優先級)選擇目標打印機。
6.任選的打印操作要求,諸如彩色、雙面、常用。如果丟失這個信息,則將使用缺省設置。
打印服務70產生的響應的內容包括接受請求的確認或拒絕請求,如果接受請求,則一個在登錄和計費中使用的任務ID(識別號)。由于下列任何一個原因和/或其它原因可能拒絕打印請求沒有鑒別用戶能使用打印服務;打印服務離線;不能檢索文檔內容;不支持文檔格式;不支持規定的打印機;以及不能滿足規定的打印要求(諸如彩色打印)。
諸如膝上計算機之類某些“富有的用戶”裝置具有更大的處理能力以及較大的應用程序庫。就提出打印請求而論,它們可能更高級,所以用戶可能得到較佳的打印質量和性能。例如,裝置可以查詢所支持文檔格式的列表(例如按照減少優先權的次序)。
在經過圖2中示出的互聯網的移動打印實施例中,打印服務網關(PSG)100包括路由部件160、變換部件162、以及登錄和計費部件166。路由部件160執行下面的功能·分析輸入打印請求。
·鑒別要使用打印服務的用戶。
·與用戶協商有關的打印能力(例如,文檔格式)。這將允許強大的用戶提出最佳效果的較佳格式。
·如果需要的話,檢索文檔內容。如果文檔的訪問有限制,則使用所提供的用戶憑證。
·使用戶的請求有效,并給出反饋。如果支持從給定源格式到給定目標格式的轉換,則這包括調用PSG變換部件使之有效。
·使請求進行假脫機和調度以進一步處理(變換和/或打印)。
·如果合適的話,把打印請求再引導到另一個打印服務。可以把這用于打標記服務。例如,旅館打印服務可以簡單地使所有打印請求通過而到達實際處理和打印的打印服務承包人。
打印服務網關100的變換部件162負責把源文檔格式轉換成一般是打印準備好格式的目標格式。它保持信息,使之約在所支持的輸入格式和輸出格式之間映射。這包括信息,所述信息有關格式是什么以及執行特定的映射需要什么應用程序軟件或外部變換服務。它使用數據驅動的方法來提供可伸展性。
當在本地完成格式轉換時,在本地安裝合適的應用程序軟件和打印驅動程序。如果使用外部專用打印變換服務,則打印服務網關使內容(例如,.PS文件)簡單地通過而無需任何轉換。為了增加格式轉換的可靠性,具有一個正規的中間格式是極有利的,所有用戶可以使用它來提出文檔數據。這種格式將與裝置無關。缺少標準格式,打印服務可能使格式限制在滿足它的可靠性標準的設置上。
網打印服務的另一個部件是登錄和計費部件,它處理打印請求服務的登錄和計費操作。為支持互聯網業務模型而提供,如果在不同類型的網絡中執行網絡打印服務,有可能不需要。例如,當旅館打印服務需要計費功能時,在公司的企業內部互聯網上的打印服務可能不需要。
如上所述,打印服務提供編程界面,該編程界面允許用戶提出打印任務請求以及查詢任務狀態。在一種實施中,存在網打印服務支持的三種強制性方法CreatePrintJob(創建打印任務)允許用戶提出打印請求。
CancelPrintJob(取消打印任務)允許用戶取消以前已經提出的打印請求。
GetPrintJobData(得到打印任務數據)允許用戶查詢以前已經提出的打印請求的狀態。
還有網打印服務可以選擇支持以使操作最優化的三種任選的方法IsFormatSupported(支持格式嗎)允許用戶找出打印服務是否支持特定文檔格式。用戶可以首先使用這種方法來驗證格式,特別當直接把文檔內容嵌入在打印請求中時。
GetSupportedFormat(得到支持的格式)允許用戶得到支持文檔格式的列表。用戶可能要求使用這種方法來選擇一種最優格式以提出源文檔,特別當用戶(例如,膝上計算機)有能力進行格式轉換的某些形式時。
GetPrinterModels(得到打印機型號)允許用戶找出打印服務使用的打印機型號列表以及它們相關聯的可安裝的設置(諸如是否安裝雙面器)。這將使富有的用戶(諸如膝上計算機)產生高保真度打印機準備數據,并通過打印服務直接到打印機。少數打印服務期望支持這種方法,正好是只接收打印機準備數據的那些服務。
下面描述以上確定的方法中的每一種方法的細節。在每種方法的說明的后面是詳細說明所有參數的“變元”表。它具有如下的屬性Data Field(數據字段)參數的名稱。它跟隨在名稱約定VisualStudio.NET之后。
Dir參數的方向,IN(入),OUT(出),或IN/OUT(入/出)(在C#中的‘ref’)。
Type數據類型,如C#中所定義。
M/O表示參數是強制性的(‘M’)還是任選的(‘O’)。
Comment(注釋)定義參數的意思和它的用途。
如果在多種方法中出現相同的參數,則該參數具有相同的意思并且只在一個地方定義。
跟隨在“變元”表之后的是錯誤代碼列表。錯誤代碼返回到<SOAPfault>單元中。從IPP狀態代碼得到錯誤代碼,其名稱跟隨在C#名稱約定之后。
1.CreatePrintJob當調用CreatePrintJob時,打印服務將創建新的打印任務以表示新打印請求以及分配唯一的任務ID(識別號)。它根據用戶的提供以及實際可得到的支持來更新任務數據。如果提供文檔URL鏈接,則它以用戶的名義檢索文檔內容。如果一切都有效,則它設置任務狀態為“接受”,并在繼續進行文檔打印的同時對用戶作出響應。用戶可以在較晚時間通過GetPrintJobData查詢打印請求的狀態,諸如估計完成時間或實際打印設置。在所有情況中,在它的響應中設置合適的操作錯誤代碼。
注意,如果打印服務選擇接受打印準備好數據,則它應支持參數“jobTicket”,該參數封裝用于產生打印準備好數據的打印設置的整個集。“jobTicket”是基于標準視窗打印系統方案的。如果打印服務不能承受“jobTicket”中的所有設置,則它應拒絕打印請求和返回ClientErrorNotPossible(用戶錯誤不可能)。
Arguments(變元)數據字段jobID方向OUT;類型單元;M/OM注釋打印服務在1到2^32-1的范圍中創建唯一的打印任務識別號。在保證沒有兩個有效的打印請求具有相同識別號的同時,打印服務可以使任務識別號再循環。在諸如CancelPrintJob(取消打印任務)和GetPrintJobData(得到打印任務數據)之類接著的操作中使用這個識別號。
數據字段jobname(任務名稱)方向IN;類型字符串;M/OM注釋打印請求的名稱,諸如要打印的文檔的名稱。
數據字段userName(用戶名稱)方向IN;類型字符串;M/OM注釋經編碼的用戶護照簽到識別號和口令。將使用這個憑證來鑒定打印服務的使用以及當使用文檔URL時使打印服務以用戶的名義檢索文檔內容。如果諸如商業打印店之類的打印服務需要用戶憑證,則用戶必須提供這個數據。否則,它將接收到“ClientErrorNotAuthenticated”(用戶錯誤未鑒定)。
數據字段docLink(文檔鏈接)方向IN;類型字符串;M/OO注釋待打印文檔的URL。如果它丟失了,則打印服務應該假設用戶將通過“docContent”(文檔內容)參數直接發送文檔內容。在大多數情況中,提供“docLink”,即,通過參考打印。如果打印服務支持一個任務中接受多個文檔,則用戶可以在一個CreatPrintJob請求中提供多個URL。
數據字段docContent(文檔內容)方向IN;類型字節[];M/OO
注釋字節的序列表示待打印文檔的內容,如果這是零,并且“docLink”也是零,則打印服務將帶錯誤代碼“ClientErrorDocumentAccessError”(用戶錯誤文檔訪問錯誤)而返回。
數據字段docFormat(文檔格式)方向IN;類型字符串;M/OO注釋文檔內容的格式,諸如“PostScript Level 2”或“DOC”。如果不提供該參數,則打印服務將分析文件名稱和/或內容,以便弄清楚格式。
數據字段targetPrinter(目標打印機)方向IN;類型字符串;M/OO注釋目標打印機的名稱。
數據字段numOfCopies(復制份數)方向IN;類型單元;M/OO注釋要打印的復制份數。缺省值是1。將核對所有打印頁面。
數據字段duplex(雙面)方向IN;類型字符串;M/OO注釋定義在物理頁面上如何打印邏輯頁面。任選包括“單面打印”、“沿長邊雙面打印”以及“沿邊短雙面打印”。
數據字段nUp(n向上)方向IN;類型字符串;M/OO注釋定義在物理頁面的一面上如何編排邏輯頁面。從“1-向上”、“2-向上”以及“4-向上”選擇。缺省值是“1-向上”。
數據字段isColor(是彩色嗎)方向IN;類型布爾(bool);M/OO注釋如果“真”,則用彩色打印文檔。否則,用黑/白打印。缺省值是黑/白。
數據字段paperType(紙型號)方向IN;類型字符串;M/OO注釋在打印文檔時使用的紙的型號,諸如“201b標準白紙”。由每個打印服務設置缺省值。如果是由用戶規定的,則將對照其它任務要求進行驗證。如果有沖突,則服務應根據它的優先級選取合適的紙型號,并相應地更新任務數據。
數據字段bindingType(裝訂式樣)方向IN;類型字符串;M/OO注釋待使用的裝訂式樣,諸如“無”、“卷”、“梳狀”、“U形釘釘住”。缺省值是“無”。如果由用戶規定,則將對照其它任務要求進行驗證。如果有沖突,則服務應選取合適的裝訂式樣,并相應地更新任務數據。
數據字段jobTicket()方向IN;類型字節[];M/OO注釋描述用于產生打印準備好數據的打印設置的整個集的XML氣泡。只在提出打印準備好(“原始”)文檔時使用。它遵循標準視窗打印系統方案。
數據字段<custom fields>(定制字段)方向IN;類型N/A;M/OO注釋每個打印服務可以定義附加的字段,諸如“promotion code’(提升代碼)。
錯誤代碼代碼0x0000;意義SuccessfulOK(成功同意);用途該操作成功。
代碼0x0400;意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如不良參數值。
代碼0x0402;意義ClientErrorNotAuthenticated(用戶錯誤不鑒定);用途不鑒定用戶使用打印服務。
代碼0x0403;意義ClientErrorNotAuthorized(用戶錯誤不授權);用途不授權用戶創建打印任務。
代碼0x0404;意義ClientErrorNotPossible(用戶錯誤不可能);用途打印服務不能滿足要求,諸如當用戶提出打印準備好數據時不能承受在任務票(jobTicket)中的所有設置。
代碼0x040a;意義ClientErrorDocumentFormatNotSupported(用戶錯誤溫度格式不支持);用途不支持源文檔格式。
代碼0x0411;意義ClientErrorDocumentFormatError(用戶錯誤文檔格式錯誤);用途源文檔是形成不良的。
代碼0x0412;意義ClientErrorDocumentAccessError(用戶錯誤文檔訪問錯誤);用途打印服務不能訪問文檔內容。
代碼0x0500;意義ServerErrorInternalError(服務錯誤內部錯誤);用途這是所有內部錯誤的雜物箱錯誤代碼。
代碼0x0506;意義ServerErrorNotAceptingJob(服務器錯誤不接受任務);用途由于某些原因打印服務不接受新的打印任務。
代碼0x0509;意義ServerErrorMultipleDocumentJobNotSupported(服務器錯誤多個文檔任務不支持);用途打印服務不能接受包含多個文檔的打印請求。
2.CANCELPRINTJOB(取消打印任務)在驗證用戶憑證之后打印服務刪除給定的打印任務。
變元數據字段jobID(任務識別號)方向IN;類型單元;M/OM注釋在CreatePrintJob響應中返回的唯一的任務識別#。
數據字段userCredential(用戶憑證)方向IN;類型字符串;M/OO注釋如果用用戶憑證創建任務,則取消該任務需要相同的憑證。
錯誤代碼代碼0x0000;代碼意義SuccessfulOK(成功同意);用途成功地刪除任務。
代碼0x0400;代碼意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如無效的任務識別號或任務已經取消。
代碼0x0402;代碼意義ClientErrorNotAuthenticated(用戶錯誤不鑒定);用途不鑒定用戶。
代碼0x0403;代碼意義ClientErrorNotAuthorized(用戶錯誤不授權);用途不授權用戶刪除給定的打印任務(例如另外某個人的任務)。
代碼0x0500;代碼意義ServerErrorInternalError(服務錯誤內部錯誤);用途所有內部錯誤的雜物箱錯誤代碼。
3.GetPrintJobData這個方法返回與給定任務識別號相關聯的打印任務數據集,如下所列出。任務可以是任何狀態“接受”、“打印”、“取消”或“完成”。每個打印任務決定它要把打印任務的數據保持多久。
注意,當打印請求包含與裝置無關的文檔格式(諸如.DOC)時,與請求一起來的打印設置作為“建議”來處理。服務可以根據它的能力調節設置,以便解決沖突(諸如“彩色”以及“雙面打印”)。用戶可以調用GetPrintJobData來找出打印中使用的實際設置,如果合適的話,就通知用戶。
變元數據字段jobID(任務識別號)方向IN;類型單元;M/OM注釋在CreatePrintJob響應中返回的唯一的任務識別#。
數據字段userCredential(用戶憑證)方向IN;類型字符串;M/OO注釋如果用用戶憑證創建打印任務,則需要。
數據字段jobState(任務狀態)方向OUT;類型字符串;M/OM注釋任務的當前狀態“接受”、 打印”、“取消”或“完成”。
數據字段timeOfSubmission(提出時間)方向OUT;類型字符串;M/OM注釋當接受任務時的經編碼的時間戳。格式是ISO 8601。本地時間表示為YYYYMMDDTHHMMSS,而UTC時間為YYYYMMDDTHHMMSSZ。
數據字段jobName(任務名稱)方向OUT;類型字符串;M/OM注釋打印任務的名稱。
數據字段userName(用戶名稱)方向OUT;類型字符串;M/OM注釋占有該任務的用戶名。
數據字段printer(打印機)方向OUT;類型字符串;M/OM注釋打印任務發送到的打印機。
數據字段numOfCopies(復制份數)方向OUT;類型單元;M/OM注釋要打印#份拷貝。
數據字段nUp(n向上)方向OUT;類型字符串;M/OM注釋布局的說明。如果當創建打印任務時用戶已經規定布局格式,則有可能要修改來解決沖突和其它限制。
數據字段duplex(雙面)方向IN;類型字符串;M/OM注釋雙面設置。如果當創建打印任務時用戶已經規定雙面設置,則有可能要修改來解決沖突和其它限制。
數據字段isColor(是彩色嗎)方向OUT;類型布爾(bool);M/OM注釋表示是否為彩色任務。
數據字段paperType(紙型號)方向OUT;類型字符串;M/OM注釋打印任務所使用的紙的型號。如果當創建打印任務時用戶已經規定紙的型號,則有可能要修改來解決沖突和其它限制。
數據字段bindingType(裝訂式樣)方向OUT;類型字符串;M/OO注釋打印任務所使用的裝訂式樣,如果當創建打印任務時用戶已經規定裝訂式樣,則有可能要修改來解決沖突和其它限制。
數據字段completionTime(完成時間)方向OUT;類型字符串;M/OO注釋期望完成打印任務的期限。格式是ISO 8601。本地時間表示為YYYYMMDDTHHMMSS,UTC時間表示為YYYYMMDDTHHMMSSZ。
數據字段printCost(打印成本)方向OUT;類型字符串;M/OO注釋當服務對打印收費時使用。
數據字段mailingCost(郵寄成本)方向OUT;類型字符串;M/OO注釋當把打印頁面郵寄給用戶時使用。
錯誤代碼GetPrintJobData具有和CancelPrintJob相同的錯誤代碼集。
4.IsFormatSupported(支持格式嗎)如果打印服務支持這種方法,則如果支持給定的文檔格式它就應該返回“真”。否則,返回“假”。
變元數據字段docFormat(文檔格式)方向IN;類型字符串;M/OM注釋文檔格式名稱。
數據字段supported(支持)方向OUT;類型布爾(bool);M/OM注釋真或假。
錯誤代碼代碼0x0000;代碼意義SuccessfulOK(成功同意);用途成功地完成請求。
代碼0x0400;代碼意義ClientErrorBadRequest(用戶錯誤不良請求);用途請求是形成不良的,諸如零‘docFormat’。
代碼0x0500;代碼意義ServerErrorInternalError(服務錯誤內部錯誤);用途所有內部錯誤的雜物箱錯誤代碼。
代碼0x0501;代碼意義ServerErrorOperationNotSupported(服務器錯誤操作不支持);用途打印服務不支持該方法。
5.GETSUPPORTEDFORMATS(得到支持格式)如果打印服務支持這種方法,則它應該返回支持文檔格式的列表。
變元數據字段supportedFormat(支持格式)方向OUT;類型字符串;M/OM注釋文檔格式的陣列。
錯誤代碼具有同IsFormatSupported相同的錯誤代碼集。注意,如果用戶有轉換文檔格式的手段(諸如特定打印機驅動程序),則它可以使用GetSupportedFormats來找到最優化的提交格式。否則,它可以使用IsFormatSupported來查詢所牽涉的文檔是否可以打印。用戶不必調用任何方法使文檔格式有效。如果它不這樣,而且不支持所提出的格式,則打印服務將返回ClientErrordocumentFormatNotSupported(用戶錯誤文檔格式不支持)錯誤代碼。
6.GETPRINTERMODELS(得到打印機型號)如果打印服務支持這種方法,則它應該返回正在使用的打印機名稱(諸如“HP LaserJet 8000”)的列表。這種方法針對富有的PC用戶,以最優化的打印變換質量把打印機準備好數據直接發送到打印服務。
變元數據字段printerModel(打印機型號)方向OUT;類型字符串;M/OM注釋打印機型號名稱的陣列。
錯誤代碼具有同IsFormatSupported相同的錯誤代碼集。
WSD(網絡服務說明語言)定義根據本發明的一個實施例的特征,為了加強互聯網上的網打印服務的打印服務界面的通用性,提供根據XML(擴展標簽語言)的網服務說明語言(WSDL)來描述打印服務界面。它定義了在與網打印服務交換消息時用戶必須遵循的消息格式。注意,對于特定實施,根據需要和任選的參數(‘minOccurs’),WSDL說明可能稍有改變。還有,缺省值名稱空間和打印服務的位置將需要修改。
<pre listing-type="program-listing"><?xml version="1.0"encoding="utf-8"?><definitionsxmlnshttp="http//schemas.xmlsoap.org/wsdl/http/"xmlnssoap="http//schemas.xmlsoap.org/wsdl/soap/"xmlnss="http//www.w3.org/2001/XMLSchema"xmlnss0="http//tempuri.org/"xmlnssoapenc="http//schemas.xmlsoap.org/soap/encoding/"xmlnstm="http//microsoft.com/wsdl/mime/textMatching/"xmlnsmime="http//schemas.xmlsoap.org/wsdl/mime/"targetNamespace="http//tempuri.org/"xmlns="http//schemas.xmlsoap.org/wsdl/"><types> <sschema elementFormDefault="qualified"targetNamespace="http//tempuri.org/"> <selement name="CreatePrintJob"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="jobName" type="sstring"/> <selement minOccurs="1"maxOccurs="1"name="userName" type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="userCredential"type="sstring"/><dp n="d21"/> <selement minOccurs="0"maxOccurs="1" name="docLink"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="docContent"type="sbase64Binary"/> <selementminOccurs="0"maxOccurs="1"name="docFormat"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="targetPrinter"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="numOfCopies"type="sunsignedInt"/> <selement minOccurs="0"maxOccurs="1"name="duplex"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="nUp"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="isColor"type="sboolean"/> <selement minOccurs="0"maxOccurs="1"name="paperType"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="bindingType"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="jobTicket"type="sbase64Binary"/></ssequence> </scomplexType></selement><selement name="CreatePrintJobResponse"> <scomplexType><dp n="d22"/><ssequence> <selement minOccurs="1"maxOccurs="1"name="CreatePrintJobResult" type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="jobID"type="sunsignedInt"/></ssequence> </scomplexType></selement><selement name="CancelPrintJob"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="jobID"type="sunsignedInt"/> <selement minOccurs="0"maxOccurs="1"name="userCredential"type="sstring"/></ssequence> </scomplexType></selement><selement name="CancelPrintJobResponse"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="CancelPrintJobResult"type="sunsignedInt"/></ssequence> </scomplexType></selement><selement name="GetPrintJobData"><dp n="d23"/> <scomplexType> <ssequence> <selement minOccurs="1"maxOccurs="1"name="jobID"type="sunsignedInt"/> <selement minOccurs="0"maxOccurs="1"name="userCredential"type="sstring"/></ssequence> </scomplexType></selement><selement name="GetPrintJobDataResponse"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="GetPrintJobDataResult"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="jobState"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="errorCode"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="timeOfSubmission"type="sstring"/> <selement minOccurs="1"maxOccurs="1"name ="jobName"type="sstring"/> <selement minOccurs="1"maxOccurs="1"name="userName"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="printer"type="sstring"/><dp n="d24"/> <selement minOccurs="1"maxOccurs="1"name="numOfCopies"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="duplex"type="sstring"/> <selement minOccurs="1"maxOccurs="1"name="nUp"type="sstring"/> <selement minOccurs="1"maxOccurs="1"name="isColor"type="sboolean"/> <selement minOccurs="1"maxOccurs="1"name="paperType"type="sstring"/> <selement minOccurs="1"maxOccurs="1"name="bindingType"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="completionTime"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="printingCost"type="sstring"/> <selement minOccurs="0"maxOccurs="1"name="mailingCost"type="sstring"/></ssequence> </scomplexType ></selement><selement name="IsFormatSupported"> <scomplexType ><ssequence> <selement minOccurs="1"maxOccurs="1"name="docFormat"type="sstring"/> </ssequence><dp n="d25"/> </scomplexType></selement><selement name="IsFormatSupportedResponse"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="IsFormatSupportedResult"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="supported"type="sboolean"/> </ssequence> </scomplexType></selement><selement name="GetSupportedDocFormats"> <scomplexType/></selement><selement name="GetSupportedDocFormatsResponse"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="GetSupportedDocFormatsResult"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="supportedDocFormats"type="s0ArrayOfString"/></ssequence> </scomplexType></selement><scomplexType name="ArrayOfString"> <ssequence><dp n="d26"/><selement minOccurs="0"maxOccurs="unbounded"name="string"nillable="true"type="sstring"/> </ssequence></scomplexType><selement name="GetPrinterModels"> <scomplexType/></selement><selement name="GetPrinterModelsResponse"> <scomplexType><ssequence> <selement minOccurs="1"maxOccurs="1"name="GetPrinterModelsResult"type="sunsignedInt"/> <selement minOccurs="1"maxOccurs="1"name="printerModels"type="s0ArrayOfString"/></ssequence> </scomplexType></selement><selement name="unsignedInt"type="sunsignedInt"/> </sschema></types><message name="CreatePrintJobSoapIn"> <part name="parameters"element="s0CreatePrintJob"/></message><message name="CreatePrintJobSoapOut"> <part name="parameters"element="s0CreatePrintJobResponse"/></message><dp n="d27"/> <message name="CancelPrintJobSoapIn"><part name="parameters"element="s0CancelPrintJob"/> </message> <message name="CancelPrintJobSoapOut"><part name="parameters"element="s0CancelPrintJobResponse"/> </message> <message name="GetPrintJobDataSoapIn"><part name="parameters"element="s0GetPrintJobData"/> </message> <message name="GetPrintJobDataSoapOut"><part name="parameters"element="s0GetPrintJobDataResponse"/> </message> <message name="IsFormatSupportedSoapIn"><part name="parameters"element="s0IsFormatSupported"/> </message> <message name="IsFormatSupportedSoapOut"><part name="parameters"element="s0IsFormatSupportedResponse"/> </message> <message name="GetSupportedDocFormatsSoapIn"><part name="parameters"element="s0GetSupportedDocFormats"/> </message> <message name="GetSupportedDocFormatsSoapOut"><dp n="d28"/><part name="parameters"element="s0GetSupportedDocFormatsResponse"/> </message> <message name="GetPrinterModelsSoapIn"><part name="parameters"element="s0GetPrinterModels"/> </message> <message name="GetPrinterModelsSoapOut"><part name="parameters"element="s0GetPrinterModelsResponse"/> </message> <portType name="WebPrintServiceSoap"> <operation name="CreatePrintJob"> <input message="s0CreatePrintJobSoapIn"/> <output message="s0CreatePrintJobSoapOut"/> </operation> <operation name="CancelPrintJob"> <input message="s0CancelPrintJobSoapIn"/> <output message="s0CancelPrintJobSoapOut"/> </operation> <operation name="GetPrintJobData"> <input message="s0GetPrintJobDataSoapIn"/> <output message="s0GetPrintJobDataSoapOut"/> </operation> <operation name="IsFormatSupported"> <input message="s0IsFormatSupportedSoapIn"/> <output message="s0IsFormatSupportedSoapOut"/><dp n="d29"/></operation><operation name="GetSupportedDocFormats"> <input message="s0GetSupportedDocFormatsSoapIn"/> <output message="s0GetSupportedDocFormatsSoapOut"/></operation><operation name="GetPrinterModels"> <input message="s0GetPrinterModelsSoapIn"/> <output message="s0GetPrinterModelsSoapOut"/></operation> </portType> <binding name="WebPrintServiceSoap"type="s0WebPrintServiceSoap"><soapbindingtransport="http//schemas.xmlsoap.org/soap/http" style="document"/><operation name="CreatePrintJob"> <soapoperationsoapAction="http//tempuri.org/CreatePrintJob"style="document"/> <input><soapbody use="literal"/> </input> <output><soapbody use="literal"/> </output></operation><dp n="d30"/><operation name="CancelPrintJob"> <soapoperationsoapAction="http//tempuri.org/CancelPrintJob"style="document"/> <input> <soapbody use="literal"/> </input> <output> <soapbody use="literal"/> </output> </operation> <operation name="GetPrintJobData"> <soapoperationsoapAction="http//tempuri.org/GetPrintJobData"style="document"/> <input> <soapbody use="literal"/> </input> <output> <soapbody use="literal"/> </output> </operation> <operation name="IsFormatSupported"> <soapoperationsoapAction="http//tempuri.org/IsFormatSupported"style="document"/> <input><dp n="d31"/> <soapbody use="literal"/> </input> <output><soapbody use="literal"/> </output></operation><operation name="GetSupportedDocFormats"> <soapoperationsoapAction="http//tempuri.org/GetSupportedDocFormats"style="document"/> <input><soapbody use="literal"/> </input> <output><soapbody use="literal"/> </output></operation><operation name="GetPrinterModels"> <soapoperationsoapAction="http//tempuri.org/GetPrinterModels"style="document"/> <input><soapbody use="literal"/> </input> <output><soapbody use="literal"/> </output><dp n="d32"/></operation> </binding> <service name="WebPrintService"><documentation>web print service.</documentation><port name="WebPrintServiceSoap"binding="s0WebPrint ServiceSoap"> <soapaddresslocation="http//localhost/PCPrintPortal/WebPrintService.asmx"/> </port> </service></definitions></pre>由于有許多實施例可以應用本發明的原理,應該理解,這里描述的根據附圖的實施例意味著僅作為示例而不是作為對本發明的限制。因此,這里所描述的本發明設想在下面權利要求書的范圍內的所有如此的實施例以及其等效物。
權利要求
1.具有計算機可執行指令以執行在網絡上提供打印服務的步驟的一種計算機可讀出媒體,其特征在于,它包括顯示一個服務界面,供用戶經過網絡與打印服務通信,以輸入打印請求的打印請求數據,所述打印請求數據包括識別待打印文檔的數據;使打印請求有效和向用戶提供反饋;得到待打印的文檔;把所述文檔變換成用于打印的格式;以及根據所述打印請求打印經變換的文檔。
2.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述網絡是互聯網。
3.如權利要求2所述的一種計算機可讀出媒體,其特征在于,所述服務界面包括網頁,用戶通過所述網頁輸入打印請求數據。
4.如權利要求2所述的一種計算機可讀出媒體,其特征在于,識別所述待打印文檔的數據包括待打印文檔的URL(統一資源定位符),并且其中,計算機可讀出媒體進一步包括計算機可執行指令,用于執行從所述URL檢索出待打印文檔的步驟。
5.如權利要求4所述的一種計算機可讀出媒體,其特征在于,檢索所述待打印文檔的步驟包括使用用戶憑證來得到對所述URL的訪問。
6.如權利要求2所述的一種計算機可讀出媒體,其特征在于,得到所述待打印文檔的步驟包括在互聯網上檢索出來自用戶的待打印文檔的發送。
7.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述變換步驟包括運行相應于待打印文檔格式的本地應用程序以變換所述文檔。
8.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述變換步驟包括調用遠程打印變換服務來變換待打印文檔。
9.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述打印步驟包括在打印服務的本地打印機上打印文檔。
10.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述打印步驟包括在遠程打印機上打印文檔。
11.如權利要求1所述的一種計算機可讀出媒體,其特征在于,所述網絡是企業內部網。
12.供移動計算裝置的用戶打印文檔的一種方法,其特征在于,它包含使用移動計算裝置來連接其上駐留有打印服務的一個網絡;訪問打印服務提供的服務界面,用于接收打印請求;通過服務界面輸入打印文檔的打印請求數據,所述打印請求數據包括識別待打印文檔的數據;以及接收來自打印服務的、確認接收的打印請求數據的確認。
13.如權利要求12所述的方法,其特征在于,所述網絡是互聯網。
14.如權利要求13所述的方法,其特征在于,所述服務界面包括網頁,用戶通過所述網頁輸入打印請求數據。
15.如權利要求12所述的方法,其特征在于,所述輸入打印請求數據步驟包括輸入待打印文檔的URL。
16.如權利要求15所述的方法,其特征在于,所述輸入步驟進一步包括為訪問URL而提供用戶的憑證。
17.如權利要求12所述的方法,其特征在于,所述輸入步驟進一步包括經過互聯網把待打印文檔發送到打印服務。
18.如權利要求12所述的方法,其特征在于,所述網絡是企業內部網。
19.如權利要求12所述的方法,其特征在于,所述移動計算裝置是網絡蜂窩電話。
20.如權利要求12所述的方法,其特征在于,所述移動計算裝置是膝上計算機。
21.如權利要求12所述的方法,其特征在于,所述移動計算裝置是個人數字助理(PDA)裝置。
22.一種可通過網絡訪問的打印服務系統,其特征在于,它包括界面部件,用于向用戶提供經過所述網絡可訪問的服務界面,供用戶輸入打印請求的打印請求數據,所述打印請求數據包括識別待打印文檔的數據;請求處理部件,用于使打印請求有效而得到待打印文檔,并根據打印請求打印經變換的文檔。
23.如權利要求22所述的打印服務系統,其特征在于,進一步包括變換部件,用于把文檔變換成打印格式。
24.如權利要求23所述的打印服務系統,其特征在于,進一步包括相應于待打印文檔格式和所述變換部件可調用的至少一個應用程序,用于把所述文檔變換成打印格式。
25.如權利要求23所述的打印服務系統,其特征在于,對所述變換部件編程以調用遠程打印變換服務,把所述文檔變換成打印格式。
26.如權利要求22所述的打印服務系統,其特征在于,所述網絡是互聯網,其中,所述服務界面包括網頁,用戶可以通過所述網頁輸入打印請求數據。
27.如權利要求22所述的打印服務系統,其特征在于,配置服務界面以接收識別待打印文檔位置的URL作為打印請求數據的參數。
28.如權利要求27所述的打印服務系統,其特征在于,對所述請求處理部件進行編程以訪問檢索待打印文檔的URL。
29.如權利要求28所述的打印服務系統,其特征在于,對所述請求處理部件進行編程,以使用用戶憑證以便得到對所述URL的訪問。
30.如權利要求22所述的打印服務系統,其特征在于,配置所述服務界面以經過網絡接收來自用戶的待打印文檔。
31.如權利要求22所述的打印服務系統,其特征在于,進一步包括打印文檔的可選擇的打印機庫。
32.如權利要求22所述的打印服務系統,其特征在于,進一步包括登錄和計費部件,用于處理打印請求處理的登錄和計費。
全文摘要
在諸如互聯網或共同的企業內部互聯網之類的網絡上提供一種打印服務,用于諸如膝上計算機、PDA和上網小區電話等的移動計算裝置。當移動裝置的用戶要打印文檔時,使用移動裝置來訪問打印服務,并發送打印請求,所述打印請求根據URL(統一資源定位符)而規定文檔在網絡上的位置。作為響應,打印服務使打印請求有效,檢索文檔、把文檔變換成可打印、并按用戶的請求打印文檔。另一方面,可以通過移動裝置直接把文檔提供給打印服務。
文檔編號G06K9/00GK1495601SQ0314524
公開日2004年5月12日 申請日期2003年6月25日 優先權日2002年6月26日
發明者Z·吳, Z 吳 申請人:微軟公司