專利名稱:便于進行無驅動打印的方法、系統及計算設備的制作方法
技術領域:
所公開的實施例涉及用于計算機系統的打印機。更具體地,公開的實施例涉及無 需管理特定于打印機的驅動軟件而工作的基于計算機的打印系統。
背景技術:
對于計算機用戶,打印機往往是成問題的。在計算機用戶初始安裝打印機時,電纜 和電源線的裝配通常不成問題。然而,用戶通常不得不安裝特定于打印機的驅動程序,這包 括從盤載入驅動程序或者導航到某個網站并下載驅動程序。即使打印機驅動程序已經載入 計算機系統中,用戶也常常不得不從打印機制造商的網站下載和安裝該驅動程序的更新。 這些安裝操作是耗時的,并且通常需要用戶找到和輸入長的軟件許可密鑰。因此,需要一種便于安裝打印機而沒有上述問題的系統。
發明內容
所公開的實施例提供了一種便于無驅動打印的系統。該系統包括發現部件,其被 配置成識別可訪問的打印機和便于選擇可訪問的打印機,其中該發現部件還被配置成從可 訪問的打印機獲得性能信息。該系統還包括傳輸部件,其被配置成傳輸數據到所選擇的打 印機,其中該傳輸部件還被配置成從所選擇的打印機獲得性能信息。最后,該系統包括頁面 描述語言部件,其被配置成基于所獲得的所選擇的打印機的性能信息而生成用于所選擇的 打印機的打印機數據。在某些實施例中,該系統提供集成架構,該集成架構使得發現部件、傳輸部件和頁 面描述語言部件能夠被應用訪問。在某些實施例中,該集成架構包括提供對發現部件、傳輸部件和/或頁面描述語 言部件的訪問的一個或多個應用編程接口(API)。這些API使得進行調用(calling)應 用能夠通過API與被調用的其它應用代碼交互。各種函數調用、消息或其它類型的啟用 (invocation)(其進一步可以包括各種各樣的參數)可以經由API在進行調用的應用和被 調用的代碼之間被傳遞。此外,API可以向進行調用的應用代碼提供使用在API中定義并 且在被調用的應用代碼中實現的數據類型或類別的能力。用于通過該API進行操作的方法 包括經由該API傳遞一個或多個函數調用、消息、其它類型的啟用或參數。在某些實施例中,在從可訪問的打印機獲得性能信息時,發現部件被配置成從該 可訪問的打印機獲得當前狀態信息。在某些實施例中,該當前狀態信息能夠規定打印機是否離線;打印機是否正忙; 或打印機中是否存在錯誤狀況。在某些實施例中,打印機的性能信息能夠規定例如打印機所支持的文件大小;打 印機所支持的文件格式版本;打印機所支持的文件格式擴展名(extension);打印機所支 持的色彩空間;打印機所支持的位深度;或打印機所支持的分辨率。在某些實施例中,從所選擇的打印機獲得的性能信息使得系統能夠生成用于所選擇的打印機的打印機數據,而無需系統維護用于所選擇的打印機的特定于打印機的軟件或 特定于打印機的配置信息。一些實施例包括在如下環境中的一個或多個應用編程接口(API)在該環境中, 進行調用的程序代碼通過一個或多個所述接口與被調用的其它程序代碼交互。各種函數調 用、消息或其它類型的啟用(其進一步可以包括各種各樣的參數)可以經由API在進行調 用的程序和被調用的代碼之間被傳遞。此外,API可以向進行調用的程序代碼提供使用在 API中定義并且在被調用的程序代碼中實施的數據類型或類別的能力。至少某些實施例包括進行調用的軟件部件通過API與被調用的軟件部件進行交 互的環境。用于在該環境中通過API進行操作的方法包括經由該API傳遞一個或多個函 數調用、消息、及其它類型的啟用或參數。
圖1示出根據所公開的實施例的打印系統。圖2示出根據所公開的實施例的在執行打印操作時涉及的部件。圖3給出一個流程圖,其示出根據所公開的實施例的打印處理。圖4給出一個流程圖,其示出根據所公開的實施例的無驅動打印處理。圖5給出一個流程圖,其示出根據所公開的實施例的從打印機角度而言的打印處 理。圖6示出根據所公開的實施例的支持通用光柵格式(universal-raster-format) 的(支持URF的)關鍵字(key)的結構。圖7示出根據所公開的實施例的獨立于設備的位圖容器的結構。圖8示出根據所公開的實施例,軟件部件如何通過API彼此調用。圖9示出根據所公開的實施例,可以如何通過系統棧(systemstack)進行API調用。
具體實施例方式給出以下描述以使得任何本領域技術人員能夠進行和使用所公開的實施例,并且 以下描述是在特定應用及其需求的情境下被提供的。對所公開的實施例的各種修改對本 領域技術人員而言將是容易明白的,并且這里定義的一般原理可以應用于其它實施例和應 用,而不背離所公開的實施例的精神和范圍。因此,所公開的實施例不限于示出的實施例, 而是要符合與這里公開的原理和特征一致的最寬范圍。在該具體實施方式
部分描述的數據結構和代碼通常存儲在非暫態性計算機可讀 存儲介質上,該非暫態性計算機可讀存儲介質可以是能夠存儲由計算機系統使用的代碼和 /或數據的任何設備或介質。該非暫態性計算機可讀存儲介質包括但不限于易失性存儲 器;非易失性存儲器;磁和光存儲設備,諸如磁盤驅動器、磁帶、⑶(緊湊盤)、DVD (數字通用 盤或數字視頻盤);或現在已知的或以后開發的能夠存儲代碼和/或數據的其它介質。在該具體實施方式
部分描述的方法和處理可以體現為代碼和/或數據,其可以存 儲在如上所述的非暫態性計算機可讀存儲介質中。當計算機系統讀取和執行存儲在非暫態 性計算機可讀存儲介質上的代碼和/或數據時,計算機系統執行體現為數據結構和代碼并存儲在該非暫態性計算機可讀存儲介質中的方法和處理。而且,以下所述的方法和處理可 以包括在硬件模塊中。例如,硬件模塊可以包括但不限于,專用集成電路(ASIC)芯片、現場 可編程門陣列(FPGA)、以及現在已知的或以后開發的其它可編程邏輯器件。當硬件模塊被 激活時,該硬件模塊執行包括在該硬件模塊中的方法和處理。無驅動打印所公開的實施例便于實現“無驅動打印”,其使得計算設備能夠向打印機進行 打印而不必擔心安裝或更新相關聯的打印機驅動軟件。這是通過增加發現協議(例如, Bonjour )和相關聯的網絡打印協議(例如,IPP)從而這些協議返回用于生成針對所選擇 的打印機的打印機數據的打印機性能信息來實現的。注意,所公開的實施例不同于需要為每個所支持的打印機維護特定驅動程序的現 有系統。在這些現有系統中,特定打印機的特征和性能被存儲在由打印機廠商創建的靜態 性能文件(例如,PostScript 打印機描述(PostScript Printer Description,PPD)文件) 中,并且這些靜態性能文件存儲在移動設備本身上。與此對比,所公開的實施例詢問打印機 (不是靜態文件)以確定打印機的“當前”操作性能。除了發現協議和網絡打印協議之外, 所公開的實施例還提供規定打印頁面的外觀(appearance)的頁面描述語言。所公開的實施例此外還提供一種架構,其使得應用能夠容易地使用發現協議、網 絡打印協議和頁面描述語言。該架構可以利用使得應用能夠訪問這些部件的一個或多個 API來實現。下面描述所公開的實施例的細節,但是首先我們描述打印系統。打印系統圖1示出根據所公開的實施例的打印系統100。打印系統100包括計算設備102 和打印機106。計算設備102—般可以包括任何類型的計算機系統或計算設備,例如個人計 算機系統、服務器計算機系統、膝上型計算機、筆記本計算機、平板計算機、個人數字助理、 數字媒體接收機(例如,Apple TV )、數碼相框、蜂窩電話、或便攜式導航系統。打印機106 一般可以包括能夠將文本數據或圖像打印到某些類型的打印介質(例如,紙或相片介質) 上的任何設備或系統。例如,打印機106可以包括獨立的打印機或者另選地包括打印系統, 其中打印系統包括耦接到一個或多個打印機的打印服務器。計算設備102通過網絡104耦接到打印機106。網絡104 —般可以包括能夠將網 絡節點耦接在一起的任何類型的通信通道。例如,網絡104可以包括無線網絡連接,例如 Bluetooth (藍牙) 網絡連接;蜂窩網絡連接(例如,3G/4G網絡或Edge網絡);基于在電 氣與電子工程師協會(IEEE)802. 11中描述的標準的網絡連接;無線個人區域網(PAN)連 接,例如基于IEEE 802. 15中描述的標準的網絡連接;或任何對等(無線或有線)網絡技 術。網絡104還可包括有線網絡連接,例如基于IEEE 802. 3中描述的標準的網絡連接。在打印處理中,計算設備102初始通過下面將更詳細地描述的發現協議與打印機 106進行聯系。接下來,在打印機106被識別和選擇之后,有可以若干種可以完成打印的方 式。如果計算設備102具有打印機106的驅動程序,或者如果打印機106支持無驅動的打 印,則計算設備102可以使用該驅動程序或無驅動打印協議來生成用于打印作業的打印機 數據。打印機數據然后可通過網絡104被發送給打印機106。下面更詳細地描述該處理。 (注意,術語“無驅動打印”指的是在計算設備上無需特定于打印機的軟件或特定于打印機 的配置而工作的打印技術。)
打印部件圖2示出根 據所公開的實施例,在執行打印操作時涉及的部件。參考圖2,計算設 備102包括需要執行打印操作的應用202。例如,應用202可以包括允許用戶打印特定文件 的打印實用程序。可替換地,應用202可以包括定期需要執行打印操作的任何類型的通用 或專用的基于計算機的應用,例如字處理程序。應用202向API 203進行調用,API 203提 供便于訪問許多部件的架構,這些部件包括發現部件204、頁面描述語言部件205和網絡打 印部件206。在操作過程中,應用202使用實施發現協議(例如,Bonjour )的發現部件204,來 識別可用的打印機以及便于選擇所識別的打印機之一。注意,發現部件204與打印機106 中相對應的發現部件212通信(以虛線230示出)。接下來,在選擇了打印機106之后,應 用202使用頁面描述語言部件205來呈現(render)打印作業以產生相對應的打印機數據 208。打印機數據208然后被發送給網絡打印部件206,網絡打印部件206實施用于遠程打 印的網絡協議,例如互聯網打印協議(IPP)。網絡打印部件206將打印機數據208傳送給打 印機106中相對應的網絡打印部件214 (以虛線232示出)。如上所述,打印機106包含發現部件212和網絡打印部件214。此外,打印機106 包括支持使用例如JPEG (聯合圖像專家組)標準216、PDF (便攜式文檔格式)標準217和 RF(光柵格式(Raster Format))標準218進行打印的部件。這些部件通過打印控制器219 發送數據到打印機106中的打印頭220,從而打印控制器219可以轉換該數據,并且打印頭 220可以將轉換后的數據打印到某種類型的打印介質(例如,紙)上。打印處理圖3給出一個流程圖,其示出根據所公開的實施例的打印處理。首先,系統使用發 現協議(例如,Bonjour 協議)來識別可以由計算設備102訪問的打印機(步驟302)。如 上所述,該發現協議還從打印機獲得性能信息。接下來,系統向用戶(或應用)給出可用打 印機的列表,并且允許該用戶(或該應用)選擇所識別的打印機之一(步驟304)。接下來,系統檢查所選擇的打印機的互操作性(步驟306)。例如,系統可以從該打 印機獲得指出該打印機支持JPEG、PDF和RF的信息,在這種情況下系統可以使用任何所支 持的格式。另一方面,如果該信息指出打印機只能支持RF,則系統使用RF來向該打印機發 送數據。接下來,系統具有若干選項。如果所選擇的打印機支持無驅動打印,則系統可以從 所選擇的打印機獲得打印機性能信息,并且可以基于所獲得的打印機性能信息生成用于該 打印機的打印機數據。接下來,系統可以向所選擇的打印機發送所生成的打印機數據(步 驟308)。如上所述,該性能信息可以在發現協議的詢問過程中或者在隨后的網絡打印協議 詢問過程中從所選擇的打印機獲得。另一方面,如果移動設備包含用于所選擇的打印機的 特定驅動程序,則系統可以使用該特定驅動程序來生成和發送打印機數據到所選擇的打印 機(步驟310)。系統可以可替換地發送打印作業到包括一個或多個提供打印服務的服務器 的云(cloud)。這使得該云能夠生成用于所選擇的打印機的打印機數據(步驟312)。通常,系統可以基于若干因素(例如,功耗和/或計算負載),在無驅動打印、云打 印、和使用本地驅動程序當中進行選擇。在一個實施例中,如果可能的話,系統使用無驅動 打印,而如果不支持無驅動打印,則系統使用用于該打印機的本地驅動程序。最后,如果不支持這樣的本地驅動程序,則系統使用云來生成打印機數據。打印機件能信息如上所述,打印機性能信息可以在發現協議(Bonjour )的詢問過程中或者在隨 后的網絡打印協議(IPP)詢問過程中從所選擇的打印機獲得。更具體地,在發現協議過程 中,所選擇的打印機可以返回特定于打印機的、規定所選擇的打印機可以接受什么類型的 數據的信息和規定所選擇的打印機的性能的信息。而且,該特定于打印機的信息使得計算 機設備能夠生成用于所選擇的打印機的打印機數據,而無需計算機維護用于所選擇的打印 機的特定于打印機的軟件或特定于打印機的配置信息。一旦移動設備實際上通過IPP在與 打印機通信,IPP協議就可以提供相同的特定于打印機的信息。(這避免了必須高速緩存發 現協議和網絡打印協議之間的信息。)該打印機性能信息可以規定打印介質的屬性,例如介質尺寸、類型(例如,紙或者 相片介質)和頁邊距。該打印機性能信息還可規定修整(finishing)屬性,例如關于裝訂、 穿孔和目錄單的屬性。打印機性能信息此外還可以規定關于打印機特征的信息,例如它是 否可以兩面印刷(雙面)、使用哪個輸出位、以及使用哪個介質來源(托盤)。打印機性能 屬性還可規定關于文件的屬性,例如打印機所支持的文件大小、打印機所支持的文件格式 版本、以及打印機所支持的文件格式擴展名。打印機性能信息還可規定各種打印機性能,例 如打印機所支持的色彩空間、打印機所支持的位深度、以及打印機所支持的分辨率。打印機性能信息此外還可以規定從打印機獲得的當前狀態信息。例如,該當前狀 態信息可以規定打印機是否離線;打印機是否正忙;或打印機中是否存在錯誤狀況。當用 戶正在選擇可用的打印機時,該當前狀態信息可以被提供給用戶。無驅動的打印圖4給出一個流程圖,其示出根據所公開的實施例的無驅動打印處理。(該流程圖 示出在圖3的步驟308中進行的無驅動打印處理中發生的操作的一部分。)首先,系統獲得 所選擇的打印機的性能信息(步驟402)。如上所述,該性能信息可以在作為初始的發現協 議的一部分的詢問過程中或者在隨后的IPP詢問過程中從所選擇的打印機獲得。接下來, 系統排隊等候所選擇的打印機(步驟404)并且允許用戶(或應用)為打印作業選擇具體 的介質類型(步驟406)。系統然后基于所獲得的性能信息生成用于所選擇的打印機的打印機數據(步驟 408)。接下來,系統向所選擇的打印機發送該打印機數據(步驟410)。最后,系統接收所選 擇的打印機的狀態信息,其指出打印機數據是否被成功地打印(步驟412)。在打印機側的打印處理圖5給出一個流程圖,其示出根據所公開的實施例的從打印機角度而言的打印處 理。首先,打印機使用打印機中的發現部件來與客戶端通信,以便于客戶端選擇打印機。在 發現處理中,發現部件可以向客戶端提供該打印機的性能信息(步驟502)。接下來,打印機 使用打印機中的傳輸部件從客戶端接收打印機數據。在該處理中,傳輸部件還可向客戶端 提供該打印機的性能信息(步驟504)。最后,打印機可以使用打印機中的頁面描述語言部 件來打印從客戶端接收到的打印機數據(步驟506)。優選的文檔格式為了便于無驅動打印,某些所公開的實施例向互聯網打印協議(IPP)標準增加了新的關鍵字。特別地,某些實施例包括新的優選文檔格式的關鍵字(作為MIME媒體類型), 其使得打印機能夠從該打印機所支持的所有文檔格式中規定“優選的”文檔格式。該優選 的文檔格式可用于提高性能。例如,優選的文檔格式可以比打印機所支持的其它文檔格式 更高效地打印。注意,IPP標準已經提供了支持文檔格式的關鍵字,其規定打印機所支持的具體文 檔格式。然而,現有的IPP標準不提供任何方式來指示所支持的文檔格式中哪種為優選的。支持URF的關鍵字某些實施例還向發現協議和傳輸協議增加了新的“支持URF的關鍵字”。更具體 地,某些實施例向發現協議增加了新的支持URF的關鍵字作為Bonjour TXT記錄的一部 分,還向傳輸協議增加了類似的支持URF的關鍵字作為一種新的用于IPP協議的打印機描 述屬性。該支持URF的關鍵字規定打印機所支持的標準化的一組性能,其使得客戶端能夠 生成針對該客戶端的打印機數據,而無需客戶端維護用于所選擇的打印機的特定于打印機 的軟件或者特定于打印機的配置信息。標準化的這組性能被選擇為使得客戶能夠生成用于 任何類型的打印機的打印機數據。在一個實施例中,標準化的這組性能包括也出現在圖6中的支持URF的關鍵字600 的圖表中的以下內容(1)打印機所支持的色彩空間;(2)打印機所支持的針對特定色彩空間的位深度;(3)打印機所支持的最大拷貝數;(4)打印機是否支持雙面打印;(5)打印機所支持的特定修整(例如,裝訂、折疊、穿孔);(6)打印機所支持的輸入槽(input slot);(7)面朝上/面朝下的輸入朝向;(8)打印機所支持的介質類型(例如,普通紙、亮光紙);(9)打印機所支持的輸出盒;(10)面朝上/面朝下的輸出朝向;(11)支持的打印質量;以及(12)支持的分辨率。在另外的實施例中,支持URF的關鍵字可以包括這些性能的子集。獨立于設備的位圖容器某些實施例支持一種新的用于打印機數據的獨立于設備的位圖容器。例如,獨立 于設備的位圖容器可以被實現為多目的網絡郵件擴充(MIME)子類型。這種新的獨立于設備的位圖容器包括文件頭、以及至少一組頁面頭(page header)和頁面位圖。在一個實施例中,頁面頭可以具有為要由打印機打印的頁面規定以下 屬性的預定格式。(這些屬性也出現在圖7中示出的獨立于設備的位圖容器700中。)(1)位深度;(2)色彩空間;(3)雙面模式;
(4)打印質量;(5)介質類型;(6)輸入槽;(7)輸出盒;(8)拷貝數目;(9) 一個或多個修整;(10)寬度;(11)高度;和(12)分辨率。在可替換實施例中,頁面頭可以具有規定這些屬性的子集的預定格式。jML在某些實施例中,系統可以執行優化以提升速度、提高打印質量和節省電池電力。 這可以通過為打印機數據選擇減少生成打印機數據時涉及的計算操作數量的文件類型、從 而提高速度且減小計算設備所耗費的功率量來實現。例如,如果打印機支持PDF并且計算 設備正在打印PDF文件,則代替將PDF文件轉換成光柵數據并將光柵數據發送到打印機,將 PDF文件發送到打印機使用少得多的電池電力并且更快。(注意,通過節省計算操作和計 算時間,系統騰出資源和時間以執行其它操作,例如,以提高打印質量。)同樣,在云將生成 的打印機數據返回到計算設備的情況中,系統可以選擇減小打印機數據文件大小的文件格 式。這減少了將打印機數據轉發到打印機所需的數據傳送操作數,從而提高了速度以及減 小了計算設備耗費的功率量。在另一個示例中,系統可以通過基于與云往返傳遞數據所耗費的功率是否會被將 與打印機有關的呈現(rendering)操作轉移到云所節省的功率所抵消,來在無驅動打印和 云打印之間進行選擇,從而節省功率。通過使用云,耗費功率的計算操作可以從移動設備 (其使用電池電力運行)轉移到云中的服務器(其使用插座電力(wall power)運行),這 有可能節省大量的電池電力。缺陷解決方案在有些情況下,打印機制造商可能試圖實現遵循無驅動打印機規范的打印機,但 是這種實現可能具有一個或多個缺陷(bug)。在這種情況下,系統可以維護包含針對具體打 印機型號的這樣的已知缺陷的數據庫。在打印操作過程中,系統可以首先在數據庫中執行 查找,如果存在針對打印機的一個或多個已知缺陷,則系統可以調整如何生成打印機數據 以補償這些已知缺陷。應用編程接口一個或多個應用編程接口(API)可以用于某些實施例。API是由程序代碼部件 (以下稱為“API實現部件”)實現的接口,其允許另一程序代碼部件(以下稱為“API調用 部件”)訪問和使用由API實現部件提供的一個或多個函數、方法、程序、數據結構、類別、和 /或其它服務。API可以定義在API調用部件和API實現部件之間傳遞的一個或多個參數。API允許API調用部件的開發者(其可以是第三方開發者)利用由API實現部件 提供的規定特征。可能有一個API調用部件,或者可能有多于一個這樣的部件。API可以是 計算機系統或程序庫為了支持來自應用的服務請求而提供的源代碼接口。API可以用可在構建應用時被解釋或編譯的編程語言來規定。在某些實施例中,API實現部件可以提供多于一個API,每個API提供API實現部 件所實現的功能的不同方面的一個不同視圖或是訪問這些不同方面。在其它實施例中,API 實現部件本身可以經由下層API調用一個或多個其它部件,從而既是API調用部件,也是 API實現部件。API定義API調用部件在訪問和使用API實現部件的規定特征時所使用的語言和 參數。例如,API調用部件通過由API暴露的一個或多個API調用或啟用(例如,體現為函 數或方法調用)來訪問API實現部件的規定特征,并經由所述API調用或啟用使用參數來 傳遞數據和控制信息。API實現部件可以響應于來自API調用部件的API調用,通過API返 回值。雖然API定義API調用的語法和結果(例如,如何啟用API調用以及API調用做什 么),但是API可以不揭示API調用如何實現由API調用規定的函數。各種API調用經由一 個或多個應用編程接口在調用(API調用部件)和API實現部件之間被傳遞。傳遞API調用 可以包括發布、啟動、啟用、調用、接收、返回、或響應函數調用或消息。函數調用或其它API 啟用可以通過參數列表或其它結構發送或接收一個或多個參數。參數可以是常量、關鍵字、 數據結構、對象、對象類別、變量、數據類型、指針、數組、列表、或指向函數或方法的指針,或 另一種引用要經由API傳遞的數據或其它項的方式。而且,數據類型或類別可以由API提供并且由API實現部件實現。從而,API調 用部件可以通過使用API中提供的定義來聲明這樣的類型或類別的變量,使用指向其的指 針,使用或實例化其常量值。一般,API可用于訪問由API實現部件提供的服務或數據,或者啟動由API實現部 件提供的操作或計算的執行。舉例而言,API實現部件和API調用部件可以是操作系統、庫、 設備驅動程序、API、應用程序、或其它模塊(應當理解,API實現部件和API調用部件可以 是彼此相同或不同類型的模塊)。API實現部件在有些情況下可以至少部分地體現為固件、 微代碼、或其它硬件邏輯。在某些實施例中,API可以允許客戶端程序使用由軟件開發工具 包(SDK)庫提供的服務。在其它實施例中,應用或其它客戶端程序可以使用由應用架構提 供的API。在這些實施例中,應用或客戶端程序可以將調用結合到由SDK提供的以及由API 提供的函數或方法中,或使用SDK中定義的和由API提供的數據類型或對象。應用架構在 這些實施例中可以為響應由所述架構定義的各種事件的程序提供主事件循環。API允許應 用利用所述應用架構規定事件以及對事件的響應。在某些實施方式中,API調用可以向應用 報告硬件設備的性能或狀態,包括關于諸如輸入性能和狀態、輸出性能和狀態、處理性能、 電力狀態、存儲容量和狀態、通信性能等方面的性能或狀態,并且API可以部分地由固件、 微代碼、或部分在硬件部件上執行的其它低級邏輯來實現。API調用部件可以是本地部件(即,與API實現部件在相同的數據處理系統上)或 在網絡上通過API與API實現部件通信的遠程部件(即,與API實現部件在不同的數據處 理系統上)。應當理解,API實現部件也可以用作API調用部件(即,它可以向由另一 API 實現部件暴露的API進行API調用),并且API調用部件也可以通過實現暴露給另一 API調 用部件的API而用作API實現部件。API可以允許以不同編程語言寫成的多個API調用部件與API實現部件通信(從而,API可以包括用于轉換API實現部件和API調用部件之間的調用和返回的特征);然而, API也可以由特定編程語言實現。圖8是示出示例性API體系結構的框圖,其可以用于本發明的某些實施例。如圖 8所示,API體系結構800包括實施API 820的API實現部件810 (例如,操作系統、庫、設 備驅動程序、API、應用程序、或其它模塊)。API 820規定可以由API調用部件830使用的 一個或多個函數、方法、類別、對象、協議、數據結構、格式、和/或API實現部件的其它特征。 API 820可以規定至少一個調用約定,其規定API實現部件中的函數如何從API調用部件 接收參數,以及該函數如何返回結果到API調用部件。API調用部件830(例如,操作系統、 庫、設備驅動程序、API、應用程序、或其它模塊)通過API 820進行API調用,以訪問和使用 API實現部件810中由API 820規定的特征。API實現部件810可以響應于API調用,通過 API 820向API調用部件830返回值。將理解,API實現部件810可以包括未通過API 820規定且對于API調用部件830 不可用的另外的函數、方法、類別、數據結構、和/或其它特征。應當理解,API調用部件830 可以與AP1實現部件810位于相同系統上,或者可以遠離API實現部件810設置并且在網 絡上利用API820訪問API實現部件810。雖然圖8示出單個API調用部件830與API820 交互,但是應當理解,其它API調用部件(其可能是以與API調用部件830不同的語言(或 相同的語言)寫成的)也可以使用API 820。API實現部件810、API 820、和API調用部件830可以存儲在機器可讀介質中,機 器可讀介質包括用于以機器可讀形式存儲信息的任何機構(例如,計算機或其它數據處理 系統)。例如,機器可讀介質包括磁盤、光盤、隨機存取存儲器、只讀存儲器、閃存器件,等等。在圖9( “軟件棧”)的示例性實施例中,應用可以利用服務API向服務A或B進行 調用,以及利用OS API向操作系統(OS)進行調用。服務A和B可以利用OS API向OS進 行調用。在本公開的一個方面中,提供了一種在使用應用編程接口的環境中的機器實現方 法,所述方法包括通過應用編程接口傳遞發現調用,以使得計算設備的發現部件識別可訪 問的打印機和便于選擇可訪問的打印機,其中該發現部件還被配置成從可訪問的打印機獲 得性能信息;通過應用編程接口傳遞傳輸調用,以使得計算設備的傳輸部件傳輸數據到所 選擇的打印機;以及通過應用編程接口傳遞呈現調用,以使得計算設備的頁面描述語言部 件基于所獲得的用于所選擇的打印機的性能信息而生成用于所選擇的打印機的打印機數 據;其中,從所選擇的打印機獲得的性能信息使得計算設備能夠生成用于所選擇的打印機 的打印機數據,而無需該計算設備維護用于所選擇的打印機的特定于打印機的軟件或特定 于打印機的配置信息。在本公開的另一方面中,提供了一種在使用應用編程接口的環境中的系統,所述 系統包括用于通過應用編程接口傳遞發現調用,以使得計算設備的發現部件識別可訪問 的打印機和便于選擇可訪問的打印機的裝置,其中該發現部件還被配置成從可訪問的打印 機獲得性能信息;用于通過應用編程接口傳遞傳輸調用,以使得計算設備的傳輸部件傳輸 數據到所選擇的打印機的裝置;以及用于通過應用編程接口傳遞呈現調用,以使得計算設 備的頁面描述語言部件基于所獲得的用于所選擇的打印機的性能信息而生成用于所選擇 的打印機的打印機數據的裝置;其中,從所選擇的打印機獲得的性能信息使得計算設備能夠生成用于所選擇的打印機的打印機數據,而無需該計算設備維護用于所選擇的打印機的 特定于打印機的軟件或特定于打印機的配置信息。在本公開的還一方面中,提供了一種用在使用應用編程接口 API的環境中的計算 設備,所述計算設備包括發現部件,被配置成識別可訪問的打印機和便于選擇可訪問的打 印機,以及從可訪問的打印機獲得性能信息;傳輸部件,被配置成傳輸數據到所選擇的打印 機;頁面描述語言部件,被配置成基于所獲得的用于所選擇的打印機的性能信息而生成用 于所選擇的打印機的打印機數據;用于將發現部件與API調用部件接口,以使得發現部件 識別可訪問的打印機和便于選擇可訪問的打印機的裝置;用于將傳輸部件與API調用部件 接口,以使得傳輸部件傳輸數據到所選擇的打印機的裝置;以及用于將頁面描述語言部件 與API調用部件接口,以使得頁面描述語言部件基于所獲得的用于所選擇的打印機的性能 信息而生成用于所選擇的打印機的打印機數據的裝置,其中,從所選擇的打印機獲得的性 能信息使得計算設備能夠生成用于所選擇的打印機的打印機數據,而無需該計算設備維護 用于所選擇的打印機的特定于打印機的軟件或特定于打印機的配置信息。給出了以上對實施例的描述僅僅是出于例示和描述的目的。它們不旨在窮舉或將 本說明書限制到所公開的形式。因此,許多修改和變化對于本領域技術人員將是顯然的。此 外,上述公開不旨在限制本說明書。本說明書的范圍由所附的權利要求限定。相關申請本申請基于35U. S.C. §119要求2010年2月9日提交的、由與本申請相同 的發明人作出的題為“Walk-Up Printing without Drivers”的美國臨時專利申請 No. 61/302,916(代理卷號吣.4 1^- 8977舊?1)的優先權。本申請還基于35U. S. C. § 119 要求2010年6月4日提交的、由與本申請相同的發明人作出的題為“Walk-Up Printing withoutDrivers” 的美國臨時專利申請 No. 61/351,461 (代理卷號 No. APL-P8977USP2) 的優先權。本申請還基于35U.S.C. §119要求2010年8月31日提交的、由與本申請 相同的發明人作出的題為“Walk-UpPrinting without Drivers”的美國臨時專利申請 No. 61/378,832(代理卷號吣.六 1^- 8977舊?3)的優先權。本申請還基于35U. S. C. § 119 要求2010年2月9日提交的、由與本申請相同的發明人作出的題為“Framework that Supports Driverless Printing” 的美國臨時專利申請 No. 61/302,922 (代理卷號 No. APL-P9004USP1)的優先權。本申請還基于35U. S. C. § 119要求2010年6月4日提交的、 由與本申請相同的發明人作出的題為“Framework that Supports DriverlessPrinting” 的美國臨時專利申請No. 61/351,466 (代理卷號No. APL-P9004USP2)的優先權。本申 請還基于35U.S.C. §119要求2010年6月24日提交的、由與本申請相同的發明人作 出的題為"Frameworkthat Supports Driverless Printing”的美國臨時專禾丨J申請 No. 61/358,306 (代理卷號 No. APL-P9004USP3)的優先權。本申請還基于 35U. S. C. § 119 要求2010年8月31日提交的、由與本申請相同的發明人作出的題為“Framework that Supports Driverless Printing” 的美國臨時專利申請 No. 61/378,827 (代理卷號 No. APL-P9004USP4)的優先權。本申請涉及與本申請同日提交的、由與本申請相同的發明人作出的題為“Walk-Up Printing without Drivers"的未決美國專利申請(尚未分配申請號)(代理卷號 NO.APL-P8977US1)。本申請還涉及與本申請同日提交的、由與本申請相同的發明人作出的題為“Printer thatSupports Driverless Printing”的未決美國專利申請(尚未分配申 請號)(代理卷號No. APL-P9004US2)。本申請還涉及與本申請同日提交的、由與本申請相同 的發明人作出的題為“Data Formats to SupportDriverless Printing”的未決美國專利 申請(尚未分配申請號)(代理卷號No. APL-P9004US3)。
權利要求
1.一種便于進行無驅動打印的系統,包括發現部件,其被配置成識別可訪問的打印機和便于選擇可訪問的打印機,其中該發現 部件還被配置成從可訪問的打印機獲得性能信息;傳輸部件,其被配置成傳輸數據到所選擇的打印機;以及頁面描述語言部件,其被配置成基于所獲得的用于所選擇的打印機的性能信息而生成 用于所選擇的打印機的打印機數據;其中,從所選擇的打印機獲得的性能信息使得該系統能夠生成用于所選擇的打印機的 打印機數據,而無需該系統維護用于所選擇的打印機的特定于打印機的軟件或特定于打印 機的配置信息。
2.如權利要求1所述的系統,其中所述系統提供集成架構,該集成架構使得發現部件、 傳輸部件和頁面描述語言部件能夠被應用訪問。
3.如權利要求2所述的系統,其中所述集成架構包括提供對發現部件、傳輸部件和頁 面描述語言部件的訪問的一個或多個應用編程接口。
4.如權利要求1所述的系統,其中在從可訪問的打印機獲得性能信息時,發現部件被 配置成從該可訪問的打印機獲得當前狀態信息。
5.如權利要求4所述的系統,其中所述當前狀態信息規定以下中的一個或多個 打印機是否離線;打印機是否正忙;和 打印機中是否存在錯誤狀況。
6.如權利要求1所述的系統,其中打印機的性能信息規定以下中的一個或多個 分辨率;色彩空間; 位深度; 輸入槽;面朝上/面朝下的輸入朝向; 輸出盒;面朝上/面朝下的輸出朝向; 雙面打印支持; 介質類型; 拷貝支持; 支持的修整;和 打印質量。
7.如權利要求6所述的系統,其中打印機的性能信息還規定以下中的一個或多個 文件大小;文件格式版本;和 文件格式擴展名。
8.如權利要求1所述的系統,其中傳輸部件還被配置成從所選擇的打印機獲得性能信息。
9.一種便于進行無驅動打印的計算設備,包括該計算設備中的發現部件,被配置成識別可訪問的打印機和便于選擇可訪問的打印 機,其中該發現部件還被配置成從可訪問的打印機獲得性能信息;該計算設備中的傳輸部件,被配置成傳輸數據到所選擇的打印機;和 該計算設備中的頁面描述語言部件,被配置成基于所獲得的用于所選擇的打印機的性 能信息生成用于所選擇的打印機的打印機數據;其中從所選擇的打印機獲得的性能信息使得該計算設備能夠生成用于所選擇的打印 機的打印機數據,而無需該計算設備維護用于所選擇的打印機的特定于打印機的軟件或者 特定于打印機的配置信息。
10.如權利要求9所述的計算設備,其中在從可訪問的打印機獲得性能信息時,發現部 件被配置成從該可訪問的打印機獲得當前狀態信息。
11.如權利要求9所述的計算設備,其中傳輸部件還被配置成從所選擇的打印機獲得 性能信息。
12.一種便于進行無驅動打印的方法,包括使用發現部件識別可訪問的打印機和便于選擇可訪問的打印機,其中該發現部件還被 配置成從可訪問的打印機獲得性能信息;使用傳輸部件傳輸數據到所選擇的打印機;以及使用頁面描述語言部件,基于所獲得的用于所選擇的打印機的性能信息而生成用于所 選擇的打印機的打印機數據;其中,從所選擇的打印機獲得的性能信息使得該方法能夠生成用于所選擇的打印機的 打印機數據,而無需在其上運行該方法的計算設備維護用于所選擇的打印機的特定于打印 機的軟件或特定于打印機的配置信息。
13.如權利要求12所述的方法,其中通過能夠由應用訪問的集成架構來訪問發現部 件、傳輸部件和頁面描述語言部件。
14.如權利要求13所述的方法,其中所述集成架構包括提供對發現部件、傳輸部件和 頁面描述語言部件的訪問的一個或多個應用編程接口。
15.如權利要求12所述的方法,其中在從可訪問的打印機獲得性能信息時,發現部件 被配置成從該可訪問的打印機獲得當前狀態信息。
16.如權利要求15所述的方法,其中所述當前狀態信息規定以下中的一個或多個 打印機是否離線;打印機是否正忙;和 打印機中是否存在錯誤狀況。
17.如權利要求12所述的方法,其中打印機的性能信息規定以下中的一個或多個 分辨率;色彩空間; 位深度; 輸入槽;面朝上/面朝下的輸入朝向; 輸出盒;面朝上/面朝下的輸出朝向;雙面打印支持; 介質類型; 拷貝支持; 支持的修整;和 打印質量。
18.如權利要求17所述的方法,其中打印機的性能信息還規定以下中的一個或多個 文件大小;文件格式版本;和 文件格式擴展名。
19.如權利要求12所述的方法,其中傳輸部件還被配置成從所選擇的打印機獲得性能信息。
20.一種在使用應用編程接口的環境中的機器實現方法,所述方法包括通過應用編程接口傳遞發現調用,以使得計算設備的發現部件識別可訪問的打印機和 便于選擇可訪問的打印機,其中該發現部件還被配置成從可訪問的打印機獲得性能信息;通過應用編程接口傳遞傳輸調用,以使得計算設備的傳輸部件傳輸數據到所選擇的打 印機;以及通過應用編程接口傳遞呈現調用,以使得計算設備的頁面描述語言部件基于所獲得的 用于所選擇的打印機的性能信息而生成用于所選擇的打印機的打印機數據;其中,從所選擇的打印機獲得的性能信息使得計算設備能夠生成用于所選擇的打印機 的打印機數據,而無需該計算設備維護用于所選擇的打印機的特定于打印機的軟件或特定 于打印機的配置信息。
21.一種在使用應用編程接口的環境中的系統,所述系統包括用于通過應用編程接口傳遞發現調用,以使得計算設備的發現部件識別可訪問的打印 機和便于選擇可訪問的打印機的裝置,其中該發現部件還被配置成從可訪問的打印機獲得 性能信息;用于通過應用編程接口傳遞傳輸調用,以使得計算設備的傳輸部件傳輸數據到所選擇 的打印機的裝置;以及用于通過應用編程接口傳遞呈現調用,以使得計算設備的頁面描述語言部件基于所獲 得的用于所選擇的打印機的性能信息而生成用于所選擇的打印機的打印機數據的裝置;其中,從所選擇的打印機獲得的性能信息使得計算設備能夠生成用于所選擇的打印機 的打印機數據,而無需該計算設備維護用于所選擇的打印機的特定于打印機的軟件或特定 于打印機的配置信息。
22.—種用在使用應用編程接口 API的環境中的計算設備,所述計算設備包括 發現部件,被配置成識別可訪問的打印機和便于選擇可訪問的打印機,以及從可訪問的打印機獲得性能信息;傳輸部件,被配置成傳輸數據到所選擇的打印機;頁面描述語言部件,被配置成基于所獲得的用于所選擇的打印機的性能信息而生成用 于所選擇的打印機的打印機數據;用于將發現部件與API調用部件接口,以使得發現部件識別可訪問的打印機和便于選擇可訪問的打印機的裝置;用于將傳輸部件與API調用部件接口,以使得傳輸部件傳輸數據到所選擇的打印機的 裝置;以及用于將頁面描述語言部件與API調用部件接口,以使得頁面描述語言部件基于所獲得 的用于所選擇的打印機的性能信息而生成用于所選擇的打印機的打印機數據的裝置,其中,從所選擇的打印機獲得的性能信息使得計算設備能夠生成用于所選擇的打印機 的打印機數據,而無需該計算設備維護用于所選擇的打印機的特定于打印機的軟件或特定 于打印機的配置信息。
全文摘要
所公開的實施例提供一種便于進行無驅動打印的系統。該系統包括發現部件,其被配置成識別可訪問的打印機和便于選擇可訪問的打印機,其中該發現部件還被配置成從可訪問的打印機獲得性能信息。該系統還包括傳輸部件,其被配置成傳輸數據到所選擇的打印機,其中該傳輸部件還被配置成從所選擇的打印機獲得性能信息。最后,該系統包括頁面描述語言部件,其被配置成基于所獲得的用于所選擇的打印機的性能信息而生成用于所選擇的打印機的打印機數據。
文檔編號G06F3/12GK102147715SQ20111003459
公開日2011年8月10日 申請日期2011年2月9日 優先權日2010年2月9日
發明者H·米勒, M·R·斯威特 申請人:蘋果公司