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

便于無驅(qū)動打印的打印機、方法和系統(tǒng)的制作方法

文檔序號:6354266閱讀:266來源:國知局
專利名稱:便于無驅(qū)動打印的打印機、方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
所公開的實施例涉及用于計算機系統(tǒng)的打印機。更具體地,公開的實施例涉及無 需管理特定于打印機的驅(qū)動軟件而工作的基于計算機的打印系統(tǒng)。
背景技術(shù)
對于計算機用戶,打印機往往是一個問題。在計算機用戶初始安裝打印機時,電 纜和電源線的裝配通常不成問題。然而,用戶通常不得不安裝特定于打印機的驅(qū)動程序 (driver),這包括從盤載入驅(qū)動程序或者導航到某個網(wǎng)站并下載驅(qū)動程序。即使打印機驅(qū) 動程序已經(jīng)載入計算機系統(tǒng)中,用戶也常常不得不從打印機制造商的網(wǎng)站下載和安裝該驅(qū) 動程序的更新。這些安裝操作是耗時的,并且通常需要用戶找到和輸入長的軟件許可密鑰。因此,需要一種便于安裝打印機而沒有上述問題的系統(tǒng)。

發(fā)明內(nèi)容
所公開的實施例提供一種便于無驅(qū)動打印的系統(tǒng)。該系統(tǒng)包括發(fā)現(xiàn)部件,其被配 置成識別可訪問的打印機和便于選擇可訪問的打印機,其中該發(fā)現(xiàn)部件還被配置成從可訪 問的打印機獲得性能信息。該系統(tǒng)還包括傳輸部件,其被配置成傳輸數(shù)據(jù)到所選擇的打印 機,其中該傳輸部件還被配置成從所選擇的打印機獲得性能信息。最后,該系統(tǒng)包括頁面描 述語言部件,其被配置成基于所獲得的所選擇的打印機的性能信息而生成用于所選擇的打 印機的打印機數(shù)據(jù)。在某些實施例中,該系統(tǒng)提供使得發(fā)現(xiàn)部件、傳輸部件和頁面描述語言部件能夠 被應用訪問的集成架構(gòu)。在某些實施例中,該集成架構(gòu)包括提供對發(fā)現(xiàn)部件、傳輸部件和/或頁面描述語 言部件的訪問的一個或多個應用編程接口(API)。這些API使得進行調(diào)用(calling)的 應用能夠與通過API被調(diào)用的其它應用代碼交互。各種函數(shù)調(diào)用、消息或其它類型的啟用 (invocation)(其進一步可以包括各種各樣的參數(shù))可以經(jīng)由API在進行調(diào)用的應用和被 調(diào)用的代碼之間而被傳遞。此外,所述API可以向進行調(diào)用的應用代碼提供使用在API中 定義并且在被調(diào)用的應用代碼中實現(xiàn)的數(shù)據(jù)類型或類別的能力。用于通過該API進行操作 的方法包括經(jīng)由該API傳遞一個或多個函數(shù)調(diào)用、消息、其它類型的啟用或參數(shù)。在某些實施例中,在從可訪問的打印機獲得性能信息時,發(fā)現(xiàn)部件被配置成從該 可訪問的打印機獲得當前狀態(tài)信息。在某些實施例中,該當前狀態(tài)信息能夠規(guī)定打印機是否離線;打印機是否正忙; 或打印機中是否存在錯誤狀況。在某些實施例中,打印機的性能信息能夠規(guī)定例如打印機所支持的文件大??; 打印機所支持的文件格式版本;打印機所支持的文件格式擴展名(extension);打印機所 支持的色彩空間;打印機所支持的位深度;或打印機所支持的分辨率。在某些實施例中,從所選擇的打印機獲得的性能信息使得系統(tǒng)能夠生成用于所選擇的打印機的打印機數(shù)據(jù),而無需系統(tǒng)維護用于所選擇的打印機的特定于打印機的軟件或 特定于打印機的配置信息。一些實施例包括在如下環(huán)境中的一個或多個應用編程接口(API)在該環(huán)境中, 進行調(diào)用的程序代碼通過一個或多個所述接口與被調(diào)用的其它程序代碼交互。各種函數(shù)調(diào) 用、消息或其它類型的啟用(其進一步可以包括各種各樣的參數(shù))可以經(jīng)由API在進行調(diào) 用的程序和被調(diào)用的代碼之間而被傳遞。此外,API可以向進行調(diào)用的程序代碼提供使用 在API中定義并且在被調(diào)用的程序代碼中實施的數(shù)據(jù)類型或類別的能力。至少某些實施例包括進行調(diào)用的軟件部件通過API與被調(diào)用的軟件部件進行交 互的環(huán)境。用于在該環(huán)境中通過API進行操作的方法包括經(jīng)由該API傳遞一個或多個函 數(shù)調(diào)用、消息及其它類型的啟用或參數(shù)。


