專(zhuān)利名稱(chēng):多層打印機(jī)驅(qū)動(dòng)程序模型的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備驅(qū)動(dòng)程序,更特別地涉及打印機(jī)驅(qū)動(dòng)程序。
背景技術(shù):
設(shè)備驅(qū)動(dòng)程序是允許一個(gè)或多個(gè)較高層次計(jì)算機(jī)程序與硬件設(shè)備交互的軟件代碼體。經(jīng)常,設(shè)備驅(qū)動(dòng)程序接受來(lái)自用戶與之交互的較高層次計(jì)算機(jī)程序的通用命令,并且將這些命令轉(zhuǎn)化成適合于驅(qū)動(dòng)設(shè)備的較低層次命令。通過(guò)充當(dāng)較高層次程序與硬件設(shè)備之間的翻譯器,設(shè)備驅(qū)動(dòng)程序可以簡(jiǎn)化這些程序的編程,因?yàn)樘峁┯糜诔绦蚺c設(shè)備進(jìn)行接口的標(biāo)準(zhǔn)化方式可以允許程序開(kāi)發(fā)者專(zhuān)注于較高層次程序代碼,而不是專(zhuān)注于使得設(shè)備操作所需的較低層次機(jī)器命令。
打印機(jī)驅(qū)動(dòng)程序是使得較高層次程序能夠使用打印機(jī)設(shè)備的軟件代碼體。通常,打印機(jī)驅(qū)動(dòng)程序提供三種主要類(lèi)型的功能再現(xiàn)(render)、配置和用戶體驗(yàn)功能。打印機(jī)驅(qū)動(dòng)程序提供的再現(xiàn)功能將較高層次計(jì)算機(jī)程序調(diào)用打印功能時(shí)下層操作系統(tǒng)產(chǎn)生的信息轉(zhuǎn)化成符合打印機(jī)設(shè)備使用的頁(yè)面描述語(yǔ)言(PDL)(例如PostScript、PDF、XPS、PCL5等等)的命令和數(shù)據(jù)。打印機(jī)驅(qū)動(dòng)程序產(chǎn)生的PDL形式的信息可以例如包括在打印信息時(shí)要由打印機(jī)設(shè)備處理的文本和/或二進(jìn)制格式的數(shù)據(jù)流。打印機(jī)驅(qū)動(dòng)程序提供的配置功能使得打印機(jī)設(shè)備能夠提供與其配置有關(guān)的信息,例如其支持的紙張大小,目前移入或移出的紙張托盤(pán)數(shù)量,其是否支持裝訂、彩色打印等等。用戶體驗(yàn)功能管理經(jīng)由屏幕顯示器呈現(xiàn)給用戶的不同用戶對(duì)話,例如打印操作期間呈現(xiàn)的選項(xiàng)等等。經(jīng)常,操作系統(tǒng)提供“缺省”用戶體驗(yàn),但是由該缺省提供的特征集被擴(kuò)展(例如被供應(yīng)打印機(jī)設(shè)備的獨(dú)立硬件供應(yīng)商或IHV擴(kuò)展)以便支持諸如加商標(biāo)之類(lèi)的目的。
發(fā)明內(nèi)容
申請(qǐng)人:已經(jīng)意識(shí)到常規(guī)打印機(jī)驅(qū)動(dòng)程序的各種不同的缺陷。例如,常規(guī)打印機(jī)驅(qū)動(dòng)程序被開(kāi)發(fā)成特定于設(shè)備、操作系統(tǒng)和架構(gòu)的。結(jié)果,特定的常規(guī)打印機(jī)驅(qū)動(dòng)程序使得較高層次程序僅僅與特定商標(biāo)和型號(hào)的打印機(jī)設(shè)備進(jìn)行接口,僅僅在特定操作系統(tǒng)下執(zhí)行并且僅僅在特定處理器架構(gòu)(例如32位架構(gòu)、64位等等)下執(zhí)行。因此,如果作為一個(gè)示例,用戶采用特定的打印機(jī)商標(biāo)和型號(hào)以及執(zhí)行運(yùn)行在64位架構(gòu)下的微軟Windows系列操作系統(tǒng)的計(jì)算機(jī),那么需要為該配置設(shè)計(jì)的特定打印機(jī)驅(qū)動(dòng)程序以便打印機(jī)與計(jì)算機(jī)互操作。給定市場(chǎng)上新的計(jì)算設(shè)備、操作系統(tǒng)和架構(gòu)的激增以及用戶群體部分的新計(jì)算設(shè)備將能夠與打印機(jī)設(shè)備互操作以便打印信息的一般假設(shè),許多打印機(jī)設(shè)備供應(yīng)商努力跟上步伐并且提供支持使用的不同配置的數(shù)量所需的驅(qū)動(dòng)程序。也許作為結(jié)果,打印機(jī)驅(qū)動(dòng)程序可能容易出錯(cuò)。由于經(jīng)常將打印機(jī)驅(qū)動(dòng)程序加載到試圖打印的較高層次程序的進(jìn)程中,因而打印機(jī)驅(qū)動(dòng)程序的故障造成較高層次程序和/或操作系統(tǒng)的故障。結(jié)果,打印機(jī)驅(qū)動(dòng)程序是最常見(jiàn)的系統(tǒng)故障原因之一。申請(qǐng)人:已經(jīng)進(jìn)一步意識(shí)到,上面描述的缺陷的一個(gè)原因是常規(guī)打印機(jī)驅(qū)動(dòng)程序采用的模型。例如,常規(guī)打印機(jī)驅(qū)動(dòng)程序包括提供再現(xiàn)、配置和用戶體驗(yàn)功能作為單一體的代碼,其中每個(gè)組件與其他組件混合且與其他組件相關(guān)。不同的組件使用由打印子系統(tǒng)提供和/或與打印機(jī)驅(qū)動(dòng)程序一起提供的“輔助文件”中的數(shù)據(jù),并且每個(gè)組件采用對(duì)于每個(gè)輔助文件的特定編碼的引用。因此,常規(guī)打印機(jī)驅(qū)動(dòng)程序需要其采用的每個(gè)輔助文件和提供它的實(shí)體的全部知識(shí)。下層操作系統(tǒng)或者打印機(jī)驅(qū)動(dòng)程序的任何變化都可能?chē)?yán)重地影響驅(qū)動(dòng)程序的操作。結(jié)果,常規(guī)打印機(jī)驅(qū)動(dòng)程序難于維護(hù)。本發(fā)明的一些實(shí)施例利用靈活且可擴(kuò)展的打印機(jī)驅(qū)動(dòng)程序模型代替該常規(guī)的打印機(jī)驅(qū)動(dòng)程序模型。例如,本發(fā)明的一些實(shí)施例提供了這樣的打印機(jī)驅(qū)動(dòng)程序模型,其中再現(xiàn)、配置和用戶體驗(yàn)功能由單獨(dú)的組件提供,任何適當(dāng)?shù)膶?shí)體可以使得這些組件中的每一個(gè)可用,所述實(shí)體包括但不限于軟件供應(yīng)商(例如操作系統(tǒng)的制造商,打印機(jī)驅(qū)動(dòng)程序被設(shè)計(jì)成在該操作系統(tǒng)下執(zhí)行)、硬件供應(yīng)商(例如一個(gè)或多個(gè)打印機(jī)的制造商,打印機(jī)驅(qū)動(dòng)程序被設(shè)計(jì)成驅(qū)動(dòng)所述打印機(jī))或者其他實(shí)體。本發(fā)明的一些實(shí)施例提供了一種打印機(jī)驅(qū)動(dòng)程序模型,該模型是分層的和模塊化 的。在該模型的“底層”,再現(xiàn)組件提供將打印啟動(dòng)時(shí)操作系統(tǒng)產(chǎn)生的信息轉(zhuǎn)化成符合TOL的格式所需的再現(xiàn)功能,打印機(jī)設(shè)備被設(shè)計(jì)成處理所述TOL。再現(xiàn)組件可以例如由操作系統(tǒng)制造商提供,并且與操作系統(tǒng)的打印子系統(tǒng)緊密集成(例如結(jié)合到該子系統(tǒng)中)。提供配置和/或用戶體驗(yàn)功能的其他組件可以“座落在該底層上面”。再現(xiàn)組件可以提供用于較高層次組件的標(biāo)準(zhǔn)化接口,并且每個(gè)較高層次組件可以采取來(lái)自再現(xiàn)組件的依賴關(guān)系。由于較高層次組件在功能上與再現(xiàn)組件解耦,但是仍然能夠以標(biāo)準(zhǔn)化方式與再現(xiàn)組件互操作,因而再現(xiàn)組件可以隨著時(shí)間加以修改而不影響較高層次組件的操作。作為對(duì)于常規(guī)方法的進(jìn)一步改進(jìn),本發(fā)明的一些實(shí)施例提供了一種打印機(jī)驅(qū)動(dòng)程序模型,其中提供配置和用戶體驗(yàn)功能的較高層次組件中的任何一個(gè)或者所有組件可以不僅支持單個(gè)設(shè)備,而且支持一類(lèi)設(shè)備。例如,組件可以允許基本的配置特征集合用于一群設(shè)備(例如其中每個(gè)成員設(shè)備包括大致相同的內(nèi)部部件的一群設(shè)備被配置成處理相同的TOL或者共享一個(gè)或多個(gè)其他的特性或特征)中的每一個(gè)而不是某個(gè)特定設(shè)備。給定驅(qū)動(dòng)程序組件支持一群設(shè)備的能力,要支持的驅(qū)動(dòng)程序組件的數(shù)量整體上可能下降,從而這些驅(qū)動(dòng)程序組件可能隨著時(shí)間而變得更加可靠。此外,這些驅(qū)動(dòng)程序組件的提供商可以更加專(zhuān)心地關(guān)注其中用戶與設(shè)備交互的方式,而不是必須關(guān)心將信息轉(zhuǎn)化成特定的H)L。結(jié)果,打印機(jī)驅(qū)動(dòng)程序組件可以隨著時(shí)間提供更加豐富的用戶體驗(yàn)。以上所述是本發(fā)明的非限制性概述,本發(fā)明由所附權(quán)利要求書(shū)限定。
附圖并不預(yù)期按比例繪制。在附圖中,不同圖中示出的每個(gè)相同或者幾乎相同的組件由相同的附圖標(biāo)記表示。為了清楚起見(jiàn),不是每一個(gè)組件都可能在每幅附圖中被標(biāo)記。在附圖中
圖I為繪出依照現(xiàn)有技術(shù)的示例性打印機(jī)驅(qū)動(dòng)程序模型的框 圖2為繪出依照本發(fā)明一些實(shí)施例實(shí)現(xiàn)的打印機(jī)驅(qū)動(dòng)程序模型的框 圖3為依照本發(fā)明一些實(shí)施例實(shí)現(xiàn)的打印機(jī)驅(qū)動(dòng)程序模型的統(tǒng)一建模語(yǔ)言(UML)描
繪;圖4為繪出可以用來(lái)實(shí)現(xiàn)本發(fā)明一些實(shí)施例的示例性計(jì)算機(jī)的框圖;以及 圖5為繪出可以在其上記錄實(shí)施本發(fā)明的方面的指令的示例性存儲(chǔ)器的框圖。
具體實(shí)施例方式本發(fā)明的一些實(shí)施例提供了一種打印機(jī)驅(qū)動(dòng)程序模型,其比常規(guī)打印機(jī)驅(qū)動(dòng)程序模型更加靈活且可擴(kuò)展。例如,一些實(shí)施例提供了一種多層打印機(jī)驅(qū)動(dòng)程序模型,其中在“底”層,再現(xiàn)組件提供將操作系統(tǒng)產(chǎn)生的信息轉(zhuǎn)化成符合PDL的格式的再現(xiàn)功能,打印機(jī)設(shè)備被設(shè)計(jì)成處理所述TOL。再現(xiàn)組件可以例如與下層操作系統(tǒng)的打印子系統(tǒng)緊密集成(例如結(jié)合到該子系統(tǒng)中)。任何數(shù)量的單獨(dú)的獨(dú)立組件可以“座落在該底層上面”以便提供配置和/或用戶體驗(yàn)功能,并且這些組件中的任何一個(gè)或多個(gè)可以不僅像常規(guī)打印機(jī)驅(qū)動(dòng)程序所做的那樣支持單個(gè)設(shè)備,而且支持一類(lèi)設(shè)備。再現(xiàn)組件可以提供用于較高層次配置和/或用戶體驗(yàn)組件的標(biāo)準(zhǔn)化接口,并且較高層次配置和/或用戶體驗(yàn)組件可以采用再現(xiàn)組件提供的信息。為了提供上下文,圖I中繪出了一種常規(guī)的打印機(jī)驅(qū)動(dòng)程序?qū)崿F(xiàn)方式100。特別 地,圖I繪出了特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101,其包括用于提供再現(xiàn)、配置和用戶體驗(yàn)功能的單一代碼體。為了提供該功能,特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101采用了由打印子系統(tǒng)102提供的不同輔助文件以及與特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101 —起提供的輔助文件(例如由供應(yīng)打印機(jī)的硬件供應(yīng)商和/或另一個(gè)供應(yīng)者提供)。與驅(qū)動(dòng)程序一起提供的輔助文件集合在圖I中象征性地表示為核心驅(qū)動(dòng)程序103。如圖I所示,特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101包括這樣的代碼,該代碼包含對(duì)于打印子系統(tǒng)102和核心驅(qū)動(dòng)程序103提供的某些輔助文件的特定引用。特別地,在圖I的示例中,打印子系統(tǒng)102包括輔助文件,每個(gè)輔助文件通過(guò)全局唯一標(biāo)識(shí)符(GUID)索引。因此,在所示的示例中,打印子系統(tǒng)102包括⑶ID1-GUIDN (盡管為了便于說(shuō)明僅僅繪出了⑶IDl和⑶IDN),每個(gè)⑶ID具有包括輔助文件的關(guān)聯(lián)部分。特別地,在所示的示例中,⑶IDl和⑶IDN中的每一個(gè)包括關(guān)聯(lián)部分I-N (盡管僅僅示出了部分I和N)。類(lèi)似地,核心驅(qū)動(dòng)程序103包括⑶IDX-GUIDX+N,每個(gè)⑶ID具有包括輔助文件的關(guān)聯(lián)部分。特別地,在所示的示例中,⑶IDX和⑶IDX+N中的每一個(gè)包括關(guān)聯(lián)部分I-N(盡管僅僅示出了部分I和N)。組成特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101的代碼包括分別對(duì)于打印子系統(tǒng)102和核心驅(qū)動(dòng)程序103的部分的特定引用104和105。特別地,組成特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101的代碼包括對(duì)于由打印子系統(tǒng)102提供的⑶IDl的部分I和N以及對(duì)于⑶IDX+N的部分N的特定引用。應(yīng)當(dāng)意識(shí)到,形成圖I中繪出的特定引用不僅需要打印機(jī)驅(qū)動(dòng)程序操作所需的特定輔助文件的詳細(xì)知識(shí),而且需要供應(yīng)每個(gè)輔助文件的實(shí)體的詳細(xì)知識(shí)。應(yīng)當(dāng)進(jìn)一步意識(shí)至IJ,輔助文件、供應(yīng)實(shí)體或者存儲(chǔ)位置的任何變化(例如由打印子系統(tǒng)102和/或核心驅(qū)動(dòng)程序103的變化或者某種(些)其他原因帶來(lái))可能?chē)?yán)重地影響特定于打印機(jī)型號(hào)的驅(qū)動(dòng)程序101的操作,這可能導(dǎo)致上面討論的問(wèn)題。圖2中繪出了依照本發(fā)明一些實(shí)施例實(shí)現(xiàn)的一個(gè)示例性打印機(jī)驅(qū)動(dòng)程序模型200。在所示的示例性打印機(jī)驅(qū)動(dòng)程序模型中,再現(xiàn)、配置和用戶體驗(yàn)功能由設(shè)置成“層”的各組件201-206提供,其中公共配置組件201將下層操作系統(tǒng)產(chǎn)生的構(gòu)成打印作業(yè)的信息轉(zhuǎn)化成模型“底部”的PDL格式,并且其他組件202-205 “座落在再現(xiàn)組件上面”并且提供配置和用戶體驗(yàn)功能。應(yīng)當(dāng)意識(shí)到,用于元素201-206的標(biāo)記“組件”不一定描述了其中實(shí)現(xiàn)組件201-206中的任何一個(gè)或所有組件的方式。例如,組件201-206中的任何一個(gè)或所有組件可以是或包括獨(dú)立的驅(qū)動(dòng)程序,可以是或包括組成驅(qū)動(dòng)程序一部分的代碼,或者可以是或包括任何其他適當(dāng)?shù)男畔⒓希还芷涫欠窨稍讵?dú)立的基礎(chǔ)上執(zhí)行。本發(fā)明的實(shí)施例并不限于任何特定的實(shí)現(xiàn)方式。在圖2所示的示例中,公共配置組件201提供可以由較高層次組件202-206中的每一個(gè)調(diào)用的信息和功能(例如輔助實(shí)用工具、文件和/或任何其他適當(dāng)?shù)男畔?。特別地,盡管常規(guī)的打印機(jī)驅(qū)動(dòng)程序組件能夠通過(guò)使用對(duì)于其他組件提供的信息(例如文件)的特定引用而采用該信息(例如像在圖I所示的打印機(jī)驅(qū)動(dòng)程序模型100中那樣),但是示例性打印機(jī)驅(qū)動(dòng)程序模型200使得較高層次組件能夠以這樣的方式采用下層組件提供的信息,該方式不造成可能使得較高層次組件易受較低層次組件的變化的影響。特別地,在本發(fā)明的一些實(shí)施例中,較高層次組件可以采取對(duì)于較低層次組件的依賴關(guān)系(例如通過(guò)使用指示和/或使用任何其他適當(dāng)?shù)募夹g(shù)在設(shè)置清單中規(guī)定較低層次組件),并且一般地引用由較低層次組件提供的信息集。在這個(gè)方面,采取依賴關(guān)系是一種軟件開(kāi)發(fā)技術(shù),其中第一指令 體(在該示例中為較高層次組件)一般地引用第二指令體(在該示例中為較低層次組件),使得當(dāng)執(zhí)行第一指令體時(shí),第二指令體被實(shí)例化并且也被執(zhí)行,就好像它是第一指令體的一部分一樣。第一指令體內(nèi)對(duì)于第二指令體的引用可以在運(yùn)行時(shí)解析,使得執(zhí)行的指令是第一和第二指令體的復(fù)合物。當(dāng)調(diào)用采用該模型的打印機(jī)驅(qū)動(dòng)程序時(shí),操作系統(tǒng)的打印子系統(tǒng)可以在運(yùn)行時(shí)使用關(guān)于較低層次組件的信息解析較高層次組件中對(duì)于較低層次組件的引用以便創(chuàng)建較低和較高層次組件的復(fù)合物,并且從而允許實(shí)現(xiàn)較低和較高層次組件二者提供的功能。由于該模型無(wú)需較高層次組件特別地引用由較低層次組件提供的信息以便使用該信息,因而該模型允許隨著時(shí)間修改和適應(yīng)性調(diào)節(jié)較低層次組件,而不影響其中較低和較高層次組件互操作的方式。較高和較低層次組件的復(fù)合物可以以許多方式中的任何方式創(chuàng)建,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。例如,一些實(shí)施例提供了這樣的技術(shù),其中將多個(gè)層次的驅(qū)動(dòng)程序組件整合成綜合DRIVER_INF0數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)在單個(gè)列表中包括來(lái)自較高層次組件的信息和來(lái)自較低層次組件的信息或者任何其他適當(dāng)?shù)男畔⒓?。在一些?shí)施例中,可以采用文件排序啟發(fā)法以便允許確定特定文件所來(lái)源的層。這樣,如果來(lái)源于不同層的不同文件共享相同的名稱(chēng),那么文件排序啟發(fā)法可以使得每個(gè)文件能夠單獨(dú)地被標(biāo)識(shí),從而使得復(fù)合驅(qū)動(dòng)程序能夠正確地起作用。在圖2所示的示例中,公共配置組件201提供由軟件供應(yīng)商(SV)驅(qū)動(dòng)程序組件
202和獨(dú)立硬件供應(yīng)商(IHV)驅(qū)動(dòng)程序組件203使用的不同信息(例如輔助文件集合)。提供的信息可以是許多類(lèi)型中的任何類(lèi)型。例如,由公共配置組件201提供的信息可以包括輔助文件、實(shí)用工具和/或任何其他形式的信息。作為一個(gè)示例,公共配置組件201可以提供描述特定打印特征(例如雙工、裝訂等等)的本地化字符串以用于不同的地理位置,其中采用這些特征的計(jì)算機(jī)可以將信息呈現(xiàn)給用戶。任何適當(dāng)類(lèi)型的信息都可以由公共配置組件201提供給軟件供應(yīng)商(SV)驅(qū)動(dòng)程序組件202或獨(dú)立硬件供應(yīng)商(IHV)驅(qū)動(dòng)程序組件203中的任一個(gè),因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。諸如軟件供應(yīng)商(SV)驅(qū)動(dòng)程序組件202或獨(dú)立硬件供應(yīng)商(IHV)驅(qū)動(dòng)程序組件
203之類(lèi)的較高層次組件可以以許多方式中的任何方式采用諸如公共配置組件201之類(lèi)的較低層次組件提供的信息。例如,可以由較高層次組件通過(guò)使用引用較低層次組件提供的信息的“包括”聲明而采用信息。然而,本發(fā)明的實(shí)施例在這個(gè)方面不受限制,因?yàn)榭梢圆捎萌魏芜m當(dāng)?shù)臋C(jī)制或技術(shù)。圖3更詳細(xì)地繪出了其中圖2中所示的較高層次組件可以包括在提供某個(gè)打印相關(guān)功能中使用的信息以及采用較低層次組件提供的其他信息的方式。在圖3的示例中,較高層次組件通過(guò)使用對(duì)于較低層次組件提供的信息的“所需文件=*”或“所需類(lèi)別=*”引用而采用較低層次組件提供的信息(例如采取對(duì)于較低層次組件的依賴關(guān)系)以便提供打印相關(guān)功能。然而,應(yīng)當(dāng)意識(shí)到,許多機(jī)制和/或技術(shù)中的任何機(jī)制和/或技術(shù)都可以由較高層次組件采用以便使用較低層次組件提供的信息,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。 在圖3所示的示例中,SV驅(qū)動(dòng)程序組件202使用包括的和引用的信息以便提供再現(xiàn)功能。特別地,SV驅(qū)動(dòng)程序組件202包括信息306和307 (分別使用Unidrv再現(xiàn)器和PostScript (PS)再現(xiàn)器提供再現(xiàn)功能),并且經(jīng)由對(duì)于公共配置組件201提供的信息的“所需文件=*”引用而采用公共配置組件201提供的信息(即提供XPS再現(xiàn)過(guò)濾器以用于以XPSPDL再現(xiàn)的元素304)?!八栉募?*”引用可以例如比如在逗號(hào)分隔的列表中或者以任何其他適當(dāng)?shù)姆绞搅谐鲆粋€(gè)或多個(gè)引用的文件和/或數(shù)據(jù)結(jié)構(gòu)。在所示的示例中,SV驅(qū)動(dòng)程序組件202也采用公共配置組件201提供的配置數(shù)據(jù)305以便提供配置功能。較低層次組件提供的許多信息類(lèi)型中的任何類(lèi)型都可以由較高層次組件采用,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。形成對(duì)照的是,IHV驅(qū)動(dòng)程序組件203不從公共配置組件201獲得在Unidrv或PostScript模塊中提供再現(xiàn)功能的信息。相反地,IHV驅(qū)動(dòng)程序組件包括XPS再現(xiàn)過(guò)濾器309和配置數(shù)據(jù)310。驅(qū)動(dòng)程序組件203可以例如被配置用于供使用XPS PDL的打印機(jī)設(shè)
備使用。設(shè)備驅(qū)動(dòng)程序組件206采取來(lái)自SV驅(qū)動(dòng)程序組件202和IHV驅(qū)動(dòng)程序組件203中的任一個(gè)的依賴關(guān)系(在所示的示例中,經(jīng)由對(duì)于SV驅(qū)動(dòng)程序組件202和IHV驅(qū)動(dòng)程序組件203中的每一個(gè)的“所需類(lèi)別=*”引用)。在一些實(shí)施例中,“所需類(lèi)別=*”引用在較高層次組件沒(méi)有較低層次組件的詳細(xì)知識(shí)的情況下允許較高層次組件依賴于較低層次組件以便利用較低層次組件提供的信息(例如以支持再現(xiàn)和/或配置功能)。應(yīng)當(dāng)意識(shí)到,本發(fā)明的實(shí)施例并不限于采用“所需類(lèi)別=*”引用以用于該目的,因?yàn)榭商鎿Q地可以采用任何適當(dāng)?shù)臋C(jī)制和/或技術(shù)。在所示的示例中,盡管設(shè)備驅(qū)動(dòng)程序組件206包括配置數(shù)據(jù)312和打印體驗(yàn)應(yīng)用程序313,但是它采取對(duì)于SV驅(qū)動(dòng)程序組件202的依賴關(guān)系以便在XPS、Unidrv,PostScript再現(xiàn)器中提供再現(xiàn)功能,或者采取對(duì)于IHV驅(qū)動(dòng)程序組件203的依賴關(guān)系以便以XPS PDL提供再現(xiàn)功能。當(dāng)然,較高層次組件可以以許多形式中的任何形式采用較低層次組件提供的信息以便提供許多類(lèi)型的打印相關(guān)功能中的任何類(lèi)型的功能,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。
在圖3所不的不例中,非預(yù)設(shè)(out-of-box)驅(qū)動(dòng)程序314并不米取來(lái)自驅(qū)動(dòng)程序組件202或203中的任一個(gè)的依賴關(guān)系。相反地,非預(yù)設(shè)驅(qū)動(dòng)程序314采取直接來(lái)自公共配置組件201的依賴關(guān)系。非預(yù)設(shè)驅(qū)動(dòng)程序314圖解說(shuō)明了可以采用不適于其中再現(xiàn)、配置和用戶體驗(yàn)功能由單獨(dú)的組件提供的多層模型的驅(qū)動(dòng)程序。再次參照?qǐng)D2,在所示的示例性打印機(jī)驅(qū)動(dòng)程序模型200中,驅(qū)動(dòng)程序組件202和203中的每一個(gè)被設(shè)計(jì)成提供可由一群(“類(lèi)”)設(shè)備使用的功能。類(lèi)別可以通過(guò)任何一個(gè)或多個(gè)共享的特性、特征和/或品質(zhì)限定。例如,類(lèi)別可以通過(guò)該類(lèi)別中的每個(gè)設(shè)備對(duì)特定PDL的使用,通過(guò)一組共享的特征和/或部分,和/或任何一個(gè)或多個(gè)其他特性來(lái)限定。在示例性打印機(jī)驅(qū)動(dòng)程序模型200中,驅(qū)動(dòng)程序組件204、205和206中的每一個(gè)采取來(lái)自驅(qū)動(dòng)程序組件202或203之一的依賴關(guān)系。特別地,在所示的示例中,驅(qū)動(dòng)程序組件204采取來(lái)自SV驅(qū)動(dòng)程序組件202的依賴關(guān)系,并且驅(qū)動(dòng)程序組件205、206中的每一個(gè)采取來(lái)自IHV驅(qū)動(dòng)程序組件203的依賴關(guān)系。通過(guò)采取來(lái)自較低層次驅(qū)動(dòng)程序組件的依賴關(guān)系,驅(qū)動(dòng)程序組件204、205和206中的每一個(gè)可以以與驅(qū)動(dòng)程序組件202、203采用公共、配置組件201提供的信息大致相同的方式采用較低層次組件提供的信息。在所示的示例性打印機(jī)驅(qū)動(dòng)程序模型200中,驅(qū)動(dòng)程序組件204、205和206中的每一個(gè)提供供特定設(shè)備使用的功能。因此,驅(qū)動(dòng)程序組件204支持一個(gè)設(shè)備,驅(qū)動(dòng)程序組件205支持另一個(gè)設(shè)備,并且驅(qū)動(dòng)程序組件206支持又一個(gè)設(shè)備。應(yīng)當(dāng)意識(shí)到,盡管圖2中所示的示例性打印機(jī)驅(qū)動(dòng)程序模型200在第三“層”中包括特定于設(shè)備的驅(qū)動(dòng)程序組件,但是依照本發(fā)明實(shí)施例實(shí)現(xiàn)的打印機(jī)驅(qū)動(dòng)程序模型可以包括任何適當(dāng)數(shù)量的層。例如,打印機(jī)驅(qū)動(dòng)程序模型可以包括多層類(lèi)別驅(qū)動(dòng)程序組件和/或特定于設(shè)備的驅(qū)動(dòng)程序組件,使得總的層數(shù)大于圖2中所示的三個(gè)。相反地,打印機(jī)驅(qū)動(dòng)程序模型可以包括比圖2中所示更少的層。例如,被設(shè)計(jì)成支持單個(gè)設(shè)備的驅(qū)動(dòng)程序組件可以采取對(duì)于公共配置組件201的依賴關(guān)系,使得僅僅兩個(gè)層用來(lái)支持該設(shè)備(這樣的一個(gè)示例是圖3中所示的驅(qū)動(dòng)程序組件314)。此外,打印機(jī)驅(qū)動(dòng)程序模型可以具有用于不同設(shè)備的不同數(shù)量的層。例如,四層驅(qū)動(dòng)程序組件可以用來(lái)支持一個(gè)設(shè)備,并且兩個(gè)可以用來(lái)支持另一個(gè)設(shè)備??梢圆捎萌魏芜m當(dāng)數(shù)量的層,每層被設(shè)計(jì)成支持任何適當(dāng)數(shù)量的設(shè)備,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。還應(yīng)當(dāng)意識(shí)到,配置和/或用戶體驗(yàn)功能可以由打印機(jī)驅(qū)動(dòng)程序模型內(nèi)座落在任何一個(gè)或多個(gè)層處的驅(qū)動(dòng)程序組件提供。使用圖2中所示的示例性打印機(jī)驅(qū)動(dòng)程序模型200來(lái)說(shuō)明,用于驅(qū)動(dòng)程序組件206支持的打印機(jī)設(shè)備的配置功能可以由驅(qū)動(dòng)程序組件206、IHV驅(qū)動(dòng)程序組件203或者其某種組合提供(例如,用于設(shè)備的配置功能的一部分可以由驅(qū)動(dòng)程序組件206提供,并且其余部分由IHV驅(qū)動(dòng)程序組件203提供)。類(lèi)似地,用于驅(qū)動(dòng)程序組件205支持的打印機(jī)設(shè)備的用戶體驗(yàn)功能可以由驅(qū)動(dòng)程序組件205、IHV驅(qū)動(dòng)程序組件203或者其某種組合提供。任何功能集合可以由任何適當(dāng)數(shù)量的組件提供,因?yàn)楸景l(fā)明的實(shí)施例在這個(gè)方面不受限制。應(yīng)當(dāng)進(jìn)一步意識(shí)到,依照本發(fā)明實(shí)施例實(shí)現(xiàn)的打印機(jī)驅(qū)動(dòng)程序模型允許實(shí)現(xiàn)關(guān)于驅(qū)動(dòng)程序組件供應(yīng)者方面的靈活性。使用圖2中所示的示例來(lái)說(shuō)明,軟件供應(yīng)商(例如實(shí)施本發(fā)明的方面的打印機(jī)驅(qū)動(dòng)程序被設(shè)計(jì)成在其下操作的操作系統(tǒng)的制造商)可以例如供應(yīng)公共配置組件201,第一硬件供應(yīng)商可以供應(yīng)驅(qū)動(dòng)程序組件203和206等等。任何適當(dāng)?shù)膶?shí)體都可以提供任何一個(gè)或多個(gè)驅(qū)動(dòng)程序組件。用于實(shí)施本發(fā)明的特征的系統(tǒng)和方法的不同方面可以在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn),所述系統(tǒng)例如圖4中所示的示例性計(jì)算機(jī)系統(tǒng)400。計(jì)算機(jī)系統(tǒng)400包括輸入設(shè)備402、輸出設(shè)備401、處理器403、存儲(chǔ)器系統(tǒng)404和存儲(chǔ)裝置406,所有這些都經(jīng)由互連機(jī)構(gòu)405直接或間接耦合,所述互連機(jī)構(gòu)可以包括一個(gè)或多個(gè)總線、交換機(jī)、網(wǎng)絡(luò)和/或任何其他適當(dāng)?shù)幕ミB。輸入設(shè)備402接收來(lái)自用戶或機(jī)器(例如人類(lèi)操作者)的輸入,并且輸出設(shè)備401向用戶或機(jī)器(例如液晶顯示器)顯示或發(fā)送信息。除了別的以外,輸入和輸出設(shè)備可以用來(lái)呈現(xiàn)用戶接口??梢杂脕?lái)提供用戶接口的輸出設(shè)備的示例包括用于可視地呈現(xiàn)輸出的打印機(jī)或顯示屏幕以及用于可聽(tīng)地呈現(xiàn)輸出的揚(yáng)聲器或其他聲音生成設(shè)備??梢杂糜谟脩艚涌诘妮斎朐O(shè)備的示例包括鍵盤(pán)和指向設(shè)備,例如鼠標(biāo)、觸摸墊和數(shù)字化輸入板。作為另一個(gè)示例,計(jì)算機(jī)可以通過(guò)語(yǔ)音識(shí)別或者以其他可聽(tīng)的格式接收輸入信息。處理器403典型地執(zhí)行稱(chēng)為操作系統(tǒng)(例如微軟Windows系列操作系統(tǒng)或者任何其他適當(dāng)?shù)牟僮飨到y(tǒng))的計(jì)算機(jī)程序,該操作系統(tǒng)控制其他計(jì)算機(jī)程序的執(zhí)行并且提供調(diào)度、輸入/輸出以及其他設(shè)備控制、賬戶管理、編譯、存儲(chǔ)分配、數(shù)據(jù)管理、內(nèi)存管理、通信和數(shù)據(jù)流控制??偟膩?lái)說(shuō),處理器和操作系統(tǒng)限定了針對(duì)其寫(xiě)入應(yīng)用程序和其他計(jì)算機(jī)程序語(yǔ)言的計(jì)算機(jī)平臺(tái)。處理器403也可以執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序以便實(shí)現(xiàn)不同的功能。這些計(jì)算機(jī)程序可以以任何類(lèi)型的計(jì)算機(jī)程序語(yǔ)言編寫(xiě),所述語(yǔ)言包括過(guò)程編程語(yǔ)言、面向?qū)ο蟮木幊陶Z(yǔ)言、宏語(yǔ)言或者其組合。這些計(jì)算機(jī)程序可以存儲(chǔ)到存儲(chǔ)系統(tǒng)406中。存儲(chǔ)系統(tǒng)406可以將信息保持在易失性或非易失性介質(zhì)上并且可以是固定的或可移除的。圖5中更詳細(xì)地示出了存儲(chǔ)系統(tǒng)406。存儲(chǔ)系統(tǒng)406可以包括有形計(jì)算機(jī)可讀和可寫(xiě)非易失性記錄介質(zhì)501,限定計(jì)算機(jī)程序或者要由該程序使用的信息的信號(hào)存儲(chǔ)在該記錄介質(zhì)上。記錄介質(zhì)可以例如是磁盤(pán)存儲(chǔ)器、閃存和/或可用來(lái)記錄和存儲(chǔ)信息的任何其他制品。典型地,在操作中,處理器403使得數(shù)據(jù)從非易失性記錄介質(zhì)501讀入易失性存儲(chǔ)器502 (例如隨機(jī)存取存儲(chǔ)器或RAM),與介質(zhì)501相比,該易失性存儲(chǔ)器允許處理器403更快速地訪問(wèn)信息。存儲(chǔ)器502可以位于存儲(chǔ)系統(tǒng)406中或者位于圖4中示出的存儲(chǔ)器系統(tǒng)404中。處理器403通常操縱集成電路存儲(chǔ)器404、502中的數(shù)據(jù)并且然后在處理完成之后將該數(shù)據(jù)拷貝到介質(zhì)501。已知用于管理介質(zhì)501與集成電路存儲(chǔ)器404、502之間的數(shù)據(jù)移動(dòng)的各種各樣的機(jī)制,并且本發(fā)明并不限于任何機(jī)制,不管該機(jī)制是現(xiàn)在已知的還是以后開(kāi)發(fā)的。本發(fā)明也不限于特定的存儲(chǔ)器系統(tǒng)404或存儲(chǔ)系統(tǒng)406。這樣描述了本發(fā)明的至少一個(gè)實(shí)施例的若干方面之后,應(yīng)當(dāng)意識(shí)到,本領(lǐng)域技術(shù)人員將容易想到各種不同的變動(dòng)、修改和改進(jìn)。這樣的變動(dòng)、修改和改進(jìn)預(yù)期是本公開(kāi)內(nèi)容的一部分,并且預(yù)期處于本發(fā)明的精神和范圍內(nèi)。因此,前面的描述和附圖僅僅通過(guò)示例給出。本發(fā)明的上述實(shí)施例可以以許多方式中的任何方式實(shí)現(xiàn)。例如,這些實(shí)施例可以使用硬件、軟件或者其組合來(lái)實(shí)現(xiàn)。當(dāng)以軟件實(shí)現(xiàn)時(shí),軟件代碼可以在任何適當(dāng)?shù)奶幚砥骰蛱幚砥骷仙蠄?zhí)行,不管所述處理器是在單個(gè)計(jì)算機(jī)中提供還是分布在多個(gè)計(jì)算機(jī)和/或系統(tǒng)之間。這樣的處理器可以實(shí)現(xiàn)為集成電路,其中一個(gè)或多個(gè)處理器在一個(gè)集成電路組件中,盡管處理器可以使用電路系統(tǒng)以任何適當(dāng)?shù)母袷綄?shí)現(xiàn)。應(yīng)當(dāng)意識(shí)到,執(zhí)行本文描述的功能的任何組件或組件集合可以一般地被認(rèn)為是控制上面討論的功能的一個(gè)或多個(gè)控制器。所述一個(gè)或多個(gè)控制器可以以許多方式實(shí)現(xiàn),例如利用專(zhuān)用硬件實(shí)現(xiàn),或者通過(guò)采用使用微代碼或軟件編程以便執(zhí)行上面敘述的功能的一個(gè)或多個(gè)處理器來(lái)實(shí)現(xiàn)。在控制器存儲(chǔ)或提供用于系統(tǒng)操作的數(shù)據(jù)的情況下,這樣的數(shù)據(jù)可以存儲(chǔ)于中央儲(chǔ)存庫(kù)、多個(gè)儲(chǔ)存庫(kù)或者其組合中。此外,應(yīng)當(dāng)意識(shí)到,計(jì)算機(jī)可以以許多形式中的任何形式實(shí)施,例如機(jī)架安裝式計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)或平板計(jì)算機(jī)。此外,計(jì)算機(jī)可以嵌入到通常不被看作計(jì)算機(jī)但是具有適當(dāng)?shù)奶幚砟芰Φ脑O(shè)備中,包括個(gè)人數(shù)字助理(PDA)、智能電話或者任何其他適當(dāng)?shù)谋銛y式或固定電子設(shè)備。 此外,計(jì)算機(jī)可以具有一個(gè)或多個(gè)輸入和輸出設(shè)備。除了別的以外,這些設(shè)備可以 用來(lái)呈現(xiàn)用戶接口??梢杂脕?lái)提供用戶接口的輸出設(shè)備的示例包括用于可視地呈現(xiàn)輸出的打印機(jī)或顯示屏幕以及用于可聽(tīng)地呈現(xiàn)輸出的揚(yáng)聲器或其他聲音生成設(shè)備??梢杂糜谟脩艚涌诘妮斎朐O(shè)備的示例包括鍵盤(pán)和指向設(shè)備,例如鼠標(biāo)、觸摸墊和數(shù)字化輸入板。作為另一個(gè)示例,計(jì)算機(jī)可以通過(guò)語(yǔ)音識(shí)別或者以其他可聽(tīng)的格式接收輸入信息。這樣的計(jì)算機(jī)可以由一個(gè)或多個(gè)網(wǎng)絡(luò)以任何適當(dāng)?shù)男问交ミB,包括作為局域網(wǎng)或廣域網(wǎng),例如企業(yè)網(wǎng)或因特網(wǎng)。這樣的網(wǎng)絡(luò)可以基于任何適當(dāng)?shù)募夹g(shù)且可以依照任何適當(dāng)?shù)膮f(xié)議來(lái)操作,并且可以包括無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。此外,本文概述的各種不同的方法或過(guò)程可以編碼為可在采用各種各樣的操作系統(tǒng)或平臺(tái)中的任何一個(gè)的一個(gè)或多個(gè)處理器上執(zhí)行的軟件。此外,這樣的軟件可以使用若干適當(dāng)?shù)木幊陶Z(yǔ)言和/或編程或腳本工具中的任何一個(gè)來(lái)寫(xiě)入,并且也可以編譯為可執(zhí)行機(jī)器語(yǔ)言代碼或者在框架或虛擬環(huán)境中執(zhí)行的中間代碼。在這個(gè)方面,本發(fā)明可以實(shí)施為利用一個(gè)或多個(gè)程序編碼的某個(gè)計(jì)算機(jī)可讀介質(zhì)(或者多個(gè)計(jì)算機(jī)可讀介質(zhì))(例如計(jì)算機(jī)存儲(chǔ)器、一個(gè)或多個(gè)軟盤(pán)、緊密盤(pán)(CD)、光盤(pán)、數(shù)字影碟(DVD)、磁帶、閃存、現(xiàn)場(chǎng)可編程門(mén)陣列或其他半導(dǎo)體器件中的電路配置或者其他非暫時(shí)性有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)),所述程序在一個(gè)或多個(gè)計(jì)算機(jī)或其他處理器上執(zhí)行時(shí),執(zhí)行實(shí)現(xiàn)上面討論的本發(fā)明不同實(shí)施例的方法。所述一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)可以是可運(yùn)輸?shù)?,使得其上存?chǔ)的一個(gè)或多個(gè)程序可以裝載到一個(gè)或多個(gè)不同的計(jì)算機(jī)或其他處理器上以便實(shí)現(xiàn)上面討論的本發(fā)明的不同方面。當(dāng)在本文中使用時(shí),措辭“非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”僅僅包含可以被認(rèn)為是產(chǎn)品(即制品)或機(jī)器的計(jì)算機(jī)可讀介質(zhì)。術(shù)語(yǔ)“程序”或“軟件”在本文中用來(lái)在通常的意義上指任何類(lèi)型的計(jì)算機(jī)代碼或計(jì)算機(jī)可執(zhí)行指令集合,其可以用來(lái)對(duì)計(jì)算機(jī)或其他處理器編程以便實(shí)現(xiàn)上面討論的本發(fā)明的不同方面。此外,應(yīng)當(dāng)意識(shí)到,依照該實(shí)施例的一個(gè)方面,當(dāng)執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明的方法的一個(gè)或多個(gè)計(jì)算機(jī)程序不必駐留在單個(gè)計(jì)算機(jī)或處理器上,而是可以以模塊化方式分布在若干不同計(jì)算機(jī)或處理器之間以便實(shí)現(xiàn)本發(fā)明的不同方面。計(jì)算機(jī)可執(zhí)行指令可以處于由一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的諸如程序模塊之類(lèi)的許多形式。通常,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,其執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定抽象數(shù)據(jù)類(lèi)型。典型地,在不同實(shí)施例中,程序模塊的功能可以根據(jù)需要加以組合或者分布。
此外,數(shù)據(jù)結(jié)構(gòu)可以以任何適當(dāng)?shù)男问酱鎯?chǔ)在計(jì)算機(jī)可讀介質(zhì)中。為了說(shuō)明簡(jiǎn)單起見(jiàn),數(shù)據(jù)結(jié)構(gòu)可以被示為具有這樣的字段,這些字段通過(guò)數(shù)據(jù)結(jié)構(gòu)中的位置相關(guān)。這樣的關(guān)系同樣地可以通過(guò)為具有計(jì)算機(jī)可讀介質(zhì)中的位置的字段分配存儲(chǔ)量來(lái)實(shí)現(xiàn),所述存儲(chǔ)量傳遞字段之間的關(guān)系。然而,任何適當(dāng)?shù)臋C(jī)制都可以用來(lái)建立數(shù)據(jù)結(jié)構(gòu)的字段中的信息之間的關(guān)系,包括通過(guò)使用指針、標(biāo)簽或者建立數(shù)據(jù)元素之間的關(guān)系的其他機(jī)制。本發(fā)明的不同方面可以單獨(dú)地、組合地或者在前面描述的實(shí)施例中未加具體討論的各種各樣的布置中使用,并且因而在其應(yīng)用中不限于前面的描述中闡述或者附圖中示出的組件的細(xì)節(jié)和布置。例如,在一個(gè)實(shí)施例中描述的方面可以以任何方式與在其他實(shí)施例中描述的方面相結(jié)合。 此外,本發(fā)明可以實(shí)施為一種方法,該方法的示例已經(jīng)被提供。作為該方法的一部分而執(zhí)行的動(dòng)作可以以任何適當(dāng)?shù)姆绞竭M(jìn)行排序。因此,可以構(gòu)造這樣的實(shí)施例,其中以不同于所示的順序執(zhí)行動(dòng)作,這可以包括同時(shí)執(zhí)行某些動(dòng)作,即使這些動(dòng)作在本文描述的說(shuō)明性實(shí)施例中示為連續(xù)的動(dòng)作。權(quán)利要求中使用諸如“第一”、“第二”、“第三”等等之類(lèi)的序數(shù)詞以修飾權(quán)利要求元素,本身并不意味著任何重要性、優(yōu)先權(quán),或者一個(gè)權(quán)利要求元素相對(duì)于另一個(gè)的次序或者其中執(zhí)行方法的動(dòng)作的時(shí)間順序,而是僅僅用作將具有特定名稱(chēng)的一個(gè)權(quán)利要求元素與具有相同名稱(chēng)的另一元素加以區(qū)分的標(biāo)簽(但是針對(duì)序數(shù)詞的使用),以便區(qū)分這些權(quán)利要求元素。此外,本文使用的措詞和術(shù)語(yǔ)用于描述的目的并且不應(yīng)當(dāng)被認(rèn)為是限制性的?!鞍ā?、“包含”或“具有”、“含有”、“涉有”以及本文中其變型的使用意在涵蓋其后列出的項(xiàng)及其等效物以及附加項(xiàng)。
權(quán)利要求
1.一種有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(501),具有編碼于其上的指令,這些指令在被執(zhí)行時(shí)執(zhí)行使得計(jì)算機(jī)(400)能夠驅(qū)動(dòng)打印機(jī)設(shè)備的方法,該方法包括 經(jīng)由第一組件(201)提供再現(xiàn)功能,其中依照頁(yè)面描述語(yǔ)言將構(gòu)成打印作業(yè)的信息格式化,打印機(jī)設(shè)備被配置成處理所述頁(yè)面描述語(yǔ)言; 經(jīng)由與第一組件分開(kāi)的至少一個(gè)第二組件(202,203)提供配置和用戶體驗(yàn)功能,配置功能允許向計(jì)算機(jī)的用戶提供與打印機(jī)設(shè)備的配置有關(guān)的信息,用戶體驗(yàn)功能允許向用戶提供要顯示的與打印有關(guān)的信息,所述至少一個(gè)第二組件引用第一組件,使得當(dāng)接收到使用打印機(jī)設(shè)備打印的指令時(shí),第一組件和所述至少一個(gè)第二組件的復(fù)合物被創(chuàng)建以便控制打印機(jī)設(shè)備的打印。
2.權(quán)利要求I的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中計(jì)算機(jī)執(zhí)行包括打印子系統(tǒng)的操作系統(tǒng),并且其中第一組件與打印子系統(tǒng)集成。
3.權(quán)利要求I的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述至少一個(gè)第二組件由制造打印機(jī)設(shè)備的硬件供應(yīng)商提供。
4.權(quán)利要求I的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中至少一個(gè)第二組件中的每一個(gè)允許通過(guò)包括但不限于所述打印機(jī)設(shè)備的一群打印機(jī)設(shè)備實(shí)現(xiàn)配置和/或用戶體驗(yàn)功能。
5.一種使得計(jì)算機(jī)(400)能夠驅(qū)動(dòng)打印機(jī)設(shè)備的方法,包括 限定打印機(jī)驅(qū)動(dòng)程序模型(200),其中第一驅(qū)動(dòng)程序組件(201)和第二驅(qū)動(dòng)程序組件(202,203)中的每一個(gè)提供與計(jì)算機(jī)和打印機(jī)設(shè)備的互操作有關(guān)的功能,第一組件提供再現(xiàn)功能,其中依照頁(yè)面描述語(yǔ)言將構(gòu)成打印作業(yè)的信息格式化,打印機(jī)設(shè)備被配置成處理所述頁(yè)面描述語(yǔ)言,第二組件提供配置功能,其中向計(jì)算機(jī)的用戶提供打印機(jī)設(shè)備的配置的指示,第二組件以這樣的方式引用第一組件,使得當(dāng)接收到使用打印機(jī)設(shè)備打印的指令時(shí),第一組件和第二組件的復(fù)合物被創(chuàng)建以便控制打印機(jī)設(shè)備的打印。
6.權(quán)利要求5的方法,其中第二組件的引用包括第二組件采取對(duì)于第一組件的依賴關(guān)系。
7.權(quán)利要求6的方法,其中所述依賴關(guān)系包括第二組件使用指示在第二組件的設(shè)置清單中規(guī)定第一組件。
8.一種與打印機(jī)設(shè)備聯(lián)網(wǎng)通信的計(jì)算機(jī)(400),該計(jì)算機(jī)包括至少一個(gè)處理器(403),所述處理器被編程為 經(jīng)由第一組件(201)提供再現(xiàn)功能,其中依照頁(yè)面描述語(yǔ)言將構(gòu)成打印作業(yè)的信息格式化,打印機(jī)設(shè)備被配置成處理所述頁(yè)面描述語(yǔ)言; 經(jīng)由與第一組件分開(kāi)的第二組件(202,203)提供配置功能,配置功能允許向計(jì)算機(jī)的用戶提供與打印機(jī)設(shè)備的配置有關(guān)的信息,所述至少一個(gè)第二組件引用第一組件,使得當(dāng)接收到使用打印機(jī)設(shè)備打印的指令時(shí),第一組件和所述至少一個(gè)第二組件的復(fù)合物被創(chuàng)建以便控制打印機(jī)設(shè)備的打印。
9.權(quán)利要求8的計(jì)算機(jī),其中所述至少一個(gè)處理器被編程為經(jīng)由第三組件提供用戶體驗(yàn)功能,其中向用戶顯示與打印設(shè)備的打印有關(guān)的信息,第三組件引用第二組件,使得當(dāng)接收到打印的指令時(shí),第一、第二和第三組件的復(fù)合物被創(chuàng)建以便控制打印機(jī)設(shè)備的打印。
10.權(quán)利要求8的計(jì)算機(jī),其中第二組件允許通過(guò)包括但不限于所述打印機(jī)設(shè)備的一群打印機(jī)設(shè)備實(shí)現(xiàn)配置功能。
全文摘要
本發(fā)明的實(shí)施例提供了一種分層的打印機(jī)驅(qū)動(dòng)程序模型,其中在“底層”,再現(xiàn)組件提供再現(xiàn)功能以便依照打印機(jī)設(shè)備被設(shè)計(jì)成處理的頁(yè)面描述語(yǔ)言將構(gòu)成啟動(dòng)的打印作業(yè)的信息格式化,并且提供配置和/或用戶體驗(yàn)功能的一個(gè)或多個(gè)其他組件可以“座落在底層上面”。這些較高層次組件中的任何或所有組件可以不僅支持單個(gè)打印機(jī)設(shè)備,而且支持通過(guò)一個(gè)或多個(gè)共享的特性限定的一類(lèi)打印機(jī)設(shè)備。
文檔編號(hào)G06F13/10GK102736893SQ20111041718
公開(kāi)日2012年10月17日 申請(qǐng)日期2011年12月14日 優(yōu)先權(quán)日2010年12月14日
發(fā)明者A.X.弗蘭西斯科, A.哈珀, J.哈欽斯, S.馬羅尼 申請(qǐng)人:微軟公司