專利名稱:多源適應(yīng)性打印機驅(qū)動器配置的制作方法
多源適應(yīng)性打印機驅(qū)動器配置技術(shù)領(lǐng)域
本發(fā)明大體而言涉及設(shè)備驅(qū)動器且更具體而言涉及打印機驅(qū)動器。
技術(shù)背景
設(shè)備驅(qū)動器為軟件代碼主體,其常常能使得一個或多個更高層次軟件應(yīng)用與硬件設(shè)備互動。常常,設(shè)備驅(qū)動器從用戶與其互動的更高層次應(yīng)用接受通用命令,且將命令翻譯成更低層次命令,被驅(qū)動的打印機設(shè)備被配置成處理更低層次命令。通過充當(dāng)翻譯器,設(shè)備驅(qū)動器能簡化更高層次應(yīng)用的編程,因為這些應(yīng)用不需要編程為以設(shè)備處理的更低層次語言來發(fā)布命令。設(shè)備驅(qū)動器也可提供標(biāo)準(zhǔn)化接口,更高層次應(yīng)用通過標(biāo)準(zhǔn)化接口可調(diào)用設(shè)備的功能。
打印機驅(qū)動器為軟件代碼主體,其使得更高層次應(yīng)用能調(diào)用由打印機設(shè)備提供的功能。通常,打印機驅(qū)動器提供可廣泛地分類為再現(xiàn)(rendering)、配置和用戶體驗功能的功能。簡言之,由打印機驅(qū)動器提供的再現(xiàn)功能將打印作業(yè)起始時生成的信息翻譯成符合打印機設(shè)備被配置成處理的頁面描述語言(PDL)的命令和數(shù)據(jù)。配置功能使得高層次程序能夠配置并查看打印機設(shè)備的各方面,諸如打印機設(shè)備支持的紙張大小,是否支持彩色打印等。用戶體驗功能在打印操作期間管理由打印機設(shè)備將信息呈現(xiàn)給用戶,諸如讓用戶知道打印作業(yè)已開始或完成,墨水供應(yīng)較低等。
常規(guī)地,打印機驅(qū)動器包括利用配置文件的靜態(tài)集合的代碼主體。對于配置文件的參考是硬編碼的,使得配置文件的任何變化可需要修改和重新測試打印機驅(qū)動器。此外, 由于包括打印機驅(qū)動器的代碼通常以執(zhí)行之前編譯的語言寫入,打印機驅(qū)動器對于發(fā)生編譯的特定處理器架構(gòu)(例如,32位架構(gòu)、64位架構(gòu)等)是特定的。因此,如果用戶采用特定打印機品牌和型號和執(zhí)行特定操作系統(tǒng)且具有特定處理器架構(gòu)的計算設(shè)備,則被設(shè)計成具體地用于組件的組合的打印機驅(qū)動器需要使計算設(shè)備和打印機設(shè)備互操作??紤]到市場上計算設(shè)備、操作系統(tǒng)和架構(gòu)的增長,以及對于計算設(shè)備將能打印的用戶社區(qū)的部分的一般設(shè)想,大量的打印機驅(qū)動器在市場中使用。每個驅(qū)動器必須由其供應(yīng)商管理,供應(yīng)商常常為獨立硬件賣方,其核心能力更大程度上傾向于構(gòu)建用戶友好的硬件設(shè)備而不是朝向開發(fā)在不同處理器架構(gòu)下執(zhí)行的許多不同操作系統(tǒng)下完美地執(zhí)行的打印機驅(qū)動器代碼。發(fā)明內(nèi)容
本發(fā)明的某些實施例提供可隨著時間來修改和補充打印機驅(qū)動器的技術(shù)。舉例而言,某些實施例提供允許隨著時間補充打印機驅(qū)動器功能以包括新的和/或增強的特征的框架。這些特征可例如涉及配置打印機能力,操縱打印設(shè)置,將信息呈現(xiàn)給用戶,處理打印相關(guān)系統(tǒng)事件等的方式??商峁┰S多類型的打印相關(guān)功能中的任何功能。
在某些實施例中,一個或多個組件(其可包括在由計算設(shè)備的操作系統(tǒng)提供的打印子系統(tǒng)中,打印機驅(qū)動器和/或某些其它系統(tǒng)元件中)可被配置成從各個源中的任何源自動搜尋和獲得配置數(shù)據(jù)。組件(一個或多個)可將任何獲得的配置數(shù)據(jù)合并到打印機驅(qū)動器內(nèi)使得其功能可隨著時間擴展和增強。配置數(shù)據(jù)的源可包括例如打印機設(shè)備、在線源和 /或其它源。舉例而言,組件(一個或多個)可被配置為周期性地查詢打印機設(shè)備、聯(lián)機源和 /或其它源以求涉及特定打印機設(shè)備的配置數(shù)據(jù),且若找到配置數(shù)據(jù),則將新獲得的配置數(shù)據(jù)合并到現(xiàn)有打印機驅(qū)動器內(nèi),以提供提高的打印相關(guān)的能力。因此,打印機驅(qū)動器可隨著時間開始支持越來越多的高級打印特征以反映且利用打印機設(shè)備更多的能力,盡管用戶可能并不采取任何措施來改進(jìn)或提高它。
本發(fā)明的實施例也可提供用于解決從多個源獲得的配置數(shù)據(jù)之間的重疊和/或沖突的過程。舉例而言,某些實施例可提供編程的邏輯來解決重疊或沖突,其可經(jīng)由一個或多個腳本語言(例如Javascript)來實施使得編程的邏輯在執(zhí)行之前無需編譯,且因此適合于在多個不同的處理器架構(gòu)下來執(zhí)行。當(dāng)然,并非本發(fā)明的所有實施例限于其中使用在執(zhí)行之前無需編譯的一種或多種腳本語言編碼重疊和/或沖突解決邏輯的實施方式。舉例而言,重疊和/或沖突解決邏輯代碼可以被解釋而非編譯、被“即時(Just-In-Time)”編譯、 或以任何其他合適方式采用,因為本發(fā)明的實施例在此方面并不受到限制。
前文的描述為本發(fā)明的非限制性概述,本發(fā)明由所附權(quán)利要求限定。
附圖不旨在按照比例繪制。在附圖中,在各個附圖中示出的每個相同或近似相同的組件由相同的附圖標(biāo)記來表示。為了簡單起見,并未在每個附圖中標(biāo)注每個組件。在附圖中圖1是描繪根據(jù)本發(fā)明的某些實施例的可獲得和/或提供配置數(shù)據(jù)的系統(tǒng)組件的方塊圖;圖2為描繪了根據(jù)本發(fā)明的某些實施例的組合從多個源獲得的配置數(shù)據(jù)的實例過程的流程圖;圖3為描繪了可用于實施本發(fā)明的某些實施例的實例計算機的方塊圖;以及圖4為描繪其上可記錄實施本發(fā)明各方面的指令的實例存儲器的方塊圖。
具體實施方式
本發(fā)明的某些實施例提供能隨著時間修改、補充和/或增強打印機驅(qū)動器功能的框架。舉例而言,某些實施例提供被配置成從各個源中任何源搜尋和獲得配置數(shù)據(jù)且將所發(fā)現(xiàn)的任何配置數(shù)據(jù)合并到打印機驅(qū)動器內(nèi)使得打印機驅(qū)動器的功能可隨著時間擴展和增強的組件(其可合并于打印子系統(tǒng)中,打印機驅(qū)動器中或某些其它位置)。
在某些實施例中,可“交付”僅提供打印相關(guān)特征的相對初步的集合的“基本”打印機驅(qū)動器(例如,支持最少量的紙張大小,諸如信紙和A4 ;僅支持黑白打??;沒有高級特征, 如雙面打印等)(例如與提供有打印機設(shè)備的計算設(shè)備的操作系統(tǒng)一起被包括,和/或以某種其它方式分布)以提供與傳統(tǒng)打印機設(shè)備的大部分一起使用的功能,從而使得用戶能完成基本打印任務(wù)。但是,一個或多個組件(例如,包括于計算設(shè)備的操作系統(tǒng)的打印子系統(tǒng)中,打印機驅(qū)動器中和/或任何其它系統(tǒng)元件(一個或多個))可被配置成從各個源(配置數(shù)據(jù)可通過這些源獲得)中的任一個源搜尋和獲得新配置數(shù)據(jù)。這些源可包括例如打印機設(shè)備、聯(lián)機源和/或一個或多個其它源。一旦定位了對應(yīng)于所考慮的打印機設(shè)備的新配置數(shù)據(jù),該配置數(shù)據(jù)可合并到打印機驅(qū)動器內(nèi),從而反映并利用打印機設(shè)備的更多能力且豐富用戶打印相關(guān)的體驗,即使該用戶可能沒有采取明顯動作來升級該打印機驅(qū)動器。
圖1描繪了實例系統(tǒng)組件和技術(shù),由此,可從合并到打印機驅(qū)動器內(nèi)的一個或多個源獲得新配置數(shù)據(jù)。在圖1所示的實例中,執(zhí)行操作系統(tǒng)107的計算機105從多個源,包括聯(lián)機源(一個或多個)110、打印機設(shè)備125、基本配置數(shù)據(jù)140和其它源(一個或多個)150 獲得配置數(shù)據(jù)。應(yīng)了解這些配置數(shù)據(jù)的源只是示例性的且可采用多個配置數(shù)據(jù)源中的任何數(shù)據(jù)源,因為本發(fā)明的實施例在此方面并無限制。
在圖1中所示的實例中,計算機105獲得基本配置數(shù)據(jù)140。舉例而言,基本配置數(shù)據(jù)140可接收于存儲介質(zhì)上,諸如存儲用于安裝和/或增強操作系統(tǒng)107的數(shù)據(jù)的存儲介質(zhì),或者其與打印機設(shè)備125—起交付。當(dāng)然,本發(fā)明的實施例不限于圖1中所示的實施方式。舉例而言,在某些實施例中,基本配置數(shù)據(jù)140無需由計算機105獲得,因為其可本地地存儲在計算機105上(例如,通過例如合并到打印機驅(qū)動器和/或也與計算機105 — 起交付的操作系統(tǒng)內(nèi)來與計算機105 —起交付)。若獲得,基本配置數(shù)據(jù)無需提供于存儲介質(zhì)上,因為其可從一個或多個聯(lián)機源(例如,聯(lián)機驅(qū)動器存儲裝置)獲得?;九渲脭?shù)據(jù) 140可由計算機105以任何合適方式獲得和/或使之可獲得,因為本發(fā)明的實施例在此方面并無限制。
此基本配置數(shù)據(jù)可支持被設(shè)計成允許計算機105與大量打印機設(shè)備互操作的初步特征集合。舉例而言,配置數(shù)據(jù)可實現(xiàn)大量傳統(tǒng)打印機設(shè)備提供的基本打印特征,例如黑白打印,有限的紙張大小并且沒有諸如雙面打印的高級特征。因此,向計算機105所用的打印機驅(qū)動器內(nèi)包括此基本配置數(shù)據(jù)可允許其與大量設(shè)備互操作且提供打印特征的基本集合。當(dāng)然,本發(fā)明的實施例可提供多種類型配置數(shù)據(jù)中的任何配置數(shù)據(jù),支持多種類型打印特征的任何特征。
在圖1的實例中,打印機驅(qū)動器的另一配置數(shù)據(jù)源為打印機設(shè)備125。可由計算機 105使用多種技術(shù)中的任何技術(shù)來從打印機設(shè)備125獲得配置數(shù)據(jù)。在本發(fā)明的某些實施例中,計算機105可采用一個或多個打印機設(shè)備通信協(xié)議,無論是已知的(例如,WS-PRINT、 SNMP等)或后來開發(fā)的,以向打印機設(shè)備125發(fā)布查詢且響應(yīng)于這些查詢來接收配置數(shù)據(jù)。
在本發(fā)明的某些實施例中,一個或多個常規(guī)打印機設(shè)備通信協(xié)議可擴展到使得計算機105能向打印機設(shè)備發(fā)布查詢。在此方面,雖然常規(guī)打印機設(shè)備通信協(xié)議使得計算機能夠獲得關(guān)于打印機設(shè)備狀況的基本的初步信息(例如,還有多少墨水供打印,安裝哪些紙張槽等),本發(fā)明的某些實施例擴展這些常規(guī)協(xié)議以允許計算機獲得關(guān)于打印機設(shè)備的能力的額外且更復(fù)雜類型的信息。舉例而言,常規(guī)協(xié)議可擴展到使計算機能獲得諸如打印機設(shè)備是否支持無邊距打印,安裝的雙面器單元的細(xì)節(jié)、其支持的介質(zhì)大小之類的信息。多種類型的信息中的任何信息可從打印機設(shè)備獲得,涉及多個特征中的任何特征、狀況指示或能力中的任一個,因為本發(fā)明的實施例在此方面無限制。
在圖1的實例中,計算機105也從一個或多個聯(lián)機源110獲得聯(lián)機配置數(shù)據(jù)120。 具體而言,在所描繪的實例中,計算機105經(jīng)由因特網(wǎng)115獲得聯(lián)機配置數(shù)據(jù)120。但應(yīng)了解,聯(lián)機配置數(shù)據(jù)無需從可經(jīng)由因特網(wǎng)或任何其它一個或多個公共通信網(wǎng)絡(luò)訪問的源獲得且可從可經(jīng)由任何網(wǎng)絡(luò)(一個或多個)訪問的源獲得,包括采用任何合適通信基礎(chǔ)結(jié)構(gòu)和/ 或協(xié)議(一個或多個)的公共和/或?qū)S镁W(wǎng)絡(luò)。本發(fā)明的實施例在此方面并無限制。5
在本發(fā)明的某些實施例中,可通過在計算機105上執(zhí)行的一個或多個自動化過程來獲得聯(lián)機配置數(shù)據(jù)120。舉例而言,包括計算機105的操作系統(tǒng)的部分的一個或多個自動化過程可被配置成從聯(lián)機源獲得配置數(shù)據(jù),以及可合并到在計算機105上執(zhí)行的操作系統(tǒng)和/或任何應(yīng)用內(nèi)的信息。另外,一個或多個組件可被配置成處理從連接到計算機105的外圍設(shè)備(諸如打印機設(shè)備125)接收的信息。這條信息可包括例如打印機設(shè)備125的品牌和型號。使用這條信息,一個或多個組件可查詢聯(lián)機源110來識別與打印機設(shè)備125相關(guān)聯(lián)的配置數(shù)據(jù)。當(dāng)然本發(fā)明的實施例并不限于這種實施方式,因為可以以任何合適方式來查詢聯(lián)機源110。舉例而言,可人工地(例如由計算機105的用戶)查詢一個或多個網(wǎng)站或其他聯(lián)機源(例如,由獨立硬件賣方提供)來獲得可適用于打印機設(shè)備125的配置數(shù)據(jù)。 如果一個或多個自動化過程用于獲得配置數(shù)據(jù),則自動化過程(一個或多個)無需包括在計算機105的操作系統(tǒng)中,且可以以任何合適方式來實施,因為本發(fā)明的實施例在此方面并無限制。在圖1的實例中,也由計算機105從一個或多個附加源獲得配置數(shù)據(jù)150。附加源(一個或多個)可為目前已知的或后來開發(fā)的,且可提供多種類型的配置信息中的任何信息。舉例而言,新配置數(shù)據(jù)的源可隨著時間開發(fā)和實施以提供新類型的配置數(shù)據(jù),提供從各種源獲得配置數(shù)據(jù)的新方式,管理打印操作和/或執(zhí)行多種其它打印相關(guān)功能中的任何功能。舉例而言,如果開發(fā)或增強新設(shè)備通信協(xié)議以使計算機105能夠從打印機設(shè)備125獲得配置數(shù)據(jù),那么新的協(xié)議可作為配置數(shù)據(jù)150的部分而提供給計算機105,且由計算機105 合并到其打印機驅(qū)動器內(nèi)使得打印機驅(qū)動器可采用新設(shè)備通信協(xié)議來從打印機設(shè)備125 取回信息。在另一實例中,配置數(shù)據(jù)150可提供一種功能,由此可例如由管理員或其它用戶管理打印操作。舉例而言,配置數(shù)據(jù)150可包括指令和/或數(shù)據(jù),當(dāng)合并于計算機105上的打印機驅(qū)動器內(nèi)時,所述指令和/或數(shù)據(jù)可使管理員能夠?qū)τ谀撤N類型的打印作業(yè)施加限制。舉例而言,在業(yè)務(wù)設(shè)置中,管理員可對于打印作業(yè)施加限制使得某些用戶必須以雙面模式打印以節(jié)省紙張,以僅在選定情形下允許彩色打印等。關(guān)于執(zhí)行打印的方式的多種類型信息中的任何信息可以包括在配置數(shù)據(jù)150內(nèi)并合并到打印機驅(qū)動器內(nèi),因為本發(fā)明的實施例在此方面并無限制。在某些實施方式中,配置數(shù)據(jù)可僅從圖1中所描繪的源的子集提供。舉例而言,缺少網(wǎng)絡(luò)接入(例如,由于家庭用戶并不具有因特網(wǎng)接入,由于安全考慮等)可防止計算機 105訪問聯(lián)機源110和因此聯(lián)機配置數(shù)據(jù)120。因此,計算機105可僅訪問本地配置數(shù)據(jù) 140和由打印機設(shè)備125提供的配置數(shù)據(jù)130??蓮膱D1中所描繪的源中的一個或多個獲得配置數(shù)據(jù),因為本發(fā)明的實施例并不限于其中所有配置數(shù)據(jù)的源可用的任何實施方式。當(dāng)從各個源獲得配置數(shù)據(jù)時,其可合并到打印機驅(qū)動器內(nèi)。在圖2中示出用于創(chuàng)建由計算機105使用的聯(lián)合的(consolidated)配置數(shù)據(jù)的實例過程200。在過程200開始時,在動作205,從一個或多個源(例如,那些在圖1中示出的源和 /或一個或多個其它源)接收配置數(shù)據(jù)。配置數(shù)據(jù)可以以多種形式中的任何形式接收,因為本發(fā)明的實施例在此方面并無限制。舉例而言,在本發(fā)明的某些實施例中,配置數(shù)據(jù)以包含附言打印機描述(PPD)和/或一般打印機描述(GPD)格式的數(shù)據(jù)的文件形式接收。在此方面,PPD和GPD文件常規(guī)地用于描述特定打印機設(shè)備或者共有一個或多個特征的一類打印機設(shè)備的能力,與打印機設(shè)備互操作的計算機的操作系統(tǒng)的能力。實例能力可包括由打印機設(shè)備支持的紙張大小,是否支持雙面打印,和可執(zhí)行打印的顏色。當(dāng)然,本發(fā)明的實施例并不限于采用PPD和/或GPD文件,因為可以以任何合適方式和使用任何合適格式(一種或多種)來描述關(guān)于打印機設(shè)備能力或打印機設(shè)備類別的許多類型的信息中的任何信息。
過程200然后進(jìn)行到動作210,其中識別從一個或多個源接收的配置數(shù)據(jù)中表示的特征集合。所表示的個別特征的識別可以任何合適方式來執(zhí)行。舉例而言,可采用編程的邏輯來識別特征。
過程200然后進(jìn)行到動作215,其中整理從多于一個源接收的針對在動作210中識別的具體特征的配置數(shù)據(jù)。這可以任何合適方式來執(zhí)行且對于不同特征,所用技術(shù)可不同。 舉例而言,對于某些特征,來自一個源的配置數(shù)據(jù)可補充從另一源接收的配置數(shù)據(jù)。舉例而言,如果正被討論的特征為打印機設(shè)備支持的紙張大小,且一個配置數(shù)據(jù)源規(guī)定了支持兩種紙張大小且另一配置數(shù)據(jù)源規(guī)定了支持五種其它紙張大小,那么在動作215中的整理可涉及合并由兩個源所規(guī)定的紙張大小以指示支持七種紙張大小。
在另一實例中,從一個源接收的特征的配置數(shù)據(jù)可優(yōu)先于從另一源接收的該特征的配置數(shù)據(jù)而被選來使用。舉例而言,規(guī)定其更特定于打印機設(shè)備的特征的配置數(shù)據(jù)可優(yōu)先于規(guī)定其不那么特定于打印機設(shè)備的特征的配置數(shù)據(jù)而被選來使用。特定性可以多種方式中的任何方式來確定。舉例而言,在某些實施例中,特定性可由該源本身來確定。使用圖1中所示的配置數(shù)據(jù)源來說明,從聯(lián)機源110接收的聯(lián)機配置數(shù)據(jù)120可被指定為最有設(shè)備特定性的配置數(shù)據(jù)源,之后為從打印機設(shè)備125接收的配置數(shù)據(jù)130,之后為存儲于計算機105上的本地配置數(shù)據(jù)140。通過將自聯(lián)機源110的聯(lián)機配置數(shù)據(jù)120指定為最有設(shè)備特定性的配置數(shù)據(jù)源,本發(fā)明的實施例可允許隨著時間更靈活地調(diào)適打印機驅(qū)動器的配置,因為聯(lián)機源110可利用新配置數(shù)據(jù)比打印機設(shè)備125更頻繁地更新。當(dāng)然,對打印機設(shè)備的特定性無需用于確定哪些配置數(shù)據(jù)優(yōu)先于其它配置數(shù)據(jù)被選來使用,且如果使用特定性,則其不需要基于配置數(shù)據(jù)源來確定。實際上,在動作215中對配置數(shù)據(jù)的整理無需通過合并來自不同源的數(shù)據(jù)或先于另一集合來選擇一個配置數(shù)據(jù)集合來執(zhí)行,如上文所述的那樣??刹捎枚喾N技術(shù)中的任何技術(shù),因為本發(fā)明的實施例在此方面并無限制。
過程200然后進(jìn)行到動作220,其中解決在不同特征之間的任何重疊和/或沖突。 可出現(xiàn)重疊和/或沖突,例如因為在某些設(shè)置中僅當(dāng)允許、禁止另一特征時才采用一種特征等。在一個實例中,對于規(guī)定了打印機設(shè)備所支持的紙張大小的一個特征所獲得的配置數(shù)據(jù)可指示打印機設(shè)備能在包括5” X 7”和8. 5” X 11”紙的紙張大小上打印,且對于規(guī)定了打印機設(shè)備是否支持無邊距打印特征的另一特征的配置數(shù)據(jù)可指示打印機設(shè)備能進(jìn)行無邊距打印。但是,打印機設(shè)備可僅能對5” X 7”紙進(jìn)行無邊距打印,且并不對8. 5” X 11”紙進(jìn)行無邊距打印,從而應(yīng)解決在紙張大小與無邊距打印特征之間的沖突。在另一實例中,如果從聯(lián)機源獲得的配置數(shù)據(jù)指示如果安裝了雙面器單元,打印機設(shè)備支持雙面打印,且從打印機設(shè)備接收的配置數(shù)據(jù)指示并未安裝雙面器單元,那么應(yīng)解決沖突使得并不向用戶呈現(xiàn)雙面打印選項。
本發(fā)明的實施例可以多種方式中的任何方式解決在特征之間的重疊和/或沖突。 在某些實施例中,提供編程邏輯來解決重疊和/或沖突使得可向用戶呈現(xiàn)整理的配置數(shù)據(jù)。在某些實施例中,使用一種或多種腳本語言(例如,JavaScript和/或其它腳本語言)來對此邏輯進(jìn)行編程使得包括邏輯的代碼無需在執(zhí)行之前編譯。因此,本發(fā)明的某些實施例可提供可在任何合適操作系統(tǒng)和/或處理器架構(gòu)上執(zhí)行的用于解決重疊和/或沖突的靈活工具。當(dāng)然,并非本發(fā)明的所有實施例以此方式實施。可采用任何合適工具(一個或多個) 和/或技術(shù)(一個或多個),因為本發(fā)明的實施例在此方面并無限制。在完成動作220時,過程200進(jìn)行到動作225,其中整理的配置數(shù)據(jù)可供使用。這可以多種方式中的任何方式來執(zhí)行。在某些實施例中,打印機驅(qū)動器可提供(例如當(dāng)由發(fā)起打印的應(yīng)用調(diào)用時)描述打印機設(shè)備能力的文件、數(shù)據(jù)流、內(nèi)存對象模型和/或任何其它合適數(shù)據(jù)結(jié)構(gòu)(一個或多個)(例如,用可擴展標(biāo)記語言(XML)和/或任何其它合適格式)。 過程200然后完成。本發(fā)明的某些實施例可提供打印機的設(shè)備的能力的呈現(xiàn)是重復(fù)的技術(shù),使得當(dāng)在動作225中描述打印機設(shè)備的能力所采用的特征數(shù)據(jù)變得過時和/或發(fā)生其它變化時,可解決所產(chǎn)生的任何沖突。這可以多種方式中的任何方式來執(zhí)行。在某些實施例中,提供給應(yīng)用以描述打印機設(shè)備能力的文件可包括經(jīng)由執(zhí)行例程(例如,Javascript例程)所生成的結(jié)果,其可提供解決從創(chuàng)建文件起發(fā)生的任何變化的靈活性。舉例而言,如果在動作225 中創(chuàng)建的文件指示打印機設(shè)備能進(jìn)行彩色打印,且然后(例如使用由打印機設(shè)備提供的數(shù)據(jù))判斷出打印機設(shè)備已用完紅墨水,那么由配置數(shù)據(jù)所參考的例程生成且提供在文件中的結(jié)果可實現(xiàn)將最新特征集合呈現(xiàn)給用戶,使得他和/或她知道在補供紅墨水之前只可開始黑白打印。描述打印機設(shè)備的當(dāng)前能力和/或那些能力的任何變化的配置數(shù)據(jù)可以多種形式中的任何形式從多個源中的任何源接收,并且可以多種方式中的任何方式處理,因為本發(fā)明的實施例在此方面并無限制。用于實踐本發(fā)明的特征的系統(tǒng)和方法的各個方面可在一個或多個計算機系統(tǒng)上實施,諸如圖3中所示的示例性計算機系統(tǒng)300。計算機系統(tǒng)300包括輸入設(shè)備(一個或多個X302、輸出設(shè)備(一個或多個X301、處理器303、存儲器系統(tǒng)304和存儲設(shè)備306,所有這些直接地耦合或間接地經(jīng)由互連機構(gòu)305耦合,互連機構(gòu)305可包括一個或多個總線、開關(guān)、 網(wǎng)絡(luò)和/或任何其它合適的互連。輸入設(shè)備(一個或多個)302從用戶或機器(例如人操作者)接收輸入且輸出設(shè)備(一個或多個)301向用戶或機器(例如,液晶顯示器)顯示或傳輸信息。能使用輸入設(shè)備(一個或多個)和輸出設(shè)備(一個或多個)等來尤其給出用戶接口。 可用于提供用戶接口的輸出設(shè)備的實例包括打印機或用于視覺地呈現(xiàn)輸出的顯示器屏幕和用于可聽地呈現(xiàn)輸出的揚聲器或其它聲音發(fā)生設(shè)備??捎糜谟脩艚涌诘妮斎朐O(shè)備的實例包括鍵盤和諸如鼠標(biāo)、觸摸墊和數(shù)字化寫字板的指示設(shè)備。作為另一實例,計算機可通過語音識別或以其它可聽格式來接收輸入信息。處理器303通常執(zhí)行稱作操作系統(tǒng)的計算機程序(例如,微軟視窗系列操作系統(tǒng)或任何其它合適操作系統(tǒng)),其控制其它計算機程序的執(zhí)行,且提供時間表、輸入/輸出和其它設(shè)備控制、報告、編譯、存儲分配、數(shù)據(jù)管理、存儲器管理、通信和數(shù)據(jù)流控制??傊幚砥骱筒僮飨到y(tǒng)限定寫入應(yīng)用程序和其它計算機程序語言的計算機平臺。處理器303也可執(zhí)行一個或多個計算機程序來實施各種功能。這些計算機程序可以任何類型的計算機程序語言來寫,包括過程編程語言,面向?qū)ο蟮木幊陶Z言、宏語言或其組合。這些計算機程序可存儲于存儲系統(tǒng)306中。存儲系統(tǒng)306可在易失性或非易失性介質(zhì)上保持信息且可為固定的或可移動的。在圖4中更詳細(xì)地示出了存儲系統(tǒng)306。
8
存儲系統(tǒng)306可包括有形計算機可讀和可寫的非易失性記錄介質(zhì)401,在上面存儲限定將由程序使用的計算機程序或信息的信號。記錄介質(zhì)可例如為盤存儲器、閃存和/ 或可用于記錄和存儲信息的任何其它制造件(一個或多個)。通常,在操作中,處理器303 使得數(shù)據(jù)從非易失性記錄介質(zhì)301讀取到易失性存儲器402內(nèi)(例如,隨機存取存儲器或 RAM),其允許由處理器303比介質(zhì)401更快速地存取信息。存儲器402可位于存儲系統(tǒng)306 或存儲器系統(tǒng)304中,在圖3中示出。處理器303通常操縱在集成電路存儲器304、402內(nèi)的數(shù)據(jù)且然后在完成處理之后將數(shù)據(jù)拷貝到介質(zhì)401內(nèi)。已知用于在介質(zhì)401與集成電路存儲元件304、402之間管理數(shù)據(jù)移動的多種機制,且本發(fā)明并不限于任何機構(gòu),無論是現(xiàn)在已知的還是后來開發(fā)的。本發(fā)明也不限于特定存儲系統(tǒng)304或存儲系統(tǒng)306。
因此已描述了本發(fā)明的至少一個實施例的若干方面,應(yīng)了解本領(lǐng)域技術(shù)人員將易于想到各種更改、修改和改進(jìn)。這樣的更改、修改和改進(jìn)預(yù)期為本公開的部分,且預(yù)期在本發(fā)明的精神和范圍內(nèi)。因此,前文的描述和附圖只是舉例說明。
本發(fā)明的上文所述的實施例可以多種方式中的任何方式來實施。舉例而言,這些實施例可使用硬件、軟件或其組合來實施。當(dāng)以軟件實施時,軟件代碼可在任何合適的處理器或處理器集合上執(zhí)行,無論提供于單個計算機中還是分布于多個計算機和/或系統(tǒng)之間。這樣的處理器可實施為集成電路,具有在集成電路構(gòu)件中的一個或多個處理器,但可使用任何合適形式的電路來實施處理器。
應(yīng)了解執(zhí)行本文所述功能的任何組件或組件集合可一般地認(rèn)為是控制上文所討論功能的一個或多個控制器。一個或多個控制器能以多種方式實施,諸如利用專用硬件,或者通過采用使用執(zhí)行上述功能的微代碼或軟件編程的一個或多個處理器。在控制器存儲或提供用于系統(tǒng)操作的數(shù)據(jù)的情況下,這樣的數(shù)據(jù)可存儲于中央貯存器中,多個貯存器中或其組合中。
另外應(yīng)了解,計算機可實施為多種形式中的任何形式,諸如機架安裝的計算機、臺式計算機、膝上型計算機或板式計算機。此外,計算機可嵌入于通常不認(rèn)為是計算機而是具有合適處理能力的設(shè)備內(nèi),包括個人數(shù)字助理(PDA)、智能手機或任何其它合適的便攜式或固定電子設(shè)備。
而且,計算機可具有一個或多個輸入和輸出設(shè)備。這些設(shè)備可用于尤其呈現(xiàn)用戶接口??捎糜谔峁┯脩艚涌诘妮敵鲈O(shè)備的實例包括打印機或用于視覺地呈現(xiàn)輸出的顯示器屏幕或用于可聽地呈現(xiàn)輸出的揚聲器或其它聲音發(fā)生設(shè)備。可用于用戶接口的輸入設(shè)備的實例包括鍵盤和諸如鼠標(biāo)、觸摸墊和數(shù)字化寫字板的指示設(shè)備。作為另一實例,計算機可通過語音識別或以其它可聽格式來接收輸入信息。
這樣的計算機可由任何合適形式的一個或多個網(wǎng)絡(luò)互連,包括局域網(wǎng)或廣域網(wǎng), 諸如企業(yè)網(wǎng)絡(luò)或因特網(wǎng)。這樣的網(wǎng)絡(luò)可基于任何合適的技術(shù)且可根據(jù)任何合適協(xié)議操作且可包括無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。
而且,本文所列出的各種方法或過程可編碼為軟件,軟件可執(zhí)行于采用多種操作系統(tǒng)或平臺中任一個的一個或多個處理器上。此外,這樣的軟件可使用多種合適編程語言和/或編程或腳本工具中的任一個來寫,且還可編譯為在框架或視覺環(huán)境上執(zhí)行的可執(zhí)行機器語言代碼或中間代碼。
在此方面,本發(fā)明可實施為計算機可讀介質(zhì)(或多個計算機可讀介質(zhì))(例如,計9算機存儲器,一個或多個軟盤、致密盤(CD)、光盤、數(shù)字視頻盤(DVD)、磁帶、閃存、現(xiàn)場可編程門陣列中的電路配置或其它半導(dǎo)體設(shè)備,或其它非暫態(tài)有形計算機可讀存儲介質(zhì)),其利用一個或多個程序編碼,當(dāng)這些程序在一個或多個計算機或其它處理器上執(zhí)行時執(zhí)行實施上文所討論的本發(fā)明各種實施例的方法。一個或多個計算機可讀介質(zhì)是可運輸?shù)?,使得存儲于其上的一個或多個程序可加載到一個或多個不同的計算機或其它處理器上以實施如上文所討論的本發(fā)明的各個方面。如本文所用的術(shù)語“非暫態(tài)有形計算機可讀存儲介質(zhì)”僅涵蓋可認(rèn)為是制造件(即,制造的物件)或機器的計算機可讀介質(zhì)。
如本文所用的術(shù)語“程序”或“軟件”在一般意義上指可用于對計算機或其它處理器編程以實施如上文所討論的本發(fā)明的各個方面的任何類型的計算機代碼或計算機可執(zhí)行的指令的集合。此外,應(yīng)了解,根據(jù)此實施例的一個方面,當(dāng)被執(zhí)行時執(zhí)行本發(fā)明的方法的一個或多個計算機程序不需要駐留在單個計算機或處理器上,而是可以模塊化方式分布于多個不同的計算機或處理器之間以實施本發(fā)明的各個方面。
計算機可執(zhí)行的指令可呈由一個或多個計算機或其它設(shè)備執(zhí)行的許多形式,諸如程序模塊。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型。通常,程序模塊的功能可按需要地組合或分布在各種實施例中。
而且,數(shù)據(jù)結(jié)構(gòu)可存儲于任何合適形式的計算機可讀介質(zhì)中。為了簡化說明,數(shù)據(jù)結(jié)構(gòu)可示出具有通過數(shù)據(jù)結(jié)構(gòu)中的位置而相關(guān)的場。這樣的關(guān)系可同樣地通過向場的存儲分配計算機可讀介質(zhì)中的位置來實現(xiàn),所述場的存儲傳達(dá)場之間的關(guān)系。但是,任何合適的機制可用于在數(shù)據(jù)結(jié)構(gòu)的場中的信息之間建立關(guān)系,包括通過使用指針、標(biāo)簽或在數(shù)據(jù)元素之間建立關(guān)系的其它機制。
本發(fā)明的各個方面可單獨地、組合地或以前文描述的實施例中未具體討論的多種布置來使用,且因此其應(yīng)用并不限于在前面的描述中闡述或附圖中圖示的構(gòu)件的細(xì)節(jié)和布置。舉例而言,在一個實施例中描述的方面可以許多方式與其它實施例中所描述的方面組I=I O
而且,本發(fā)明可實施為方法,提供該方法的實例。作為方法的部分執(zhí)行的動作可以任何合適方式排序。因此,可構(gòu)造其中以不同于圖示次序的次序執(zhí)行動作的實施例,其可包括同時執(zhí)行某些動作,即使在本文所述的說明性實施例中示出為順序動作。
在權(quán)利要求中使用諸如“第一”、“第二”、“第三”等次序術(shù)語來修飾權(quán)利要求元素本身并不暗示任何優(yōu)先順序、優(yōu)先級或一個權(quán)利要求元素優(yōu)于另一權(quán)利要求元素的次序, 或者執(zhí)行方法的動作的時間次序,而是只用作標(biāo)簽來區(qū)分具有特定名字的一個權(quán)利要求元素與具有相同名字(但使用次序術(shù)語)的另一元素來區(qū)分這些權(quán)利要求元素。
而且,本文所用的短語和術(shù)語是出于描述目的且不應(yīng)認(rèn)為具有限制意義。在本文中使用“包括”、“包含”或“具有”、“含有”、“涉及”和其變型意謂著涵蓋之后列出的項目和其等效物以及附加項目。
權(quán)利要求
1.至少一個計算機可讀介質(zhì)001),其上編碼指令,所述指令在執(zhí)行時執(zhí)行用在包括打印機設(shè)備(12 和打印機驅(qū)動器的系統(tǒng)中的方法,所述打印機驅(qū)動器包括用于驅(qū)動打印機設(shè)備的配置數(shù)據(jù),所述配置數(shù)據(jù)限定所述打印機驅(qū)動器的至少一個特征,所述方法包括(A)確定(20 新配置數(shù)據(jù)是否通過多個源中的任何源而變得可獲得,所述多個源包括打印機設(shè)備和至少一個聯(lián)機源;以及(B)如果確定新配置數(shù)據(jù)可用,則使用(225)所述新配置數(shù)據(jù)來添加或增強所述打印機驅(qū)動器的特征。
2 根據(jù)權(quán)利要求1所述的至少一個計算機可讀介質(zhì),其中所述系統(tǒng)包括計算機,所述計算機執(zhí)行操作系統(tǒng),所述操作系統(tǒng)包括至少一個組件,且其中由所述至少一個組件來執(zhí)行㈧和⑶。
3.根據(jù)權(quán)利要求1所述的至少一個計算機可讀介質(zhì),其中在(B)中添加或增強的特征涉及配置所述打印機設(shè)備的一個或多個能力、操縱針對打印作業(yè)的一個或多個打印設(shè)置或者將關(guān)于由打印機設(shè)備打印的信息呈現(xiàn)給用戶的方式。
4.根據(jù)權(quán)利要求1所述的至少一個計算機可讀介質(zhì),其中(B)包括解決在至少兩個特征的配置數(shù)據(jù)之間的重疊和/或沖突。
5.一種系統(tǒng)(300),其包括至少一個處理器(303),所述處理器(30 被編程為確定O05)由打印機驅(qū)動器在驅(qū)動打印機設(shè)備時使用的新配置數(shù)據(jù)是否通過多個源而變得可獲得,所述多個源包括打印機設(shè)備(125)、至少一個聯(lián)機源(110)和管理員(150); 以及如果確定新配置數(shù)據(jù)可從所述多個源中的任何源獲得,則將所述新配置數(shù)據(jù)合并 (225)到所述打印機驅(qū)動器內(nèi)以便添加或增強所述打印機驅(qū)動器的特征。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述合并包括整理從多個源中至少兩個源接收的針對具體特征的配置數(shù)據(jù),以及解決至少兩個特征的配置數(shù)據(jù)中的重疊和/或沖突。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述至少一個處理器還被編程為使得被添加或增強的特征的特征數(shù)據(jù)可由打印的應(yīng)用使用。
8.—種用在包括打印機設(shè)備(12 和打印機驅(qū)動器的系統(tǒng)中的方法000),所述打印機驅(qū)動器包括用于驅(qū)動所述打印機設(shè)備的配置數(shù)據(jù),所述配置數(shù)據(jù)限定所述打印機驅(qū)動器的至少一個特征,所述方法包括(A)確定(20 新配置數(shù)據(jù)是否可通過多個源中的任何源而變得可獲得,所述多個源包括所述打印機設(shè)備和至少一個聯(lián)機源;以及(B)如果確定新配置數(shù)據(jù)可獲得,則使用(22 所述新配置數(shù)據(jù)來添加或增強所述打印機驅(qū)動器的特征。
9.根據(jù)權(quán)利要求8所述的方法,其中所述系統(tǒng)包括計算機,所述計算機執(zhí)行操作系統(tǒng), 所述操作系統(tǒng)包括至少一個組件且其中由所述至少一個組件執(zhí)行(A)和(B)。
10.根據(jù)權(quán)利要求9所述的方法,其中所述至少一個組件形成所述操作系統(tǒng)的打印子系統(tǒng)的部分。
全文摘要
本發(fā)明的某些實施例提供可隨著時間來修改和補充打印機驅(qū)動器的技術(shù)。舉例而言,可提供框架,其使得打印機驅(qū)動器的功能能夠隨著時間補充以包括新的和/或增強的特征,例如涉及配置打印機能力、操縱打印設(shè)置、將信息呈現(xiàn)給用戶、處置打印相關(guān)系統(tǒng)事件等的方式的特征。在某些實施例中,一個或多個組件(其可包括于由計算設(shè)備的操作系統(tǒng)提供的打印子系統(tǒng)中、打印機驅(qū)動器中和/或某些其它系統(tǒng)元件中)可被配置成自動地從各個源中的任何源搜尋和獲得配置數(shù)據(jù),所述源包括打印機設(shè)備、一個或多個聯(lián)機源和/或其它源。
文檔編號G06F3/12GK102520894SQ20111041419
公開日2012年6月27日 申請日期2011年12月13日 優(yōu)先權(quán)日2010年12月13日
發(fā)明者戈爾根伊 F., 哈欽斯 J., 費內(nèi)倫 M., 岳峰 申請人:微軟公司