圖1示出根據(jù)所公開的實施例的打印系統(tǒng)。圖2示出根據(jù)所公開的實施例,在執(zhí)行打印操作時涉及的部件。圖3給出一個流程圖,其示出根據(jù)所公開的實施例的打印處理。圖4給出一個流程圖,其示出根據(jù)所公開的實施例的無驅(qū)動打印處理。圖5給出一個流程圖,其示出根據(jù)所公開的實施例的從打印機角度而言的打印處 理。圖6示出根據(jù)所公開的實施例的支持通用光柵格式(universal raster format) 的(支持URF的)關(guān)鍵字(key)的結(jié)構(gòu)。圖7示出根據(jù)所公開的實施例的獨立于設(shè)備的位圖容器的結(jié)構(gòu)。圖8示出根據(jù)所公開的實施例,軟件部件如何通過API彼此調(diào)用。圖9示出根據(jù)所公開的實施例,可以如何通過系統(tǒng)棧(system stack)進行API調(diào)用。
具體實施例方式給出以下描述以使得任何本領(lǐng)域技術(shù)人員能夠進行和使用所公開的實施例,并且 以下描述是在特定應用及其需求的情境下被提供的。對所公開的實施例的各種修改對本領(lǐng) 域技術(shù)人員而言將是容易明白的,并且這里定義的一般原理可以應用于其它實施例和應用 而不背離所公開的實施例的精神和范圍。因此,所公開的實施例不限于示出的實施例,而是 要符合與這里公開的原理和特征一致的最寬范圍。在該具體實施方式
部分描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲在非暫態(tài)性計算機可讀 存儲介質(zhì)上,其可以是能夠存儲由計算機系統(tǒng)使用的代碼和/或數(shù)據(jù)的任何設(shè)備或介質(zhì)。 該非暫態(tài)性計算機可讀存儲介質(zhì)包括但不限于易失性存儲器;非易失性存儲器;磁和光 存儲設(shè)備,諸如磁盤驅(qū)動器、磁帶、CD (緊湊盤)、DVD (數(shù)字通用盤或數(shù)字視頻盤);或現(xiàn)在 已知的或以后開發(fā)的能夠存儲代碼和/或數(shù)據(jù)的其它介質(zhì)。在該具體實施方式
部分描述的方法和處理可以體現(xiàn)為代碼和/或數(shù)據(jù),其可以存 儲在如上所述的非暫態(tài)性計算機可讀存儲介質(zhì)中。當計算機系統(tǒng)讀取和執(zhí)行存儲在非暫態(tài) 性計算機可讀存儲介質(zhì)上的代碼和/或數(shù)據(jù)時,計算機系統(tǒng)執(zhí)行體現(xiàn)為數(shù)據(jù)結(jié)構(gòu)和代碼并存儲在該非暫態(tài)性計算機可讀存儲介質(zhì)中的方法和過程。而且,以下所述的方法和處理可 以包括在硬件模塊中。例如,硬件模塊可以包括但不限于,專用集成電路(ASIC)芯片、現(xiàn)場 可編程門陣列(FPGA)、以及現(xiàn)在已知的或以后開發(fā)的其它可編程邏輯器件。當硬件模塊被 激活時,該硬件模塊執(zhí)行包括在該硬件模塊中的方法和過程。無驅(qū)動打印所公開的實施例便于實現(xiàn)“無驅(qū)動打印”,其使得計算設(shè)備能夠向打印機進行打 印而不必擔心安裝或更新相關(guān)聯(lián)的打印機驅(qū)動程序軟件。這是通過增加發(fā)現(xiàn)協(xié)議(諸如 Bonjour )和相關(guān)聯(lián)的網(wǎng)絡(luò)打印協(xié)議(諸如IPP)從而這些協(xié)議返回用于生成針對所選擇 的打印機的打印機數(shù)據(jù)的打印機性能信息來實現(xiàn)的。注意,所公開的實施例不同于需要為每個所支持的打印機維護特定驅(qū)動程序的現(xiàn) 有系統(tǒng)。在這些現(xiàn)有系統(tǒng)中,特定打印機的特征和性能被存儲在由打印機廠商創(chuàng)建的靜態(tài) 性能文件中,諸如 PostScript 打印機描述(Postscript Printer Description, PPD)文 件,并且這些靜態(tài)性能文件存儲在移動設(shè)備本身上。與此對比,所公開的實施例詢問打印機 (不是靜態(tài)文件)以確定打印機的“當前”操作性能。除了發(fā)現(xiàn)協(xié)議和網(wǎng)絡(luò)打印協(xié)議之外, 所公開的實施例還提供規(guī)定打印頁面的外觀(appearance)的頁面描述語言。所公開的實施例此外還提供一種架構(gòu),其使得應用能夠容易地使用所述發(fā)現(xiàn)協(xié) 議、網(wǎng)絡(luò)打印協(xié)議和頁面描述語言。該架構(gòu)可以利用使應用能夠訪問這些部件的一個或多 個API來實現(xiàn)。下面描述所公開的實施例的細節(jié),但是首先我們描述打印系統(tǒng)。打印系統(tǒng)圖1示出根據(jù)所公開的實施例的打印系統(tǒng)100。打印系統(tǒng)100包括計算設(shè)備102 和打印機106。計算設(shè)備102—般可以包括任何類型的計算機系統(tǒng)或計算設(shè)備,諸如個人計 算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、膝上型計算機、筆記本計算機、平板計算機、個人數(shù)字助理、 數(shù)字媒體接收機(諸如Apple TV )、數(shù)碼相框、蜂窩電話或便攜式導航系統(tǒng)。打印機106 — 般可以包括能夠?qū)⑽谋緮?shù)據(jù)或圖像打印到某些類型的打印介質(zhì)(諸如紙或相片介質(zhì))上的 任何設(shè)備或系統(tǒng)。例如,打印機106可以包括獨立的打印機或者可選地包括打印系統(tǒng),其中 打印系統(tǒng)包括耦接到一個或多個打印機的打印服務(wù)器。計算設(shè)備102通過網(wǎng)絡(luò)104耦接到打印機106。網(wǎng)絡(luò)104—般可以包括能夠?qū)⒕W(wǎng)絡(luò) 節(jié)點耦接在一起的任何類型的通信通道。例如,網(wǎng)絡(luò)104可以包括無線網(wǎng)絡(luò)連接,諸如藍 牙 網(wǎng)絡(luò)連接;蜂窩網(wǎng)絡(luò)連接(例如,3G/4G網(wǎng)絡(luò)或Edge網(wǎng)絡(luò));基于在電氣與電子工程師 協(xié)會(IEEE)802. 11中描述的標準的網(wǎng)絡(luò)連接;無線個人區(qū)域網(wǎng)(PAN)連接,諸如基于IEEE 802. 15中描述的標準的網(wǎng)絡(luò)連接;或任何對等(無線或有線)網(wǎng)絡(luò)技術(shù)。網(wǎng)絡(luò)104還可包 括有線網(wǎng)絡(luò)連接,諸如基于IEEE 802. 3中描述的標準的網(wǎng)絡(luò)連接。在打印處理中,計算設(shè)備102初始通過下面將更詳細地描述的發(fā)現(xiàn)協(xié)議與打印機 106進行聯(lián)系。接下來,在打印機106被識別和選擇之后,有若干種可以完成打印的方式。 如果計算設(shè)備102具有打印機106的驅(qū)動程序,或者如果打印機106支持無驅(qū)動的打印,則 計算設(shè)備102可以使用該驅(qū)動程序或無驅(qū)動打印協(xié)議來生成用于打印作業(yè)的打印機數(shù)據(jù)。 打印機數(shù)據(jù)然后可通過網(wǎng)絡(luò)104被發(fā)送給打印機106。下面更詳細地描述該過程。(注意, 術(shù)語“無驅(qū)動打印”指的是在計算設(shè)備上無需特定于打印機的軟件或特定于打印機的配置 而工作的打印技術(shù)。)
打印部件圖2示出根據(jù)所公開的實施例,在執(zhí)行打印操作時涉及的部件。參考圖2,計算設(shè) 備102包括需要執(zhí)行打印操作的應用202。例如,應用202可以包括允許用戶打印特定文 件的打印實用程序(utility)。可替換地,應用202可以包括定期需要執(zhí)行打印操作的任 何類型的通用或?qū)S玫幕谟嬎銠C的應用,諸如字處理程序。應用202對API 203進行調(diào) 用,API 203提供便于訪問許多部件的架構(gòu),這些部件包括發(fā)現(xiàn)部件204、頁面描述語言部 件205和網(wǎng)絡(luò)打印部件206。在操作過程中,應用202使用實施發(fā)現(xiàn)協(xié)議(諸如Bonjour )的發(fā)現(xiàn)部件204來 識別可用的打印機以及便于選擇所識別的打印機之一。注意,發(fā)現(xiàn)部件204與打印機106 中相對應的發(fā)現(xiàn)部件212通信(以虛線230示出)。接下來,在選擇了打印機106之后,應 用202使用頁面描述語言部件205來呈現(xiàn)(render)打印作業(yè)以產(chǎn)生相對應的打印機數(shù)據(jù) 208。打印機數(shù)據(jù)208然后被發(fā)送給網(wǎng)絡(luò)打印部件206,該網(wǎng)絡(luò)打印部件206實施用于遠程 打印的網(wǎng)絡(luò)協(xié)議,諸如互聯(lián)網(wǎng)打印協(xié)議(IPP)。網(wǎng)絡(luò)打印部件206將打印機數(shù)據(jù)208傳送給 打印機106中相對應的網(wǎng)絡(luò)打印部件214(以虛線232示出)。如上所述,打印機106包含發(fā)現(xiàn)部件212和網(wǎng)絡(luò)打印部件214。此外,打印機106 包括支持使用例如JPEG (聯(lián)合圖像專家組)標準216、PDF (便攜式文檔格式)標準217和 RF(光柵格式(Raster Format))標準218進行打印的部件。這些部件通過打印控制器219 發(fā)送數(shù)據(jù)到打印機106中的打印頭220,從而打印控制器219可以轉(zhuǎn)換該數(shù)據(jù),并且打印頭 220可以將轉(zhuǎn)換后的數(shù)據(jù)打印到某種類型的打印介質(zhì)(諸如紙)上。打印處理圖3給出一個流程圖,其示出根據(jù)所公開的實施例的打印處理。首先,系統(tǒng)使用發(fā) 現(xiàn)協(xié)議(諸如Bonjour 協(xié)議)來識別可以由計算設(shè)備102訪問的打印機(步驟302)。如 上所述,該發(fā)現(xiàn)協(xié)議還從打印機獲得性能信息。接下來,系統(tǒng)向用戶(或應用)給出可用打 印機的列表,并且允許該用戶(或該應用)選擇所識別的打印機之一(步驟304)。接下來,系統(tǒng)檢查所選擇的打印機的互操作性(步驟306)。例如,系統(tǒng)可以從該打 印機獲得指出該打印機支持JPEG、PDF和RF的信息,在這種情況下系統(tǒng)可以使用任何所支 持的格式。另一方面,如果該信息指出打印機只能支持RF,則系統(tǒng)使用RF來向該打印機發(fā) 送數(shù)據(jù)。接下來,系統(tǒng)具有若干選項。如果所選擇的打印機支持無驅(qū)動打印,則系統(tǒng)可以從 所選擇的打印機獲得打印機性能信息,并且可以基于所獲得的打印機性能信息生成用于該 打印機的打印機數(shù)據(jù)。接下來,系統(tǒng)可以向所選擇的打印機發(fā)送所生成的打印機數(shù)據(jù)(步 驟308)。如上所述,該性能信息可以在發(fā)現(xiàn)協(xié)議的詢問過程中或者在隨后的網(wǎng)絡(luò)打印協(xié)議 詢問過程中從所選擇的打印機獲得。另一方面,如果移動設(shè)備包含用于所選擇的打印機的 特定驅(qū)動程序,則系統(tǒng)可以使用該特定驅(qū)動程序來生成和發(fā)送打印機數(shù)據(jù)到所選擇的打印 機(步驟310)。系統(tǒng)可以可替換地發(fā)送打印作業(yè)到包括一個或多個提供打印服務(wù)的服務(wù)器 的云(cloud)。這使得該云能夠生成用于所選擇的打印機的打印機數(shù)據(jù)(步驟312)。通常,系統(tǒng)可以基于若干因素(諸如功耗和/或計算負載),在無驅(qū)動打印、云打 印和使用本地驅(qū)動程序當中進行選擇。在一個實施例中,如果可能的話,系統(tǒng)使用無驅(qū)動打 印,而如果不支持無驅(qū)動打印,則系統(tǒng)使用用于該打印機的本地驅(qū)動程序。最后,如果不支持這樣的本地驅(qū)動程序,則系統(tǒng)使用云來生成打印機數(shù)據(jù)。打印機件能信息如上所述,打印機性能信息可以在發(fā)現(xiàn)協(xié)議(Bonjour )的詢問過程中或者在隨 后的網(wǎng)絡(luò)打印協(xié)議(IPP)詢問過程中從所選擇的打印機獲得。更具體地,在發(fā)現(xiàn)協(xié)議過程 中,所選擇的打印機可以返回特定于打印機的、規(guī)定所選擇的打印機可以接受什么類型的 數(shù)據(jù)的信息和規(guī)定所選擇的打印機的性能的信息。而且,該特定于打印機的信息使得計算 機設(shè)備能夠生成用于所選擇的打印機的打印機數(shù)據(jù),而無需計算機維護用于所選擇的打印 機的特定于打印機的軟件或特定于打印機的配置信息。一旦移動設(shè)備實際上通過IPP在與 打印機通信,IPP協(xié)議就可以提供相同的特定于打印機的信息。(這避免了必須高速緩存發(fā) 現(xiàn)協(xié)議和網(wǎng)絡(luò)打印協(xié)議之間的信息。)該打印機性能信息可以規(guī)定打印介質(zhì)的屬性,諸如介質(zhì)尺寸、類型(例如紙或者 相片介質(zhì))和頁邊距。該打印機性能信息還可規(guī)定修整(finishing)屬性,諸如關(guān)于裝訂、 穿孔和目錄單的屬性。打印機性能信息此外還可以規(guī)定關(guān)于打印機特征的信息,諸如它是 否可以兩面印刷(雙面)、使用哪個輸出位以及使用哪個介質(zhì)來源(托盤)。打印機性能屬 性還可規(guī)定關(guān)于文件的屬性,諸如打印機所支持的文件大小、打印機所支持的文件格式版 本以及打印機所支持的文件格式擴展名。打印機性能信息還可規(guī)定各種打印機性能,諸如 打印機所支持的色彩空間、打印機所支持的位深度以及打印機所支持的分辨率。打印機性能信息此外還可以規(guī)定從打印機獲得的當前狀態(tài)信息。例如,該當前狀 態(tài)信息可以規(guī)定打印機是否離線;打印機是否正忙;或打印機中是否存在錯誤狀況。當用 戶正在選擇可用的打印機時,該當前狀態(tài)信息可以被提供給用戶。無驅(qū)動的打印圖4給出一個流程圖,其示出根據(jù)所公開的實施例的無驅(qū)動打印處理。(該流程圖 示出在圖3的步驟308中進行的無驅(qū)動打印過程中發(fā)生的某些操作。)首先,系統(tǒng)獲得所選 擇的打印機的性能信息(步驟402)。如上所述,該性能信息可以在作為初始的發(fā)現(xiàn)協(xié)議的 一部分的詢問過程中或者在隨后的IPP詢問過程中從所選擇的打印機獲得。接下來,系統(tǒng) 排隊等候所選擇的打印機(步驟404)并且允許用戶(或應用)為打印作業(yè)選擇具體的介 質(zhì)類型(步驟406)。系統(tǒng)然后基于所獲得的性能信息生成用于所選擇的打印機的打印機數(shù)據(jù)(步驟 408)。接下來,系統(tǒng)向所選擇的打印機發(fā)送該打印機數(shù)據(jù)(步驟410)。最后,系統(tǒng)接收所選 擇的打印機的狀態(tài)信息,其指出打印機數(shù)據(jù)是否被成功地打印(步驟412)。在打印機側(cè)的打印過程圖5給出一個流程圖,其示出根據(jù)所公開的實施例的從打印機角度而言的打印處 理。首先,打印機使用打印機中的發(fā)現(xiàn)部件與客戶端通信,以便于客戶端選擇打印機。在發(fā) 現(xiàn)處理中,發(fā)現(xiàn)部件可以向客戶端提供該打印機的性能信息(步驟50 。接下來,打印機使 用打印機中的傳輸部件從客戶端接收打印機數(shù)據(jù)。在該處理中,傳輸部件還可向客戶端提 供該打印機的性能信息(步驟504)。最后,打印機可以使用打印機中的頁面描述語言部件 打印從客戶端接收到的打印機數(shù)據(jù)(步驟506)。優(yōu)選的文檔格式為了便于無驅(qū)動打印,某些所公開的實施例向互聯(lián)網(wǎng)打印協(xié)議(IPP)標準增加了新的關(guān)鍵字(key)。特別地,某些實施例包括新的優(yōu)選文檔格式的關(guān)鍵字(作為MIME媒體 類型),其使得打印機能夠從該打印機所支持的所有文檔格式中規(guī)定“優(yōu)選的”文檔格式。 該優(yōu)選的文檔格式可用于提高性能。例如,優(yōu)選的文檔格式可以比打印機所支持的其它文 檔格式更高效地打印。注意,IPP標準已經(jīng)提供了支持的文檔格式的關(guān)鍵字,其規(guī)定打印機所支持的具體 文檔格式。然而,現(xiàn)有的IPP標準不提供任何方式來指示所支持的文檔格式中哪種為優(yōu)選 的。支持URF的關(guān)鍵字某些實施例還向發(fā)現(xiàn)協(xié)議和傳輸協(xié)議增加了新的“支持URF的關(guān)鍵字”。更具體 地,某些實施例向發(fā)現(xiàn)協(xié)議增加了新的支持URF的關(guān)鍵字作為Bonjour TXT記錄的一部 分,還向傳輸協(xié)議增加了類似的支持URF的關(guān)鍵字作為一種用于IPP協(xié)議的新的打印機描 述屬性。該支持URF的關(guān)鍵字規(guī)定打印機所支持的標準化的一組性能,其使得客戶端能夠 生成針對該客戶端的打印機數(shù)據(jù),而無需客戶端維護用于所選擇的打印機的特定于打印機 的軟件或者特定于打印機的配置信息。標準化的這組性能被選擇為使得客戶能夠生成用于 任何類型的打印機的打印機數(shù)據(jù)。在一個實施例中,標準化的這組性能包括以下內(nèi)容,其也出現(xiàn)在圖6中的支持URF 的關(guān)鍵字600的圖表中打印機所支持的色彩空間;打印機所支持的針對特定色彩空間的位深度;打印機所支持的最大拷貝數(shù);打印機是否支持雙面打?。淮蛴C所支持的特定修整(例如,裝訂、折疊、穿孔);打印機所支持的輸入槽(input slot);面朝上/面朝下的輸入朝向;打印機所支持的介質(zhì)類型(例如,普通紙、亮光紙);打印機所支持的輸出盒;面朝上/面朝下的輸出朝向;支持的打印質(zhì)量;以及支持的分辨率。在另外的實施例中,支持URF的關(guān)鍵字可以包括這些性能的子集。獨立于設(shè)備的位圖容器某些實施例支持一種用于打印機數(shù)據(jù)的新的獨立于設(shè)備的位圖容器。例如,獨立 于設(shè)備的位圖容器可以被實現(xiàn)為多目的網(wǎng)絡(luò)郵件擴充(MIME)子類型。這種新的獨立于設(shè)備的位圖容器包括文件頭、以及至少一組頁面頭(page header)和頁面位圖。在一個實施例中,頁面頭可以具有為要由打印機打印的頁面規(guī)定以下 屬性的預定格式。(這些屬性也出現(xiàn)在圖7中示出的獨立于設(shè)備的位圖容器700中。)位深度;色彩空間;
雙面模式;打印質(zhì)量;介質(zhì)類型;輸入槽;輸出盒;拷貝數(shù)目;一個或多個修整;寬度;高度;和分辨率。在可替換實施例中,頁面頭可以具有規(guī)定這些屬性的子集的預定格式。jML在某些實施例中,系統(tǒng)可以執(zhí)行優(yōu)化以提升速度、提高打印質(zhì)量和節(jié)省電池電力。 這可以通過為打印機數(shù)據(jù)選擇減少生成打印機數(shù)據(jù)時涉及的計算操作數(shù)量的文件類型、從 而提高速度且減小計算設(shè)備所耗費的功率量來實現(xiàn)。例如,如果打印機支持PDF并且計算 設(shè)備正在打印PDF文件,則代替將PDF文件轉(zhuǎn)換成光柵數(shù)據(jù)并將光柵數(shù)據(jù)發(fā)送到打印機,將 PDF文件發(fā)送到打印機,會使用少得多的電池電力并且更快。(注意,通過節(jié)省計算操作和 計算時間,系統(tǒng)釋放資源和時間以執(zhí)行其它操作,例如,提高打印質(zhì)量。)同樣,在云將生成 的打印機數(shù)據(jù)返回到計算設(shè)備的情況中,系統(tǒng)可以選擇減小打印機數(shù)據(jù)文件大小的文件格 式。這減少了將打印機數(shù)據(jù)轉(zhuǎn)發(fā)到打印機所需的數(shù)據(jù)傳送操作數(shù),從而提高了速度以及減 小了計算設(shè)備耗費的功率量。在另一個示例中,系統(tǒng)可以通過基于與云往返傳遞數(shù)據(jù)所耗費的功率是否會被將 與打印機有關(guān)的呈現(xiàn)(rendering)操作轉(zhuǎn)移到云所節(jié)省的功率所抵消,來在無驅(qū)動打印和 云打印之間進行選擇,而節(jié)省功率。通過使用云,耗費功率的計算操作可以從移動設(shè)備(其 使用電池電力運行)轉(zhuǎn)移到云中的服務(wù)器(其使用插座電力(wall power)運行),這有可 能節(jié)省大量的電池電力。缺陷解決方案在有些情況下,打印機制造商可能試圖實現(xiàn)遵循無驅(qū)動打印機規(guī)范的打印機,但 是這種實現(xiàn)可能具有一個或多個缺陷(bug)。在這種情況下,系統(tǒng)可以維護包含針對具體打 印機型號的這樣的已知缺陷的數(shù)據(jù)庫。在打印操作過程中,系統(tǒng)可以首先在數(shù)據(jù)庫中執(zhí)行 查找,如果存在針對打印機的一個或多個已知缺陷,則系統(tǒng)可以調(diào)整如何生成打印機數(shù)據(jù) 以補償這些已知缺陷。應用編程接口一個或多個應用編程接口(API)可以用于某些實施例。API是由程序代碼部件 (以下稱為“API實現(xiàn)部件”)實現(xiàn)的接口,其允許另一程序代碼部件(以下稱為“API調(diào)用 部件”)訪問和使用由API實現(xiàn)部件提供的一個或多個函數(shù)、方法、程序、數(shù)據(jù)結(jié)構(gòu)、類別和 /或其它服務(wù)。API可以定義在API調(diào)用部件和API實現(xiàn)部件之間傳遞的一個或多個參數(shù)。API允許API調(diào)用部件的開發(fā)者(其可以是第三方開發(fā)者)利用由API實現(xiàn)部件 提供的規(guī)定特征??赡苡幸粋€API調(diào)用部件,或者可能有多于一個的這種部件。API可以是計算機系統(tǒng)或程序庫為了支持來自應用的服務(wù)請求而提供的源代碼接口。API可以用可在 構(gòu)建應用時被解釋或編譯的編程語言來規(guī)定。在某些實施例中,API實現(xiàn)部件可以提供多于一個的API,每個API提供API實現(xiàn) 部件所實現(xiàn)的功能的不同方面的一個不同視圖或是訪問這些不同方面。在其它實施例中, API實現(xiàn)部件本身可以經(jīng)由下層API調(diào)用一個或多個其它部件,從而既是API調(diào)用部件,也 是API實現(xiàn)部件。API定義API調(diào)用部件在訪問和使用API實現(xiàn)部件的規(guī)定特征時所使用的語言和 參數(shù)。例如,API調(diào)用部件通過由API暴露的一個或多個API調(diào)用或啟用(例如,體現(xiàn)為函 數(shù)或方法調(diào)用)來訪問API實現(xiàn)部件的規(guī)定特征,并經(jīng)由所述API調(diào)用或啟用使用參數(shù)來 傳遞數(shù)據(jù)和控制信息。API實現(xiàn)部件可以響應于來自API調(diào)用部件的API調(diào)用,通過API返 回值。雖然API定義API調(diào)用的語法和結(jié)果(例如,如何啟用API調(diào)用以及API調(diào)用做什 么),但是API可以不揭示API調(diào)用如何實現(xiàn)由API調(diào)用規(guī)定的函數(shù)。各種API調(diào)用經(jīng)由 一個或多個應用編程接口在調(diào)用(API調(diào)用部件)和API實現(xiàn)部件之間被傳遞。傳遞API 調(diào)用可以包括發(fā)布、啟動、啟用、調(diào)用、接收、返回、或響應函數(shù)調(diào)用或消息。函數(shù)調(diào)用或其它 API啟用可以通過參數(shù)列表或其它結(jié)構(gòu)發(fā)送或接收一個或多個參數(shù)。參數(shù)可以是常量、關(guān)鍵 字、數(shù)據(jù)結(jié)構(gòu)、對象、對象類別、變量、數(shù)據(jù)類型、指針、數(shù)組、列表、或指向函數(shù)或方法的指針 或另一種引用要經(jīng)由API傳遞的數(shù)據(jù)或其它項的方式。而且,數(shù)據(jù)類型或類別可以由API提供并且由API實現(xiàn)部件實現(xiàn)。從而,API調(diào)用 部件可以通過使用API中提供的定義來聲明這種類型或類別的變量,使用指向其的指針, 使用或?qū)嵗涑A恐?。一般,API可用于訪問由API實現(xiàn)部件提供的服務(wù)或數(shù)據(jù),或者啟動由API實現(xiàn)部 件提供的操作或計算的執(zhí)行。舉例而言,API實現(xiàn)部件和API調(diào)用部件可以是操作系統(tǒng)、庫、 設(shè)備驅(qū)動程序、API、應用程序、或其它模塊(應當理解,API實現(xiàn)部件和API調(diào)用部件可以 是彼此相同或不同類型的模塊)。API實現(xiàn)部件在有些情況下可以至少部分地體現(xiàn)為固件、 微代碼、或其它硬件邏輯。在某些實施例中,API可以允許客戶端程序使用由軟件開發(fā)工具 包(SDK)庫提供的服務(wù)。在其它實施例中,應用或其它客戶端程序可以使用由應用架構(gòu)提 供的API。在這些實施例中,應用或客戶端程序可以將調(diào)用結(jié)合到由SDK提供的以及由API 提供的函數(shù)或方法中,或使用SDK中定義的和由API提供的數(shù)據(jù)類型或?qū)ο蟆眉軜?gòu)在 這些實施例中可以為響應由所述架構(gòu)定義的各種事件的程序提供主事件循環(huán)。API允許應 用利用所述應用架構(gòu)規(guī)定事件以及對事件的響應。在某些實施方式中,API調(diào)用可以向應用 報告硬件設(shè)備的性能或狀態(tài),包括關(guān)于諸如輸入性能和狀態(tài)、輸出性能和狀態(tài)、處理性能、 電力狀態(tài)、存儲容量和狀態(tài)、通信性能等方面的性能或狀態(tài),并且API可以部分地由固件、 微代碼、或部分在硬件部件上執(zhí)行的其它低級邏輯來實現(xiàn)。

