專利名稱:一種打印系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
一般說來,本發(fā)明涉及打印系統(tǒng)。
背景技術(shù):
可擴(kuò)展標(biāo)記語言(XML)是一種基于文本的標(biāo)記語言,設(shè)計(jì)它的目的是為了使信息能夠自描述。XML設(shè)計(jì)為通過提供更靈活和適應(yīng)性更強(qiáng)的信息標(biāo)識(shí),從而改善網(wǎng)絡(luò)的功能。稱它為可擴(kuò)展的,是因?yàn)樗皇侨鏗TML(一種單一的、預(yù)定的標(biāo)記語言)那樣是固定格式的。相反,XML實(shí)際上是一種“元語言”,即描述其它語言所用的一種語言,它讓你設(shè)計(jì)自己定制的標(biāo)記語言,不受限制地用于不同類型的文檔。XML能夠做到這一點(diǎn),因?yàn)樗且許GML寫成的,這是文本標(biāo)記系統(tǒng)所用的一種國(guó)際標(biāo)準(zhǔn)元語言(ISO 8879)。
XML很快地變成了網(wǎng)上數(shù)據(jù)交換的標(biāo)準(zhǔn)。自從環(huán)球網(wǎng)聯(lián)盟(W3C)在1998年早期完成了XML之后,該標(biāo)準(zhǔn)確實(shí)像野火一樣已經(jīng)傳遍了科學(xué)界,并且進(jìn)入工業(yè)界。XML旨在容易和直接地在網(wǎng)上使用SGML,如便于定義文檔類型、便于編寫和管理由SGML定義的文檔以及便于通過網(wǎng)絡(luò)傳送和共享它們。XML定義了極為簡(jiǎn)單的SGML方言,在XML規(guī)范中有詳盡的介紹。其目的在于能夠像現(xiàn)在處理HTML那樣處理XML。為了達(dá)到這個(gè)目的,XML已經(jīng)設(shè)計(jì)得便于實(shí)施。
如同使用HTML那樣,也是使用標(biāo)記來標(biāo)識(shí)數(shù)據(jù)(標(biāo)識(shí)符放在尖括號(hào)中,如<...>)。這些標(biāo)記總稱為“標(biāo)記”。但是與HTML不同,XML的標(biāo)記描述了數(shù)據(jù)的意義,而不是如何顯示它,例如一個(gè)HTML標(biāo)記可能涉及“以粗體顯示數(shù)據(jù)”(即<b>...</b>),而一個(gè)XML標(biāo)記的作為則如同計(jì)算機(jī)程序中的一個(gè)字段名,在一段數(shù)據(jù)上放置一個(gè)標(biāo)志來標(biāo)識(shí)它(如<消息>...</消息>)。
與數(shù)據(jù)結(jié)構(gòu)中定義字段名的方式相同,程序員也能自由地使用任何XML標(biāo)記,只要它們對(duì)于給定的應(yīng)用程序有意義。當(dāng)然,在多個(gè)應(yīng)用程序要使用同一XML數(shù)據(jù)時(shí),要使用的標(biāo)記名還是必須協(xié)調(diào)一致。
由預(yù)定元素形成的結(jié)構(gòu)式文檔,比如由XML描述的文檔,僅僅由內(nèi)容和結(jié)構(gòu)來構(gòu)成。定義信息涉及文檔的樣式,比如顯示或打印所需的格式和屬性信息。定義和管理定義信息是與文檔內(nèi)容信息分開進(jìn)行。
為了在顯示裝置上顯示這樣一種結(jié)構(gòu)式文檔,或者為了在打印裝置上打印該文檔,首先解析文檔結(jié)構(gòu)有關(guān)的信息(“結(jié)構(gòu)信息”),獲得分開定義的、樣式定義有關(guān)的信息(“樣式定義信息”)。樣式定義信息取決于所解析的結(jié)構(gòu),一旦獲得之后,就設(shè)置為顯示或打印屬性信息。
這樣一種結(jié)構(gòu)解析的結(jié)果,可以在一種樹狀結(jié)構(gòu)中表示。分開定義的樣式定義信息,往往定義為一組標(biāo)識(shí)符(后文中稱為“標(biāo)記”),它們對(duì)文檔的不同單元,指明了文檔結(jié)構(gòu)的元素。
作者和供應(yīng)方可以使用XML來設(shè)計(jì)他們自己的文檔類型,而不是僅僅使用HTML,所以能夠?yàn)榱艘活愖x者而明顯地調(diào)整文檔類型。因此,作者和設(shè)計(jì)者能夠自由地創(chuàng)建他們自己的標(biāo)記元素。不僅如此,信息內(nèi)容也能夠更加豐富,更便于使用,因?yàn)閄ML的描述能力和超文本鏈接能力比HTML強(qiáng)得多。使用了樣式表比如CSS(級(jí)聯(lián)樣式表說明)和XSL之后,XML能夠?qū)φ故咎峁└喔鼉?yōu)的便利。
在HTML中,默認(rèn)的樣式已建立在瀏覽器中,因?yàn)镠TML的標(biāo)記集已經(jīng)在瀏覽器中預(yù)定義和硬件化。在XML中,你是能夠定義你自己的標(biāo)記集,但是瀏覽器卻無法知曉要使用哪些名稱,它們又表示什么意義,所以要顯示格式化的文本時(shí)就需要一個(gè)樣式表。例如,讀取XML的瀏覽器將會(huì)以最小程度來接受和使用CSS樣式表,但是你也可以使用更強(qiáng)有力的XSLT樣式表語言把你的XML轉(zhuǎn)換為HTML。
CSS提供了一種簡(jiǎn)單的句法,把樣式分配給元素,并且已經(jīng)在大多數(shù)瀏覽器中實(shí)施。為了專門使用XML,已經(jīng)創(chuàng)建了可擴(kuò)展樣式表語言(XSL)。XSL使用XML句法(一個(gè)XSL樣式表就是一個(gè)XML文件),并且已經(jīng)得到幾個(gè)主要廠商的廣泛支持,盡管當(dāng)前的瀏覽器支持還有限。XSL有兩種特色。XSL是一種純格式化語言,需要一種文本格式化程序比如FOP或PassiveTeX來創(chuàng)建可打印的輸出結(jié)果(二者都能產(chǎn)生PDF)。XSLT(T表示轉(zhuǎn)換)是一種語言,指定XML到HTML的轉(zhuǎn)換,或者在瀏覽器內(nèi)部,或者在傳輸前由服務(wù)器進(jìn)行。它也可以指定從XML的一種詞匯表到另一種詞匯表的轉(zhuǎn)換,以及從XML到普通文本的轉(zhuǎn)換。
樣式表起源于出版和文檔管理應(yīng)用程序中。不過,XML應(yīng)用程序超越了傳統(tǒng)的文檔管理,而且對(duì)這些應(yīng)用程序也有用。過去的SGML方式是把文檔與其展示分開。一個(gè)文檔可以在任何媒介上以不同的形式出版,如精裝版、袖珍版和光盤版。事實(shí)上,利用了SGML,文檔就是“可重定目標(biāo)的”例如,同一文檔可以在不同的媒介上自動(dòng)打印,包括紙面和電子媒介。為了達(dá)到這個(gè)目的,SGML(以及XML)對(duì)高級(jí)語義信息進(jìn)行了編碼。例如XML標(biāo)記會(huì)標(biāo)識(shí)一個(gè)文檔中的標(biāo)題、段落和主題詞,而特地不關(guān)注例如標(biāo)題的字體。字體、字號(hào)和顏色是在給定媒介上一種出版文檔的若干性質(zhì)。更重要的是,這些性質(zhì)能夠根據(jù)高級(jí)語義標(biāo)記自動(dòng)導(dǎo)出。所以軟件就能夠?yàn)榱顺霭娑詣?dòng)準(zhǔn)備文檔,在打印時(shí)標(biāo)題可以排版成一種字體,段落為另一種。主題詞不需要特殊的格式,但是要編輯在索引中,在網(wǎng)上出版時(shí),標(biāo)題可以是其本身框架中的一個(gè)圖形,而主題詞的列表可以是帶有超鏈接的索引。
在樣式表中匯集了如何為某些媒介準(zhǔn)備文檔的特定指令。為了對(duì)于打印和對(duì)于網(wǎng)絡(luò),使用不同的樣式表。甚至對(duì)于精裝版和袖珍版,也可以使用不同的樣式表。
一個(gè)XSL樣式表就是一組規(guī)則,其中每條規(guī)則都指定如何格式化文檔中某些元素。樣式表具有對(duì)于標(biāo)題、段落和主題詞的規(guī)則。利用XSL,這些規(guī)則的強(qiáng)大能力不僅能夠格式化文檔,而且能夠?qū)λM(jìn)行整理,如把標(biāo)題移到標(biāo)題頁或者提取主題詞表。這能夠產(chǎn)生令人振奮的XSL應(yīng)用程序,超出傳統(tǒng)出版的領(lǐng)域。例如,XSL能夠用于在針對(duì)公司的標(biāo)記和一種標(biāo)準(zhǔn)標(biāo)記之間進(jìn)行文檔轉(zhuǎn)換。
如上所述,樣式表是與文檔分開的。所以一個(gè)文檔可以具有不止一個(gè)樣式表,反過來,一個(gè)樣式表也可以由幾個(gè)文檔共享。能夠把幾個(gè)樣式表關(guān)聯(lián)到單一的文檔,表明同一文檔可以按照媒介而交付結(jié)果不同。能夠在幾個(gè)文檔之間共享一個(gè)樣式表,就必需促進(jìn)一種共同的樣式。
隨著網(wǎng)絡(luò)變得更加商業(yè)化,出版商希望對(duì)輸出質(zhì)量的控制,與它們過去對(duì)打印媒介的控制相同。這就逐漸增加了具體呈現(xiàn)控制種類的使用,比如清晰的字體以及材料在頁面上的絕對(duì)定位。令人遺憾但卻是完全可以預(yù)測(cè)的副作用是,要把同一內(nèi)容傳遞到備選設(shè)備比如數(shù)碼電視機(jī)和WAP手機(jī),變得更加困難了。如上所述,為了控制打印,內(nèi)容供應(yīng)商使用了樣式表來控制交付結(jié)果,如網(wǎng)絡(luò)文檔的字體、顏色、行距、頁邊、字型以及其它的樣式方面,對(duì)其結(jié)構(gòu)卻不妥協(xié),這種狀況現(xiàn)在才改變。打印XML數(shù)據(jù)就是使用一個(gè)XSLT處理器,對(duì)該數(shù)據(jù)應(yīng)用一個(gè)樣式表,比如XSL。這個(gè)處理器輸出格式化的內(nèi)容,然后再把它們輸入到一臺(tái)排版機(jī)中,它產(chǎn)生最終形式的頁面。然后這些頁面再轉(zhuǎn)換為一種PDL,比如PostScript、PDF或AFP。盡管如此,樣式表還是繁瑣的,使用戶不能高效快捷地打印XML數(shù)據(jù)。例如在一個(gè)生產(chǎn)系統(tǒng)中,打印速度超過1000頁/分。利用一個(gè)XSL樣式表來轉(zhuǎn)換XML數(shù)據(jù)是處理密集型的,不支持這樣的打印速度。
那么可見有必要研究一種方法和裝置,使用一種格式模板直接打印XML數(shù)據(jù)。
發(fā)明內(nèi)容
所以,本發(fā)明提供了一種格式模板,用于打印至少一個(gè)具有多個(gè)元素的文件,所述模板包括一種數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,用于對(duì)所述多個(gè)元素中的每一個(gè)定義格式。
優(yōu)選情況下,一種格式模板比如一個(gè)頁面定義用于格式XML文件中每個(gè)元素。格式模板包括若干XML描述符,它們指定呈現(xiàn)參數(shù),比如位置、旋轉(zhuǎn)、字體、顏色等等。在一個(gè)優(yōu)選實(shí)施例中,這些描述符由一個(gè)限定標(biāo)記標(biāo)識(shí),它標(biāo)識(shí)元素內(nèi)容所用的格式描述。這些描述符以一連串的XML起始標(biāo)記作為索引,要取得一個(gè)具體的XML元素就必須遍歷這些標(biāo)記。每當(dāng)遇到了一個(gè)起始標(biāo)記,就要產(chǎn)生或修改限定標(biāo)記。
適當(dāng)情況下,所述多個(gè)元素中的每一個(gè)都包括多個(gè)字段,所述字段由所述描述符的第一組進(jìn)行處理。將要打印的XML文件解析為元素內(nèi)容,它們?cè)俳馕鰹樽侄尾⑶沂褂靡贿B串的字段XMD(XML描述符)來處理。這些元素內(nèi)容解析為字段時(shí),或者是以字節(jié)計(jì)數(shù),或者是按照分隔符。更加適當(dāng)?shù)那闆r下,所述多個(gè)元素中的每一個(gè)都包括多個(gè)屬性,所述屬性由所述描述符的第二組進(jìn)行處理。一連串的屬性XMD用于格式化屬性,其中這些屬性解析為字段,由一連串的字段XMD來格式化這些字段。
按照另一方面,本發(fā)明提供了一種打印系統(tǒng),包括一個(gè)假脫機(jī)程序、一個(gè)打印服務(wù)工具程序和一臺(tái)打印機(jī)。打印服務(wù)工具程序?qū)哂卸鄠€(gè)元素的至少一個(gè)文件進(jìn)行解析,按照一個(gè)格式模板格式化這至少一個(gè)文件,組織一個(gè)表示格式化的文件的數(shù)據(jù)流,產(chǎn)生一個(gè)打印流。打印機(jī)用于打印該打印流。其中格式模板定義了一種數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,對(duì)所述多個(gè)元素中的每一個(gè)定義其格式。
按照另一方面,本發(fā)明提供了一種方法,用于打印具有多個(gè)元素的至少一個(gè)文件,該方法包括以下步驟在一個(gè)服務(wù)器假脫機(jī)隊(duì)列中放置所述至少一個(gè)文件;向一個(gè)打印服務(wù)工具程序提供一個(gè)格式模板,其特征在于該格式模板包括一種數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,對(duì)所述多個(gè)元素中的每一個(gè)定義其格式;以及從服務(wù)器假脫機(jī)隊(duì)列中取出所述至少一個(gè)文件,以便使用格式模板產(chǎn)生一個(gè)格式化的打印流。優(yōu)選情況下,該方法進(jìn)一步包括以下步驟把所述至少一個(gè)文件解析為多個(gè)元素;對(duì)于所述多個(gè)元素中的每一個(gè),搜索格式模板以發(fā)現(xiàn)格式指令;以及響應(yīng)一個(gè)成功的搜索步驟,使用所述格式指令格式化所述每個(gè)元素。
按照另一方面,本發(fā)明提供了一種計(jì)算機(jī)程序,它包括程序代碼段,適于在所述程序在一臺(tái)計(jì)算機(jī)上運(yùn)行時(shí),執(zhí)行以上介紹之方法的所有步驟。
按照另一方面,本發(fā)明提供了一種打印系統(tǒng)。該打印系統(tǒng)包括一個(gè)假脫機(jī)程序、一個(gè)打印服務(wù)工具程序和一臺(tái)打印機(jī)。假脫機(jī)程序從打印通道接收可打印的信息。打印服務(wù)工具程序?qū)σ粋€(gè)XML文件進(jìn)行解析,按照一個(gè)格式模板格式化這個(gè)XML文件,打印服務(wù)工具程序組織一個(gè)表示格式化的XML文件的數(shù)據(jù)流,產(chǎn)生一個(gè)已經(jīng)使用格式模板確定了格式的打印流。打印機(jī)按照格式模板定義的格式,打印該打印流。其中格式模板定義了一種數(shù)據(jù)映射格式,它包含著若干XML描述符,對(duì)該XML文件中的一個(gè)元素定義其格式。
按照另一方面,本發(fā)明提供了一種方法,使用提供的一個(gè)格式模板,直接打印XML文件。該方法包括以下步驟在一個(gè)服務(wù)器假脫機(jī)隊(duì)列中放置將要打印的一個(gè)XML文件;向一個(gè)打印服務(wù)工具程序提供一個(gè)格式模板,其特征在于該格式模板定義一種數(shù)據(jù)映射格式,它包含著XML描述符,對(duì)該XML文件中的一個(gè)元素定義其格式;以及從服務(wù)器假脫機(jī)程序中取出該XML文件,以便使用格式模板產(chǎn)生一個(gè)格式化的打印流。該方法進(jìn)一步包括以下步驟把將要打印的XML文件解析為元素內(nèi)容;對(duì)于一個(gè)解析后的元素內(nèi)容,搜索格式模板以發(fā)現(xiàn)格式指令;判斷該搜索是否成功;使用搜索獲得的格式指令格式化元素內(nèi)容;以及判斷是否已經(jīng)到達(dá)文檔終點(diǎn)。該方法進(jìn)一步包括以下步驟繼續(xù)處理解析后的元素內(nèi)容;以及向一臺(tái)打印機(jī)發(fā)送格式化的數(shù)據(jù)流。
按照另一方面,本發(fā)明提供了一種制成品,包括計(jì)算機(jī)可讀的一種程序存儲(chǔ)介質(zhì)。該介質(zhì)有形地收錄了一個(gè)或多個(gè)程序,內(nèi)含計(jì)算機(jī)可執(zhí)行的若干指令,實(shí)現(xiàn)一個(gè)使用格式模板直接打印XML文件的方法,其特征在于該方法包括以下步驟在一個(gè)服務(wù)器假脫機(jī)隊(duì)列中放置將要打印的一個(gè)XML文件;向一個(gè)打印服務(wù)工具程序提供一個(gè)格式模板,該格式模板定義一種數(shù)據(jù)映射格式,它包含著XML描述符,對(duì)該XML文件中的一個(gè)元素定義其格式;以及從服務(wù)器假脫機(jī)程序中取出該XML文件,以便使用格式模板產(chǎn)生一個(gè)格式化的打印流。
按照另一方面,本發(fā)明提供了一種打印系統(tǒng),它包括假脫機(jī)程序段、打印驅(qū)動(dòng)程序段和打印裝置。假脫機(jī)程序段從打印通道接收可打印的信息。打印驅(qū)動(dòng)程序段對(duì)一個(gè)XML文件進(jìn)行解析,按照一個(gè)格式程序段格式化這個(gè)XML文件,打印驅(qū)動(dòng)程序段組織一個(gè)表示格式化的XML文件的數(shù)據(jù)流,產(chǎn)生一個(gè)已經(jīng)使用格式模板確定了格式的打印流。打印裝置按照格式模板定義的格式,打印該打印流。其中格式程序段定義了一種數(shù)據(jù)映射格式,它包含著若干XML描述符,對(duì)該XML文件中的一個(gè)元素定義其格式。
附圖簡(jiǎn)要說明如同在以下附圖中的展示,現(xiàn)在將要參考本發(fā)明的若干優(yōu)選實(shí)施例,介紹本發(fā)明——僅僅是舉例說明而已,其中
圖1展示了一個(gè)打印機(jī)系統(tǒng)的概要;圖2展示了一臺(tái)打印設(shè)備更詳細(xì)的框圖,比如打印機(jī)和數(shù)字復(fù)印機(jī);圖3展示了一個(gè)典型文檔的打印過程;圖4展示了使用格式模板的XML打印過程;圖5展示了本方法的流程圖,使用圖4的格式模板打印XML文件。
具體實(shí)施例方式
本發(fā)明提供了一種方法和裝置,使用一個(gè)格式模板,直接打印XML文件。一種格式模板比如一個(gè)頁面定義用于格式化每個(gè)XML元素。格式模板包括若干描述符,它們指定呈現(xiàn)參數(shù),比如位置、旋轉(zhuǎn)、字體、顏色等等。這些描述符以一連串的XML標(biāo)記作為索引,要取得一個(gè)具體的XML元素就必須遍歷這些標(biāo)記。
圖1展示了一個(gè)打印機(jī)系統(tǒng)100的概要。在圖1中,打印機(jī)系統(tǒng)100包括一臺(tái)打印服務(wù)器110、一個(gè)打印假脫機(jī)程序114和呈現(xiàn)服務(wù)120。打印服務(wù)器110用于接收輸入的打印數(shù)據(jù)流112。打印假脫機(jī)程序114用于控制數(shù)據(jù)文件的假脫機(jī)操作。呈現(xiàn)服務(wù)120用于產(chǎn)生恰當(dāng)?shù)拿?,使用雙向打印數(shù)據(jù)流150來驅(qū)動(dòng)一臺(tái)相聯(lián)的打印機(jī)130。假脫機(jī)程序114從打印通道接收可打印的信息。打印服務(wù)器110也可以包括沒有顯示的其它部件,以便執(zhí)行基本任務(wù),比如監(jiān)控和配置相聯(lián)的若干打印機(jī),以及提供打印作業(yè)管理。打印服務(wù)器110把輸入的打印數(shù)據(jù)流112轉(zhuǎn)換為打印機(jī)130支持的數(shù)據(jù)流。
圖2展示了依據(jù)本發(fā)明的一臺(tái)打印設(shè)備200更詳細(xì)的框圖,比如打印機(jī)和數(shù)字復(fù)印機(jī)。子單元也可以是一組可定義的邏輯過程,比如頁面描述語言的轉(zhuǎn)換器或者為打印設(shè)備設(shè)置多種操作描述的命令處理器。
圖2展示了打印設(shè)備的三個(gè)基本功能(1)一個(gè)打印文件流入一個(gè)轉(zhuǎn)換器并進(jìn)至打印機(jī)上;(2)媒介流過打印機(jī);(3)控制和促進(jìn)這兩種流的輔助子單元。如圖2所示,打印數(shù)據(jù)流來自一個(gè)有形連接210,某種形式的傳送協(xié)議堆疊從該處運(yùn)行至一個(gè)打印設(shè)備接口212。傳送協(xié)議(接口)提供的數(shù)據(jù)發(fā)送到一個(gè)轉(zhuǎn)換器216的輸入端。轉(zhuǎn)換器216負(fù)責(zé)把要打印之文件的描述轉(zhuǎn)換為要打印在媒介上的影像。一臺(tái)打印設(shè)備可以具有一個(gè)或多個(gè)轉(zhuǎn)換器。
如圖2所示,媒介260最初駐留在輸入子單元220中,從該處選擇媒介260,然后通過媒介路徑250首先傳送到打印機(jī)230,然后進(jìn)至一個(gè)輸出240進(jìn)行某些(可選的)收尾操作270。輸入220是一種機(jī)構(gòu),它把要打印的媒介送入打印設(shè)備。輸入220的數(shù)目可以多至可以明確選擇的輸入“地址”。媒介260是輸入220的一種延伸,這表示處于輸入220中的媒介。輸出240是一種機(jī)構(gòu),它接收已經(jīng)打印過的媒介。一臺(tái)打印設(shè)備可以包含一個(gè)或多個(gè)輸出機(jī)構(gòu)240。輸出240的數(shù)目多至可以明確選擇的輸出“地址”。收尾器270是一個(gè)單元,它對(duì)媒介進(jìn)行不同于打印的某些操作。收尾處理的某些實(shí)例是裝訂、壓印、加封面、加插頁或折疊??蛇x的收尾器270能夠用于在媒介上加印強(qiáng)調(diào)色、影像或者M(jìn)ICR(磁性墨水特征識(shí)別)墨水或調(diào)色劑。
打印機(jī)230是在打印媒介上產(chǎn)生標(biāo)記的機(jī)構(gòu)。一臺(tái)打印設(shè)備能夠包含一臺(tái)或多臺(tái)打印機(jī)230。多打印機(jī)子單元230的某些實(shí)例為一臺(tái)打印設(shè)備分別帶有普通和磁性墨水打印機(jī),或者既能輸出大樣又能輸出最終膠版的激光照排機(jī)。每臺(tái)打印機(jī)都能夠具有與其相關(guān)聯(lián)的自己的字符集,比如隨打印技術(shù)和分辨率而變。媒介路徑250圍繞著打印設(shè)備中的若干機(jī)構(gòu)輸入220、輸出240、打印機(jī)230和收尾器270,它們使媒介通過打印設(shè)備,并且連接著所有其它的媒介有關(guān)的單元。一臺(tái)打印設(shè)備可以包含一條或多條媒介路徑250。一般說來,媒介路徑250的設(shè)計(jì)方案確定了打印設(shè)備的最高速度以及該打印設(shè)備能夠采用之媒介的最大尺寸。媒介路徑250是復(fù)雜的機(jī)構(gòu),能夠包含許多不同的、可識(shí)別的子機(jī)構(gòu),比如媒介移動(dòng)設(shè)備、媒介緩沖區(qū)、雙聯(lián)單元和聯(lián)鎖裝置。并非每一條媒介路徑250上都駐留著所有這些不同的子機(jī)構(gòu)。例如,一條媒介路徑可能提供僅僅在媒介的一個(gè)表面上打印(單一路徑),另一條媒介路徑可能具有一個(gè)子機(jī)構(gòu),它使媒介翻轉(zhuǎn)并把它再次送入打印機(jī)子單元(雙聯(lián)路徑)。雙聯(lián)路徑甚至可能具有一個(gè)緩沖區(qū)子機(jī)構(gòu),它能夠保持多份正面,然后在打印所有的背面。
輔助子單元,比如普通打印設(shè)備202、操作員控制臺(tái)280和警報(bào)器282,促進(jìn)了打印設(shè)備的控制、操作員面板的查詢/控制、報(bào)警以及使打印設(shè)備適應(yīng)多種自然語言和字符集。普通打印設(shè)備202負(fù)責(zé)打印設(shè)備的整體控制和狀態(tài)。操作員控制臺(tái)280用于顯示和改變打印設(shè)備的狀態(tài)??刂婆_(tái)280可以簡(jiǎn)單到幾個(gè)指示器和開關(guān),或者復(fù)雜到全屏顯示和鍵盤。警報(bào)器282負(fù)責(zé)探測(cè)可報(bào)告的事件、在警報(bào)表中進(jìn)行記錄以及當(dāng)且僅當(dāng)事件為危急事件時(shí)啟動(dòng)一個(gè)中斷。例如,假若在打印設(shè)備中沒有加載質(zhì)地正確的紙張媒介,那么這種情況可以通過圖1所示的雙向打印數(shù)據(jù)流150,向回通知主機(jī)。除了這種措施以外,通過警報(bào)單元282,可以使用一項(xiàng)警報(bào)來通知打印機(jī)的管理人員,在打印設(shè)備中沒有加載質(zhì)地正確的紙張媒介,或者紙張媒介的質(zhì)地已經(jīng)改變了。
以上介紹的所有功能都在系統(tǒng)控制器218中運(yùn)行,它代表了打印設(shè)備的處理器、內(nèi)存和存儲(chǔ)系統(tǒng)。對(duì)于處理一個(gè)打印作業(yè),系統(tǒng)控制器218實(shí)現(xiàn)了控制功能。系統(tǒng)控制器218包括管理信息庫(MIB),它提供了對(duì)打印設(shè)備中數(shù)據(jù)元素的訪問,比如打印設(shè)備中的處理器、內(nèi)存、磁盤存儲(chǔ)器、文件系統(tǒng)和其它基礎(chǔ)的子機(jī)構(gòu)。系統(tǒng)控制器218的范圍,可以從簡(jiǎn)單的單處理器系統(tǒng)到多處理器系統(tǒng)。此外,控制器可以具有滿額度的資源,比如硬盤。本領(lǐng)域的技術(shù)人員將會(huì)理解,一臺(tái)打印設(shè)備可以具有不止一個(gè)處理器和多個(gè)其它資源與其相關(guān)聯(lián)。
圖3展示了一個(gè)典型文檔之打印方法的流程。在步驟310中,一個(gè)假脫機(jī)程序/調(diào)度程序,包括可執(zhí)行代碼和一套應(yīng)用程序,從客戶計(jì)算機(jī)接收若干打印作業(yè)。在步驟320中,假脫機(jī)程序/調(diào)度程序處理該打印作業(yè)。處理了打印作業(yè)之后,在步驟330中假脫機(jī)程序/調(diào)度程序把打印作業(yè)發(fā)送到打印服務(wù)工具程序(PSF),在步驟340中PSF驅(qū)動(dòng)一臺(tái)打印機(jī)。PSF是一個(gè)呈現(xiàn)格式化和設(shè)備管理系統(tǒng),簡(jiǎn)而言之,它能夠被視為一個(gè)打印驅(qū)動(dòng)程序。它控制著與打印機(jī)的對(duì)話,掌握著資源管理,以便支持打印機(jī)的各種性能。
圖4展示了使用格式模板的XML打印過程400。在圖4所示的實(shí)例中,格式模板提供了以數(shù)據(jù)映射格式430表示的一個(gè)頁面定義。在圖4中,要打印的XML文件410直接置于服務(wù)器假脫機(jī)隊(duì)列420中。新的數(shù)據(jù)映射格式430包含著XML描述符(XMD)432、434,它們與XML數(shù)據(jù)的關(guān)系正如行描述符(LND)與行數(shù)據(jù)以及記錄描述符(RCD)與記錄格式數(shù)據(jù)的關(guān)系。XMD 432、434由“限定標(biāo)記”(QT)436來標(biāo)識(shí),類似于以10字節(jié)的記錄ID來標(biāo)識(shí)RCD的方式。一個(gè)QT 436就是一連串的XML元素起始標(biāo)記,必須在XML層次中遍歷它們才能到達(dá)一個(gè)具體的元素。例如,在以下的XML層次中<人員>
<姓名>
<名>John</名>
<姓>Doe</姓>
</姓名>
</人員>
要格式化元素<名>中內(nèi)容,所用之XMD的QT是(人員 姓名 名)(空格字符是組成QT的起始標(biāo)記成分之間的分隔符)。要打印的XML文件440由PSF 450從假脫機(jī)隊(duì)列420中取出,并且進(jìn)行解析。PSF 450組織一個(gè)表示格式化的XML文件的數(shù)據(jù)流,再把它傳送到打印機(jī)470。每當(dāng)遇到一個(gè)起始標(biāo)記,如<姓>,PSF 450就產(chǎn)生QT(在這種情況下它是(人員 姓名 姓)),再搜索當(dāng)前的數(shù)據(jù)映射430,尋找與QT匹配的XMD 432、434。如果找到了匹配的QT,就以一個(gè)XMD 432、434格式化該元素之內(nèi)容。如果沒有找到匹配的QT,就以下一個(gè)起始標(biāo)記再繼續(xù)處理。
注意,在PSF 450解析XML文件440時(shí),PSF 450必須使遍歷的XML起始標(biāo)記進(jìn)入緩沖區(qū),以便具有一個(gè)“當(dāng)前的”QT。為記錄格式而開發(fā)的所有格式功能,如頁眉、頁腳、組標(biāo)題、頁號(hào)、文本對(duì)齊、圖形基元等等,在確定XML格式的XMD中都有。一個(gè)元素的內(nèi)容可以解析為若干字段,或者是以字節(jié)計(jì)數(shù),或者是按照分隔符,再使用一連串的字段XMD來處理。
一個(gè)XML起始標(biāo)記可以為一個(gè)元素指定若干屬性。例如<人員性別=“男”身高=“72”體重=“200”>
利用一連串的屬性XMD,就能夠確定這些屬性的格式。這是與字段XMD系列不同的一個(gè)系列。它通過屬性的名稱來選擇屬性,如“身高”,然后確定屬性值的格式。屬性值可以再解析為若干字段,并使用一連串的字段XMD來確定格式。XML支持空標(biāo)記,即如下結(jié)構(gòu)在僅有一對(duì)括號(hào)內(nèi)部既包含起始標(biāo)記又包含結(jié)束標(biāo)記且?guī)в锌蛇x的屬性,如<人員姓名=“John Doe”/>??諛?biāo)記是使用其起始成分(在這個(gè)實(shí)例中是人員)來處理,其屬性可以使用屬性XMD來確定格式。起始標(biāo)記的內(nèi)容(包括括號(hào))可以利用一個(gè)字段XMD來確定格式,它(通過例如一個(gè)旗標(biāo)位)選擇起始標(biāo)記作為要處理的數(shù)據(jù)字段(類似于利用一個(gè)RCD確定一個(gè)記錄ID之格式的方式)。
圖5展示了本方法的流程圖,使用一種格式模板打印XML文件。在步驟510,要打印的XML文件置于服務(wù)器假脫機(jī)隊(duì)列中,在步驟520,向打印服務(wù)工具程序(PSF)提供一個(gè)格式模板。格式模板定義了一個(gè)包含XMD的數(shù)據(jù)映射。在步驟530,PSF從服務(wù)器假脫機(jī)隊(duì)列中取出要打印的XML文件,在步驟540中解析要打印的XML文件。然后在步驟542中,PSF搜索格式模板,以便為一個(gè)解析后的元素,尋找格式指令,即由一個(gè)QT標(biāo)識(shí)的一個(gè)XMD。在步驟550作出一個(gè)判斷,搜索是否成功。響應(yīng)一個(gè)否定結(jié)果(556),本方法進(jìn)至步驟560。響應(yīng)一個(gè)肯定結(jié)果(552),在步驟554按照格式指令,確定該元素之內(nèi)容的格式,然后在步驟570,PSF把格式化的智能打印機(jī)數(shù)據(jù)流(IPDS)發(fā)送到打印機(jī)。下一步在步驟560中作出一個(gè)判斷,是否已經(jīng)到達(dá)該文檔的終點(diǎn)。響應(yīng)一個(gè)肯定結(jié)果(562),本方法結(jié)束。響應(yīng)一個(gè)否定結(jié)果(564),本方法在步驟566進(jìn)至下一個(gè)元素,并且返回步驟542,為下一個(gè)已解析的元素搜索格式模板。
本發(fā)明的一個(gè)優(yōu)點(diǎn)在于,雖然對(duì)XML強(qiáng)加了某些限制,如XML必須基于文本以及不能包含外部資源引用,但是卻為打印XML文件提供了一種更直接和更快捷的方法。
由打印服務(wù)工具程序450進(jìn)行了一種過程,使用一種格式模板直接打印XML文件,如以上圖4所示及參考圖5進(jìn)行的介紹。參考圖4和圖5介紹的過程可以有形地收錄在一種計(jì)算機(jī)可讀的介質(zhì)或者說載體上,如一種或多種固定的和/或可拆卸的數(shù)據(jù)存儲(chǔ)設(shè)備490,或者其它的數(shù)據(jù)存儲(chǔ)或數(shù)據(jù)通信設(shè)備。存儲(chǔ)設(shè)備490上的計(jì)算機(jī)程序492可以加載到PSF 450中,為了執(zhí)行而配置PSF 450。計(jì)算機(jī)程序492包括若干指令,當(dāng)PSF 450讀取和執(zhí)行它們時(shí),它們使PSF 450執(zhí)行若干步驟,這些步驟是執(zhí)行本發(fā)明的步驟和元素所必要的。
權(quán)利要求
1.一種格式模板,用于打印具有多個(gè)元素的至少一個(gè)文件,所述模板包括一個(gè)數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,用于定義所述多個(gè)元素中每一個(gè)的格式。
2.根據(jù)權(quán)利要求1的格式模板,其特征在于,這些描述符由一個(gè)限定標(biāo)記來標(biāo)識(shí)。
3.根據(jù)權(quán)利要求2的格式模板,其特征在于,該限定標(biāo)記包括一連串的必須在這至少一個(gè)文件中遍歷的元素起始標(biāo)記。
4.根據(jù)權(quán)利要求3的格式模板,其特征在于,每當(dāng)遇到一個(gè)起始標(biāo)記,就產(chǎn)生該限定標(biāo)記。
5.根據(jù)權(quán)利要求3的格式模板,其特征在于,每當(dāng)遇到一個(gè)起始標(biāo)記,就改變?cè)撓薅?biāo)記。
6.根據(jù)前面任何一個(gè)權(quán)利要求的格式模板,其特征在于,所述多個(gè)元素中每一個(gè)都包括多個(gè)字段,所述字段由所述標(biāo)識(shí)符的第一組進(jìn)行處理。
7.根據(jù)前面任何一個(gè)權(quán)利要求的格式模板,其特征在于,所述多個(gè)元素中每一個(gè)都包括多個(gè)屬性,所述屬性由所述標(biāo)識(shí)符的第二組進(jìn)行處理。
8.一種打印系統(tǒng),包括一個(gè)假脫機(jī)程序;一個(gè)打印服務(wù)工具程序,用于解析具有多個(gè)元素的至少一個(gè)文件,按照一個(gè)格式模板格式化這至少一個(gè)文件,組織表示該格式化文件的數(shù)據(jù)流以及產(chǎn)生一個(gè)打印流;以及一臺(tái)打印機(jī),用于打印該打印流;其特征在于,該格式模板定義了一個(gè)數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,用于定義所述多個(gè)元素中每一個(gè)的格式。
9.一種方法,用于打印具有多個(gè)元素的至少一個(gè)文件,包括以下步驟把所述至少一個(gè)文件置于一個(gè)服務(wù)器假脫機(jī)隊(duì)列中;向一個(gè)打印服務(wù)工具程序提供一個(gè)格式模板,其中,該格式模板包括一個(gè)數(shù)據(jù)映射格式,它具有相關(guān)聯(lián)的多個(gè)描述符,用于定義所述多個(gè)元素中每一個(gè)的格式;以及從服務(wù)器假脫機(jī)隊(duì)列中取出所述至少一個(gè)文件,以便使用格式模板產(chǎn)生一個(gè)格式化的打印流。
10.根據(jù)權(quán)利要求9的方法,進(jìn)一步包括以下步驟把所述至少一個(gè)文件解析為多個(gè)元素;對(duì)于所述多個(gè)元素中的每一個(gè),搜索格式模板以找到格式指令;以及響應(yīng)一個(gè)成功的搜索步驟,使用所述格式指令格式化所述每個(gè)元素。
11.一種計(jì)算機(jī)程序,包括程序代碼裝置,當(dāng)所述程序在一臺(tái)計(jì)算機(jī)上運(yùn)行時(shí),用于執(zhí)行權(quán)利要求9的所有步驟。
全文摘要
本發(fā)明公開了一種打印系統(tǒng)和方法,使用一個(gè)格式模板直接打印XML文件。該打印系統(tǒng)的一個(gè)實(shí)施例包括包括一個(gè)假脫機(jī)程序、一個(gè)打印服務(wù)工具程序和一臺(tái)打印機(jī)。假脫機(jī)程序從打印通道接收可打印的信息。打印服務(wù)工具程序?qū)σ粋€(gè)XML文件進(jìn)行解析,按照一個(gè)格式模板格式化這個(gè)XML文件,打印服務(wù)工具程序組織一個(gè)表示格式化的XML文件的數(shù)據(jù)流,產(chǎn)生一個(gè)已經(jīng)使用格式模板確定了格式的打印流。打印機(jī)按照格式模板定義的格式,打印該打印流。其中格式模板定義了一種數(shù)據(jù)映射格式,它包含著若干XML描述符,對(duì)該XML文件中的一個(gè)元素定義其格式。
文檔編號(hào)G06F3/12GK1554045SQ02817809
公開日2004年12月8日 申請(qǐng)日期2002年9月19日 優(yōu)先權(quán)日2001年9月26日
發(fā)明者羅格·李·巴伊斯, 斯蒂芬·馬克·吉伯特, 林哈德·海恩里?!ず篮辔? 海恩里希 豪亨西, 馬克 吉伯特, 羅格 李 巴伊斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司