API調(diào)用部件可以是本地部件(S卩,與API實現(xiàn)部件在相同的數(shù)據(jù)處理系統(tǒng)上)或 在網(wǎng)絡(luò)上通過API與API實現(xiàn)部件通信的遠程部件(S卩,與API實現(xiàn)部件在不同的數(shù)據(jù)處 理系統(tǒng)上)。應當理解,API實現(xiàn)部件還可以用作API調(diào)用部件(S卩,它可以向由不同的API 實現(xiàn)部件暴露的API進行API調(diào)用),并且API調(diào)用部件還可以通過實現(xiàn)暴露給不同的API 調(diào)用部件的API而用作API實現(xiàn)部件。
API可以允許以不同編程語言寫成的多個API調(diào)用部件與API實現(xiàn)部件通信(從 而,API可以包括用于轉(zhuǎn)換API實現(xiàn)部件和API調(diào)用部件之間的調(diào)用和返回的特征);然而, API也可以由特定編程語言實現(xiàn)。圖8是示出示例性API體系結(jié)構(gòu)的框圖,其可以用于本發(fā)明的某些實施例。如圖 8所示,API體系結(jié)構(gòu)800包括實施API 820的API實現(xiàn)部件810 (例如,操作系統(tǒng)、庫、設(shè) 備驅(qū)動程序、API、應用程序、或其它模塊)。API 820規(guī)定可以由API調(diào)用部件830使用的 一個或多個函數(shù)、方法、類別、對象、協(xié)議、數(shù)據(jù)結(jié)構(gòu)、格式、和/或API實現(xiàn)部件的其它特征。 API 820可以規(guī)定至少一個調(diào)用約定,其規(guī)定API實現(xiàn)部件中的函數(shù)如何從API調(diào)用部件 接收參數(shù),以及該函數(shù)如何返回結(jié)果到API調(diào)用部件。API調(diào)用部件830(例如,操作系統(tǒng)、 庫、設(shè)備驅(qū)動程序、API、應用程序或其它模塊)通過API 820進行API調(diào)用,以訪問和使用 API實現(xiàn)部件810中由API 820規(guī)定的特征。API實現(xiàn)部件810可以響應于API調(diào)用,通過 API 820向API調(diào)用部件830返回值。將會理解,API實現(xiàn)部件810可以包括未通過API 820規(guī)定且對于API調(diào)用部件 830不可用的另外的函數(shù)、方法、類別、數(shù)據(jù)結(jié)構(gòu)、和/或其它特征。應當理解,API調(diào)用部件 830可以與API實現(xiàn)部件810位于相同系統(tǒng)上,或者可以遠離API實現(xiàn)部件810設(shè)置并且通 過網(wǎng)絡(luò)利用API 820訪問API實現(xiàn)部件810。雖然圖8示出單個API調(diào)用部件830與API 820交互,但是應當理解,其它API調(diào)用部件也可以使用API 820,所述其它API調(diào)用部件可 能是以與API調(diào)用部件830不同的語言(或相同的語言)寫成。API實現(xiàn)部件810、API 820和API調(diào)用部件830可以存儲在機器可讀介質(zhì)中,該機 器可讀介質(zhì)包括用于以機器可讀形式存儲信息的任何機構(gòu)(例如,計算機或其它數(shù)據(jù)處理 系統(tǒng))。例如,機器可讀介質(zhì)包括磁盤、光盤、隨機存取存儲器、只讀存儲器、閃存器件等等。在圖9( “軟件棧”)的示例性實施例中,應用可以利用服務(wù)API向服務(wù)A或B進行 調(diào)用,以及利用OS API向操作系統(tǒng)(OS)進行調(diào)用。服務(wù)A和B可以利用OS API向OS進 行調(diào)用。根據(jù)一個實施例,提供了一種在使用應用編程接口 API的環(huán)境中的系統(tǒng),所述系 統(tǒng)包括通過應用編程接口傳遞發(fā)現(xiàn)調(diào)用,以使得發(fā)現(xiàn)部件與客戶端通信以便于客戶端選 擇打印機和向客戶端提供該打印機的性能信息的裝置;通過應用編程接口傳遞傳輸調(diào)用, 以使得傳輸部件從客戶端接收打印機數(shù)據(jù)的裝置;和通過應用編程接口傳遞呈現(xiàn)調(diào)用,以 使得頁面描述語言部件打印從客戶端接收到的打印機數(shù)據(jù)的裝置;和其中提供給客戶端的 性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù)據(jù),而無需該客戶端維護用 于所選擇的打印機的特定于打印機的軟件或者特定于打印機的配置信息。給出了以上對實施例的描述僅僅是出于例示和描述的目的。它們意圖不在于窮舉 或?qū)⒈菊f明書限制到所公開的形式。因此,許多修改和變化對于本領(lǐng)域技術(shù)人員將是顯然 的。此外,上述公開意圖不在于限制本說明書。本說明書的范圍由所附的權(quán)利要求限定。相關(guān)申請本申請基于35U. S.C. §119要求2010年2月9日提交的、由與本申請相同 的發(fā)明人作出的題為“Walk-Up Printing without Drivers”的美國臨時專利申請 No. 61/302,916(代理卷號吣.4 1^- 8977舊?1)的優(yōu)先權(quán)。本申請還基于!35U. S. C. § 119 要求2010年6月4日提交的、由與本申請相同的發(fā)明人作出的題為“Walk-Up Printingwithout Drivers” 的美國臨時專利申請 No. 61/351, 461 (代理卷號 No. APL-P8977USP2) 的優(yōu)先權(quán)。本申請還基于35U.S.C. § 119要求2010年8月31日提交的、由與本申請相 同的發(fā)明人作出的題為“Walk-Up Printing without Drivers”的美國臨時專利申請 No. 61/378,832(代理卷號NO.APL-P8977USP3)的優(yōu)先權(quán)。本申請還基于!35U. S. C. § 119 要求2010年2月9日提交的、由與本申請相同的發(fā)明人作出的題為“Framework that Supports Driverless Printing” 的美國臨時專利申請 No. 61/302,922 (代理卷號 No. APL-P9004USP1)的優(yōu)先權(quán)。本申請還基于!35U. S. C. § 119要求2010年6月4日提 交的、由與本申請相同的發(fā)明人作出的題為“Framework that Supports Driverless Printing”的美國臨時專利申請No. 61/351, 466 (代理卷號No. APL-P9004USP2)的優(yōu)先 權(quán)。本申請還基于35U. S.C. §119要求2010年6月M日提交的、由與本申請相同的 發(fā)明人作出的題為“Framework that Supports Driverless Printing”的美國臨時專 利申請No. 61/358,306(代理卷號No. APL-P9004USP3)的優(yōu)先權(quán)。本申請還基于35U. S. C. § 119要求2010年8月31日提交的、由與本申請相同的發(fā)明人作出的題為“Framework that Supports Driverless Printing” 的美國臨時專利申請 No. 61/378,827 (代理卷號 No. APL-P9004USP4)的優(yōu)先權(quán)。 本申請涉及與本申請同日提交的、由與本申請相同的發(fā)明人作出的題為“Walk-Up Printing without Drivers"的待決美國專利申請(尚未分配申請?zhí)?(代理卷號 NO.APL-P8977US1)。本申請還涉及與本申請同日提交的、由與本申請相同的發(fā)明人作出的 題為“Framework that Supports Driverless Printing”的待決美國專利申請(尚未分配 申請?zhí)?(代理卷號NO.APL-P9004US1)。本申請還涉及與本申請同日提交的、由與本申請相 同的發(fā)明人作出的題為“Data Formats to Support Driverless Printing”的待決美國專 利申請(尚未分配申請?zhí)?(代理卷號No. APL-P9004US3)。
權(quán)利要求
1.一種便于無驅(qū)動打印的打印機,包括該打印機中的發(fā)現(xiàn)部件,被配置成與客戶端通信以便于客戶端選擇打印機,其中該發(fā) 現(xiàn)部件還被配置成向客戶端提供該打印機的性能信息;該打印機中的傳輸部件,被配置成從客戶端接收打印機數(shù)據(jù);和 該打印機中的頁面描述語言部件,被配置成打印從客戶端接收到的打印機數(shù)據(jù); 其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù) 據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的 配置信息。
2.如權(quán)利要求1所述的打印機,其中在向客戶端提供性能信息時,該發(fā)現(xiàn)部件被配置 為向該客戶端提供該打印機的當前狀態(tài)信息。
3.如權(quán)利要求2所述的打印機,其中所述當前狀態(tài)信息規(guī)定以下中的一個或多個 打印機是否離線;打印機是否正忙;和 打印機中是否存在錯誤狀況。
4.如權(quán)利要求1所述的打印機,其中打印機的性能信息規(guī)定以下中的一個或多個 分辨率;色彩空間; 位深度; 輸入槽;面朝上/面朝下的輸入朝向; 輸出盒;面朝上/面朝下的輸出朝向; 雙面打印支持; 介質(zhì)類型; 拷貝支持; 支持的修整;和 打印質(zhì)量。
5.如權(quán)利要求4所述的打印機,其中打印機的性能信息還規(guī)定以下中的一個或多個 文件大小;文件格式版本;和 文件格式擴展名。
6.如權(quán)利要求1所述的打印機,其中傳輸部件還被配置成向客戶端提供打印機的性能信息。
7.一種用于在打印機處便于無驅(qū)動打印的方法,包括使用該打印機中的發(fā)現(xiàn)部件與客戶端通信以便于客戶端選擇打印機和向客戶端提供 該打印機的性能信息;使用該打印機中的傳輸部件從客戶端接收打印機數(shù)據(jù);和使用該打印機中的頁面描述語言部件打印從客戶端接收到的打印機數(shù)據(jù);其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù)據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的配直^[曰息ο
8.如權(quán)利要求7所述的方法,其中在向客戶端提供性能信息時,該發(fā)現(xiàn)部件被配置為 向該客戶端提供該打印機的當前狀態(tài)信息。
9.如權(quán)利要求8所述的方法,其中所述當前狀態(tài)信息規(guī)定以下中的一個或多個 打印機是否離線;打印機是否正忙;和 打印機中是否存在錯誤狀況。
10.如權(quán)利要求7所述的方法,其中打印機的性能信息規(guī)定以下中的一個或多個 分辨率;色彩空間; 位深度; 輸入槽;面朝上/面朝下的輸入朝向; 輸出盒;面朝上/面朝下的輸出朝向; 雙面打印支持; 介質(zhì)類型; 拷貝支持; 支持的修整;和 打印質(zhì)量。
11.如權(quán)利要求10所述的方法,其中打印機的性能信息還規(guī)定以下一個或多個 文件大??;文件格式版本;和 文件格式擴展名。
12.如權(quán)利要求7所述的方法,其中傳輸部件還被配置成向客戶端提供打印機的性能信息。
13.一種用于打印機的便于無驅(qū)動打印的系統(tǒng),包括打印機中的發(fā)現(xiàn)部件,被配置成與客戶端通信以便于客戶端選擇打印機,其中該發(fā)現(xiàn) 部件還被配置成向客戶端提供該打印機的性能信息;打印機中的傳輸部件,被配置成從客戶端接收打印機數(shù)據(jù);和 打印機中的頁面描述語言部件,被配置成打印從客戶端接收到的打印機數(shù)據(jù); 其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù) 據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的 配直^[曰息ο
14.一種在使用應用編程接口 API的環(huán)境中的機器實現(xiàn)的方法,所述方法包括通過應用編程接口傳遞發(fā)現(xiàn)調(diào)用,以使得發(fā)現(xiàn)部件與客戶端通信以便于客戶端選擇打 印機和向客戶端提供該打印機的性能信息;通過應用編程接口傳遞傳輸調(diào)用,以使得傳輸部件從客戶端接收打印機數(shù)據(jù);和通過應用編程接口傳遞呈現(xiàn)調(diào)用,以使得頁面描述語言部件打印從客戶端接收到的打 印機數(shù)據(jù);和其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù) 據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的配置信息。
15.如權(quán)利要求14所述的機器實現(xiàn)的方法,其中在從可訪問的打印機獲得性能信息 時,所述發(fā)現(xiàn)部件被配置為從所述可訪問的打印機獲得當前狀態(tài)信息。
16.如權(quán)利要求15所述的機器實現(xiàn)的方法,其中傳輸部件還被配置成從所選擇的打印 機獲得性能信息。
17.一種打印機,包括發(fā)現(xiàn)部件,其中所述發(fā)現(xiàn)部件與客戶端通信以便于客戶端選擇打印機和向客戶端提供 該打印機的性能信息;傳輸部件,其中所述傳輸部件從客戶端接收打印機數(shù)據(jù);頁面描述語言部件,其中所述頁面描述語言部件打印從客戶端接收到的打印機數(shù)據(jù); 將應用編程接口 API調(diào)用部件與打印機的發(fā)現(xiàn)部件接口,以使得所述發(fā)現(xiàn)部件與客戶 端通信以便于客戶端選擇打印機和向客戶端提供該打印機的性能信息的裝置;將所述API調(diào)用部件與打印機的傳輸部件接口,以使得所述傳輸部件從客戶端接收打 印機數(shù)據(jù)的裝置;和將所述API調(diào)用部件與打印機的頁面描述語言部件接口,以使得所述頁面描述語言部 件打印從客戶端接收到的打印機數(shù)據(jù)的裝置;其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù) 據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的配置信息。
18.如權(quán)利要求17所述的打印機,其中在向客戶端提供性能信息時,該發(fā)現(xiàn)部件被配 置為向該客戶端提供該打印機的當前狀態(tài)信息。
19.如權(quán)利要求17所述的打印機,其中所述傳輸部件還被配置成向客戶端提供打印機 的性能信息。
20.一種在使用應用編程接口 API的環(huán)境中的系統(tǒng),所述系統(tǒng)包括通過應用編程接口傳遞發(fā)現(xiàn)調(diào)用,以使得發(fā)現(xiàn)部件與客戶端通信以便于客戶端選擇打 印機和向客戶端提供該打印機的性能信息的裝置;通過應用編程接口傳遞傳輸調(diào)用,以使得傳輸部件從客戶端接收打印機數(shù)據(jù)的裝置;和通過應用編程接口傳遞呈現(xiàn)調(diào)用,以使得頁面描述語言部件打印從客戶端接收到的打 印機數(shù)據(jù)的裝置;和其中提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù) 據(jù),而無需該客戶端維護用于所選擇的打印機的特定于打印機的軟件或者特定于打印機的配置信息。
全文摘要
本發(fā)明涉及便于無驅(qū)動打印的打印機、方法和系統(tǒng)。所公開的實施例提供一種便于無驅(qū)動打印的打印機。該打印機包括發(fā)現(xiàn)部件,其被配置成與客戶端通信以便于客戶端選擇打印機。發(fā)現(xiàn)部件還被配置成向客戶端提供該打印機的性能信息。打印機還包括被配置成從客戶端接收打印機數(shù)據(jù)的傳輸部件,以及被配置成打印從客戶端接收到的打印機數(shù)據(jù)的頁面描述語言部件。注意,提供給客戶端的性能信息使得客戶端能夠生成用于所選擇的打印機的打印機數(shù)據(jù),而無需客戶端維護用于所選擇的打印機的特定于打印機的軟件或特定于打印機的配置信息。
文檔編號G06F3/12GK102147717SQ20111003471
公開日2011年8月10日 申請日期2011年2月9日 優(yōu)先權(quán)日2010年2月9日
發(fā)明者H·米勒, M·R·斯威特 申請人:蘋果公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阳城县| 潢川县| 永宁县| 黄龙县| 章丘市| 岳普湖县| 邵武市| 平潭县| 北票市| 孟村| 龙门县| 金山区| 衡阳县| 文成县| 合川市| 金坛市| 德钦县| 抚松县| 易门县| 河东区| 辰溪县| 重庆市| 新乐市| 昌宁县| 柘荣县| 福鼎市| 临洮县| 青铜峡市| 承德县| 昭苏县| 清水河县| 永登县| 建瓯市| 府谷县| 石台县| 游戏| 襄汾县| 玉树县| 丰原市| 萨迦县| 张家川|