專利名稱:選擇并打印網(wǎng)頁的工具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及從計算機(jī)網(wǎng)絡(luò)存取信息。本發(fā)明尤其涉及改進(jìn)了的用于打印從網(wǎng)絡(luò)上獲得的格式化文檔的工具。
網(wǎng)絡(luò),如因特網(wǎng),已經(jīng)存在好多年了;但是它們不是流行的信息交換的介質(zhì),直到裝置和方法被發(fā)展起來以簡化用戶通過一個或多個網(wǎng)絡(luò)訪問并細(xì)讀存儲的信息時必須采取的動作。涉及所謂的萬維網(wǎng)(“Web”)的方法和裝置的引入是這類發(fā)展的很好例子。萬維網(wǎng)是服務(wù)器和互連的網(wǎng)絡(luò)的一個集合,這些服務(wù)器和互連的網(wǎng)絡(luò)利用超文本傳輸協(xié)議(HTTP)來訪問文檔或網(wǎng)頁,該文檔或網(wǎng)頁使用標(biāo)示語言來表示各種不同的對象,包括文本、圖象、聲音以及被編程的功能。一種被廣泛使用的標(biāo)示語言是超文本鏈接標(biāo)示語言(HTML)。
HTML提供了用于指定格式化的文檔內(nèi)容以及指定對其它文檔的“鏈接”的工具。這些鏈接允許用戶容易地在文檔間航行。通過為通過網(wǎng)絡(luò)可訪問的每個文檔指派一個唯一的標(biāo)識符,即統(tǒng)一資源定位器(URL),用戶能夠在這些文檔間航行而不用考慮它們的實際位置。
用戶可以使用被配置作為網(wǎng)絡(luò)客戶端的計算機(jī)與網(wǎng)絡(luò)服務(wù)器交互。這通常通過使用被稱為“網(wǎng)絡(luò)瀏覽器”的軟件來實現(xiàn),網(wǎng)絡(luò)瀏覽器允許用戶通過以URL請求網(wǎng)絡(luò)上的服務(wù)器獲取指定的文檔來訪問一個特定的文檔。在該文檔被返回給客戶端計算機(jī)后,網(wǎng)絡(luò)瀏覽器能夠?qū)⑽臋n的內(nèi)容呈現(xiàn)給用戶。在該文檔被接收并呈現(xiàn)后,用戶可以采取另一行動例如打印文檔和/或請求另一個文檔。
不幸地,現(xiàn)有的網(wǎng)絡(luò)瀏覽器只提供非常簡單的用于打印諸如網(wǎng)頁的文檔的工具。這些工具要求用戶得到感興趣的文檔,然后擊一個鍵或使用指針裝置如鼠標(biāo)點擊一個圖標(biāo)以在該文檔被顯示時打印該文檔。如果一個文檔當(dāng)前沒有被顯示就不能被打印。舉例來說,沒有一種方便的方法來打印一個指定網(wǎng)絡(luò)服務(wù)器上的所有網(wǎng)頁,而且不可能自動地打印一個指定網(wǎng)頁列表的當(dāng)前版本。此外,每個文檔被打印而不考慮文檔的內(nèi)容。例如,被打印的圖象不能被分塊以方便地適應(yīng)單個的紙張。
本發(fā)明的一個目標(biāo)是提供改進(jìn)的用于打印通過網(wǎng)絡(luò)訪問的文檔如網(wǎng)頁的工具。
根據(jù)本發(fā)明的一個方面,處理諸如網(wǎng)頁的文檔的方法包括從網(wǎng)絡(luò)獲取一個或多個文檔,接收來自用戶的標(biāo)記一個或多個文檔的請求以創(chuàng)建對被標(biāo)記文檔的“引用標(biāo)記”的集合,以及響應(yīng)用戶請求生成表示每個文檔的一個圖象或描繪(rendition)的信息,其中的文檔具有在集合中的引用標(biāo)記。
根據(jù)本發(fā)明的另一個方面,處理諸如網(wǎng)頁的文檔的方法包括獲取一個引用集合,集合中的每個引用確定一個文檔,將一個或多個文檔記錄在本地存儲器中,該文檔從網(wǎng)絡(luò)獲得,被集合中的引用表示,并且或者未被記錄在本地存儲器中,或者被以一種為從網(wǎng)絡(luò)獲取的文檔廢棄(superceded)的形式存儲在本地存儲器中,并且生成表示每個文檔的圖象或描繪的圖象信息,該文檔被記錄在本地存儲器中并被集合中的引用表示。
本發(fā)明不局限于任何特定的文檔類型。例如,下面的公開內(nèi)容更多地提到具有用超文本鏈接標(biāo)示語言(HTML)表示的內(nèi)容的網(wǎng)頁,但HTML僅作為通用標(biāo)記語言標(biāo)準(zhǔn)(SGML)的一個例子被提及,而SGML符合國際標(biāo)準(zhǔn)ISO 88791986。此外,本發(fā)明可用于標(biāo)記語言文檔之外的其它文檔類型。
本發(fā)明的各種特征以及它的優(yōu)選實施方案通過參考下面的討論和附圖將得到更好的理解,附圖中,相同的引用數(shù)字引用多個圖形中的相同元素。下面討論的內(nèi)容和附圖只是作為例子闡明,而不應(yīng)被理解為對本發(fā)明的范圍的限制。
圖1是連接一個網(wǎng)絡(luò)客戶端和兩個網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)的示意性表示。
圖2是典型計算機(jī)的功能塊圖,該計算機(jī)可被用作網(wǎng)絡(luò)客戶端或網(wǎng)絡(luò)服務(wù)器以實現(xiàn)本發(fā)明的各個方面。
圖3是一個過程的高層流程圖,該過程被用于實現(xiàn)本發(fā)明的各個方面。
圖4到圖7是更詳細(xì)的流程圖,顯示圖3的過程中一些步驟可能的實現(xiàn)方法。
圖8是顯示“標(biāo)記一切”命令可能的一種實現(xiàn)方法。
圖9是相互引用的文檔的示意圖。
圖10是顯示“在線書籍”可能被打印的一種方法。
圖1是表示一個網(wǎng)絡(luò)的示意圖,其中網(wǎng)絡(luò)客戶端10使用網(wǎng)絡(luò)40來訪問由網(wǎng)絡(luò)服務(wù)器30和35提供的資源。盡管預(yù)期網(wǎng)絡(luò)服務(wù)器30和網(wǎng)絡(luò)服務(wù)器35為超介質(zhì)服務(wù)器,可能依照超文本傳輸協(xié)議(HTTP)運行,這對于本發(fā)明的實踐不是必須的。將網(wǎng)絡(luò)客戶端10,網(wǎng)絡(luò)服務(wù)器30和網(wǎng)絡(luò)服務(wù)器35連接到網(wǎng)絡(luò)40的通訊線路的特性對于本發(fā)明的實踐不是關(guān)鍵的。該線路可以被實現(xiàn)為使用私有和/或公共裝置的轉(zhuǎn)換和/或非轉(zhuǎn)換的線路。類似地,網(wǎng)絡(luò)40的拓?fù)浣Y(jié)構(gòu)不是關(guān)鍵的,可以被以各種方式實現(xiàn),包括層次的和對等的網(wǎng)絡(luò)。網(wǎng)絡(luò)客戶端10和網(wǎng)絡(luò)服務(wù)器30,舉例來說,對于彼此可以是本地的,可以被實現(xiàn)在同一硬件上。
圖2是可被用以實現(xiàn)網(wǎng)絡(luò)客戶端10,網(wǎng)絡(luò)服務(wù)器30和網(wǎng)絡(luò)服務(wù)器35的典型計算機(jī)系統(tǒng)的功能塊圖。如圖所示,該計算機(jī)系統(tǒng)包括連接中央處理器單元(CPU)12,系統(tǒng)存儲器13和一些裝置接口的總線11??偩€11可以被多于一個的物理總線,如一個系統(tǒng)總線和一個處理器局部總線實現(xiàn)。CPU12代表處理電路,如微處理器。系統(tǒng)存儲器13代表多個存儲器元件,如隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。輸入控制15代表連接到一個或多個輸入裝置25,如鍵盤、鼠標(biāo)、跟蹤球和光筆,的接口電路。顯示控制16代表連接到一個或多個顯示裝置26,如視頻顯示終端,的接口電路。I/O控制17代表連接到一個或多個I/O裝置27,如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接,的接口電路。存儲控制18代表連接到一個或多個存儲裝置28,如磁盤驅(qū)動器,磁帶驅(qū)動器,光盤驅(qū)動器,或固態(tài)存儲裝置,的接口電路。打印控制19代表連接到一個或多個打印裝置29,如激光打印機(jī),噴墨打印機(jī)或繪圖儀,的接口電路。沒有特定類型的計算機(jī)系統(tǒng)對于本發(fā)明的實踐是關(guān)鍵的。例如,具有如圖2所示的總線結(jié)構(gòu)的計算機(jī)不是基本的。
在一個典型的實施例中,計算機(jī)系統(tǒng)10通過使用CPU12執(zhí)行一個指令程序來實現(xiàn)本發(fā)明的各個方面,該程序從存儲裝置20取得,或通過I/O裝置27從網(wǎng)絡(luò)服務(wù)器或其它來源得到。對指定文檔的請求通過輸入裝置25接收自用戶,文檔通過I/O裝置27從網(wǎng)絡(luò)40上的服務(wù)器獲取。當(dāng)文檔被從網(wǎng)絡(luò)40獲取后,該文檔被寫入存儲器13,文檔的一個描述通過顯示裝置26被呈現(xiàn)給用戶。此外,該文檔可以被寫入存儲裝置28提供的高速緩存或本地存儲器。為響應(yīng)通過輸入裝置25接收自用戶的請求,計算機(jī)系統(tǒng)10確定被選擇的文檔,并通過打印裝置29產(chǎn)生被選中的文檔的一個描繪。
本發(fā)明的各個方面可以被實現(xiàn)為一個或多個指令程序,該程序可被機(jī)器執(zhí)行,并且通過機(jī)器可讀的介質(zhì)傳輸,該介質(zhì)包括各種磁介質(zhì)諸如磁盤或磁帶,各種光介質(zhì),諸如光盤,以及可見光,紅外線和無線電頻率的通訊信道。高層流程3顯示了一個過程的高層流程圖,該過程被用于實現(xiàn)本發(fā)明的各個方面。初始化102代表開始該過程采取的步驟。這包括諸如分配內(nèi)存,打開文件,獲取用戶配置參數(shù)及為程序變量提供初始值等活動。顯示104代表為用戶生成視覺的或聽覺的顯示采取的步驟。該顯示包括用戶到程序接口的一個表示,文檔的消息實體或一個描繪。輸入106通過輸入裝置如鍵盤、鼠標(biāo)或其它指針裝置接收來自用戶的請求。
為響應(yīng)每個用戶請求,路由108激活根據(jù)請求的性質(zhì)選擇的一個或多個過程。例如,為響應(yīng)對一個特定文檔的請求,路由108激活由獲取頁面120表示的過程來獲取文檔并把它呈現(xiàn)給用戶。為響應(yīng)選擇或“標(biāo)記”一個用于并發(fā)打印的文檔的請求,路由108激活由標(biāo)記頁面140表示的過程。路由108激活由編輯標(biāo)記160表示的過程來響應(yīng)顯示和/或修改“標(biāo)記”的集合或引用被選中文檔的請求。由打印標(biāo)記頁面180被激活以響應(yīng)打印所有被標(biāo)記的文檔的請求。結(jié)束110被激活以響應(yīng)用戶請求退出程序。這包括諸如關(guān)閉文件和釋放內(nèi)存等活動。圖4至圖7提供更詳細(xì)的流程圖顯示了某些上面提及的過程可能被實現(xiàn)的方法。
這些過程可以被指令程序執(zhí)行,該程序已被存儲在存儲裝置28中,或當(dāng)需要時從網(wǎng)絡(luò)40獲取。該程序可以被以許多不同的方式提供,如另一個應(yīng)用程序的所謂的“Java小應(yīng)用程序”、所謂的“插件程序”,或者一個應(yīng)用程序如網(wǎng)絡(luò)瀏覽器的一個部分。例如,本發(fā)明可以被實現(xiàn)為當(dāng)需要時從網(wǎng)絡(luò)服務(wù)器獲取的Java小應(yīng)用程序。沒有特定的實現(xiàn)對本發(fā)明的實踐是基本的。主要特征取得網(wǎng)頁圖4顯示了獲取頁面120可能被實現(xiàn)的一種方法,在步驟121,該過程確定用戶是否提交了一個有效的請求。例如,這可以包括驗證文檔引用的語法。如果該用戶請求無效,在步驟122生成錯誤提示,而且該過程轉(zhuǎn)向顯示104呈現(xiàn)錯誤提示。如果用戶請求被認(rèn)為是有效的,步驟123導(dǎo)致計算機(jī)系統(tǒng)10向網(wǎng)絡(luò)40發(fā)送“取”請求,要求指定的文檔被返回給計算機(jī)系統(tǒng)10。步驟124隨后判斷該文檔是否被接收。例如,這可以包括檢測來自網(wǎng)絡(luò)指示該“取”請求不能被滿足的回答,或在給定的時間段沒有接收到回答。如果文檔未被接收到,一個錯誤提示在步驟125被生成,該過程轉(zhuǎn)向顯示104呈現(xiàn)錯誤提示。如果文檔被接收到,過程轉(zhuǎn)向顯示104呈現(xiàn)該文檔的一個描繪(rendition)。標(biāo)記網(wǎng)頁圖5顯示了標(biāo)記頁面140可能被實現(xiàn)的一種方法。在步驟141,該過程確定是否存在一個“當(dāng)前”文檔。例如,這可以包括確定是否有一個文檔當(dāng)前正被顯示給用戶。如果沒有當(dāng)前文檔,一個錯誤提示在步驟142被生成,過程轉(zhuǎn)向顯示104呈現(xiàn)錯誤提示。如果存在當(dāng)前文檔,步驟143確定被標(biāo)記文檔的集合是否為空。如果該集合不空,對當(dāng)前文檔的一個“引用標(biāo)記”在步驟145被加入到集合中。如果該集合為空,或者程序變量還沒有被初始化來表示該集合,步驟144用對當(dāng)前文檔的引用標(biāo)記來初始化這些變量和/或工作存儲區(qū)以表示該集合。該過程轉(zhuǎn)向顯示104。編輯網(wǎng)頁圖6顯示了編輯標(biāo)記160可能被實現(xiàn)的一種方法。在步驟161,該過程確定被標(biāo)記文檔的集合是否為空。如果該集合為空,或者程序變量還沒有被初始化來表示該集合,一個錯誤提示在步驟162被生成,過程轉(zhuǎn)向顯示104呈現(xiàn)錯誤提示。如果該集合不空,,在集合中具有引用標(biāo)記的每個文檔的表示被顯示。該表示可以是一個HTTP文檔的URL,文檔內(nèi)容的簡略復(fù)制品,用戶提供的描述,或任何其它類型的表示。步驟164接收用戶輸入并激活合適的過程以響應(yīng)每個請求。為響應(yīng)一個刪除請求,步驟165修改程序變量以從集合中刪除相應(yīng)的引用標(biāo)記。其后步驟161確定該集合現(xiàn)在是否為空,如上所述。
為響應(yīng)創(chuàng)建子集請求,步驟166修改一個或多個變量以創(chuàng)建一個子集,該子集可以包含一個或多個標(biāo)記。子集可以被創(chuàng)建來將被標(biāo)記文檔的集合組織成任何想要的結(jié)構(gòu),如章或文件夾的集合。優(yōu)選地,步驟166還允許用戶為子集指定一個名字。
為響應(yīng)刪除子集請求,步驟167修改一個或多個變量來刪除一個指定的子集。在優(yōu)選的實施方案中,如果子集不空,用戶被警告。如果需要,刪除子集過程可以被設(shè)計為同時刪除該集合中的標(biāo)記。
為響應(yīng)構(gòu)造子集請求,步驟168修改一個或多個變量來定義哪個標(biāo)記屬于哪個子集。在一個實施例中,一個子集可以包含從零到集合中全部標(biāo)記的任意數(shù)目的標(biāo)記,而且可以包含其它子集。此外,一個標(biāo)記可以被多于一個的子集包含。
為響應(yīng)用戶請求以結(jié)束編輯標(biāo)記過程,步驟169清除對標(biāo)記表示的顯示,該過程轉(zhuǎn)向顯示104。打印被標(biāo)記的網(wǎng)頁圖7顯示了打印標(biāo)記頁面180可能被實現(xiàn)的一種方法。在步驟181,該過程確定被標(biāo)記文檔的集合是否為空。如果該集合為空,或者程序變量還沒有被初始化來表示該集合,一個錯誤提示在步驟182被生成,過程轉(zhuǎn)向顯示104呈現(xiàn)錯誤提示。如果該集合不空,步驟183,如果需要,將與集合中第一個引用標(biāo)記相應(yīng)的文檔取到存儲器13。在優(yōu)選的實施方案中,如果該文檔已被存儲在存儲器13中,取文檔的操作不被執(zhí)行。而在另一個實施方案中,如果該文檔不能從本地存儲器如存儲裝置28獲得,文檔將被自動地從網(wǎng)絡(luò)40獲取。
步驟184分析文檔的內(nèi)容并生成表示文檔的圖象或描繪(rendition)的“圖象信息”。圖象信息的形式由系統(tǒng)要求決定。在一些系統(tǒng)中,圖象信息依賴于裝置,這意味著圖象信息的形式和內(nèi)容打印裝置29的選擇。在另一些系統(tǒng)中,圖象信息與裝置無關(guān),但是必須符合操作系統(tǒng)強(qiáng)加的標(biāo)準(zhǔn)或說明書。步驟184還導(dǎo)致計算機(jī)系統(tǒng)10將圖象信息發(fā)送給打印裝置29,從而描繪(rendition)能夠被打印。步驟185重復(fù)步驟183和184直到被集合中引用標(biāo)記表示的所有文檔已經(jīng)被處理。然后該過程轉(zhuǎn)向顯示104。
打印過程的一個實施例也可以對被標(biāo)記文檔的一個或多個子集實現(xiàn)。這樣的一個實施例以與前述的相同的方式運作,只是對“集合”的引用應(yīng)該被理解為對合適的子集的引用。
在優(yōu)選的實施方案中,用戶被允許指定一個或多個控制圖象信息如何被生成的各個方面的偏愛選擇。例如,一個實施方案可以允許用戶指定一定的格式化特性,如顏色、下劃線、斜體、使用黑體字,及各種圖形對象是否應(yīng)該被描繪。如另一個例子,一個實施方案可以允許用戶指定文檔被描繪時插入的分頁符應(yīng)該由用戶控制或由分析文檔內(nèi)容的程序控制。存儲裝置28可以被用來存儲用戶偏愛選擇。附加特征用于兩個附加特征的過程被顯示在圖8和圖10中。圖8顯示了實現(xiàn)“標(biāo)記一切”請求的一種實現(xiàn)方法。圖10顯示了“在線書籍”被打印的一種可能的方法。這些特征在下面被描述?!皹?biāo)記一切”請求“標(biāo)記一切”請求激活一個過程以標(biāo)記一個指定的文檔并標(biāo)記被指定的文檔直接或間接引用的所有其它文檔。這個過程有點類似于形成一個集合,該集合中包含分層組織中一個特定的人及該組織中此人的所有下屬。可以預(yù)期,一個指定網(wǎng)站的所有網(wǎng)頁可以通過僅獲取該網(wǎng)站的“主頁”,然后用一個標(biāo)記一切請求容易地被標(biāo)記。
圖8中顯示的標(biāo)記一切過程是遞歸的,意味著該過程包括使用激活自身的過程和計算機(jī)例程。該過程或例程處理到發(fā)生自我調(diào)用的步驟,直到遇到終止條件,此時調(diào)用的每個實例從最后一次調(diào)用到第一次調(diào)用依次結(jié)束處理。
步驟151代表實現(xiàn)并初始化一個遞歸例程需要的行為。例如,這可以包括分配內(nèi)存或操縱堆棧來保存前一個調(diào)用的程序變量并初始化用于本次調(diào)用實例的程序變量。步驟152確定當(dāng)前文檔是否已在集合中。這個集合可以與上面討論的與標(biāo)記文檔相關(guān)的集合相同,也可以不同。下面的討論及圖8中顯示的過程假設(shè)該集合不同。
如果當(dāng)前文檔已經(jīng)在集合中,該過程轉(zhuǎn)向步驟159。步驟159代表結(jié)束一個遞歸例程需要的一些行為,例如,釋放內(nèi)存或操縱堆棧以恢復(fù)前一次調(diào)用的程序變量。如果當(dāng)前文檔還沒有在集合中,步驟153將當(dāng)前文檔加入到集合中,步驟154分析當(dāng)前文檔以提取對其它文檔的任何引用或鏈接。如果步驟155確定當(dāng)前文檔沒有到其它文檔的鏈接,該過程轉(zhuǎn)向步驟159。如果當(dāng)前文檔包含到其它文檔的鏈接,該過程轉(zhuǎn)向步驟156,該步驟“獲取”被當(dāng)前文檔引用的第一個文檔。新獲得的文檔對于在步驟157中過程的遞歸調(diào)用成為新的當(dāng)前文檔。
當(dāng)遞歸調(diào)用返回時,新獲取的文檔不再是當(dāng)前文檔。在步驟151中被認(rèn)為是當(dāng)前文檔的文檔被恢復(fù)為當(dāng)前文檔。處理轉(zhuǎn)向步驟158,該步驟確定是否被當(dāng)前文檔引用的全部文檔都已被獲取。步驟158重復(fù)步驟156和157,直到被當(dāng)前文檔引用的全部文檔都已被處理。該過程然后轉(zhuǎn)向步驟159。
步驟152的測試通過發(fā)現(xiàn)被多于一個文檔引用的文檔來提高了處理效率,并通過發(fā)現(xiàn)以循環(huán)方式相互引用的文檔而防止了無窮循環(huán)。兩種情況的例子都在圖9中顯示。文檔61表示一個文檔集合的主頁,含有對文檔62和66的直接鏈接和對其它文檔的間接鏈接。文檔62和66都被多于一個的其它文檔引用,即文檔62被文檔61、65和67引用,文檔66被文檔61、67和68引用。文檔62和66都被包含在循環(huán)鏈接的集合中,即,文檔62中到65的鏈接構(gòu)成一個循環(huán),文檔66和67中的鏈接構(gòu)成一個循環(huán),文檔66和68中的鏈接構(gòu)成另一個循環(huán),文檔66中到68的鏈接構(gòu)成又一個循環(huán)。
多重引用和循環(huán)的存在在步驟152中被發(fā)現(xiàn)。例如,參考圖9中的文檔組織,圖8的標(biāo)記一切過程從文檔61開始。在遞歸的第一層,步驟152確定文檔61不在集合中,步驟153將文檔61加入到集合中。然后步驟156和157經(jīng)過到文檔62的鏈接。在遞歸的第二層,步驟152確定文檔62不在集合中,步驟153將文檔62加入到集合中。然后步驟156和157經(jīng)過到文檔63的鏈接。在遞歸的后續(xù)層次,步驟152和153將文檔64和65加入到集合中,并經(jīng)過到下一文檔的鏈接。當(dāng)該過程經(jīng)過從文檔65到文檔62的鏈接時,步驟152確定文檔62早已在集合中并立即轉(zhuǎn)到步驟159終止該層次遞歸的處理并對文檔65恢復(fù)在步驟158中的處理。對于文檔65,步驟158確定所有鏈接都已被遍歷并進(jìn)行到步驟159。遞歸的每個層次都以類似的方式終止直至到達(dá)對文檔61的第一層遞歸。在該層次,步驟158確定存在另一個到文檔66的鏈接,該過程通過將文檔66加入到集合中繼續(xù)步驟156并在步驟157進(jìn)行遞歸調(diào)用。該過程以相似的方式繼續(xù)直到所有鏈接都已被遍歷,并且每個文檔都已被加入到集合中。
如果這里關(guān)于標(biāo)記一切過程的討論中提到的集合與前面描述的被標(biāo)記文檔的集合是同一個集合,該過程應(yīng)該略作修改,使步驟152有一個導(dǎo)向步驟154的“yes”分支。即使會降低處理效率也應(yīng)當(dāng)作這個修改,因為有可能一個文檔通過簡單的標(biāo)記請求已經(jīng)被加入到該集合中,因而該文檔中的鏈接還沒有被經(jīng)過。
剛剛描述的標(biāo)記一切過程可以被修改以限制遞歸層次的數(shù)目。這可以被如下實現(xiàn),例如,通過遞增表示當(dāng)前遞歸層次的變量,將該變量與一個指定的限制比較,或者如果已經(jīng)到達(dá)限制,處理直接轉(zhuǎn)向步驟159,或者如果還未達(dá)到限制,轉(zhuǎn)向步驟152。另一個例子,可以如下實現(xiàn),將表示遞歸當(dāng)前層次的變量與指定的限制比較,或者如果已經(jīng)到達(dá)限制,跳過遞歸調(diào)用,或者還未達(dá)到限制,變量增加并進(jìn)行遞歸調(diào)用。其它實現(xiàn)方法是可能的。沒有特別的實現(xiàn)是重要的。
如果需要,除上面描述的標(biāo)記一切請求的第一種類型外,標(biāo)記一切請求的第二種類型可以被提供,或用來替換標(biāo)記一切請求的第一種類型。根據(jù)標(biāo)記一切請求的第二種類型,只有被直接引用的文檔才被標(biāo)記。這與設(shè)置遞歸限制到一層是等價的。參考圖9,例如,對于文檔61,這標(biāo)記一切請求的第二種類型將導(dǎo)致只有文檔61,62和66被加入到集合中。標(biāo)記一切請求的第二種類型可以通過一個類似于圖8中顯示的過程實現(xiàn),只要用一個步驟替換步驟156和遞歸步驟157,該步驟將一個被直接引用的文檔加入到集合中,如果該文檔還不在集合中。在線書籍“在線書籍”是從網(wǎng)絡(luò),如萬維網(wǎng),獲取的文檔或網(wǎng)頁的一個集合。這些文檔可以在任何時候被改變。結(jié)果,這些文檔的一個拷貝在用戶獲取該拷貝后的任何時候可能變得陳舊或被放棄。本發(fā)明的一個方面提供一個用于打印在線書籍的過程,其中每個文檔或網(wǎng)頁反映可以從網(wǎng)絡(luò)得到的最新版本。該過程可能被實現(xiàn)的一種方法顯示于圖10。
步驟201得到一個引用的“書集”,該引用定義了在線書籍的內(nèi)容。該書集可以被存儲于存儲裝置28,或可以作為一個文檔從網(wǎng)絡(luò)40獲得。步驟202得到來自書集的第一個引用,并向網(wǎng)絡(luò)40提交“取”請求以獲取與該引用相應(yīng)的文檔的當(dāng)前版本。步驟203確定從網(wǎng)絡(luò)得到的文檔是否已經(jīng)存在于本地存儲器,如果不是,步驟204將文檔加入本地存儲器。如果從網(wǎng)絡(luò)得到的文檔已存在于本地存儲器,或更精確地,在本地存儲器中有一個副本,可能一致或不一致,步驟205確定本地存儲器中的副本是否已被剛從網(wǎng)絡(luò)獲得的文檔廢棄。如果副本已經(jīng)被廢棄,步驟206用剛從網(wǎng)絡(luò)獲得的文檔替換該副本。步驟207確定是否書集中所有的引用都已被處理。如果沒有,過程轉(zhuǎn)向步驟202,獲取書集中的下一個引用,并向網(wǎng)絡(luò)40提交“取”請求以獲取與該下一個引用相應(yīng)的文檔的當(dāng)前版本。重復(fù)這個過程直到步驟207確定書集中所有的引用都已被處理,此時步驟208為書集中每個文檔生成圖象信息。
一個在線書籍集合也可以被組織為如前面描述的用于被標(biāo)記文檔的一個或多個子集。對于這樣的一個實施方案,在線書籍的打印過程也可以用書集的一個或多個子集實現(xiàn)。這樣的過程可以用與前面描述的相似方式運作,只是對“書集”的引用應(yīng)該被理解為對合適的子集的引用。
用于提供在線書集特性的過程可以有多種不同的方法。例如,每個文檔可以在步驟207前逐個被描繪和打印。另一個例子,每個文檔的描繪可以被如前所述的一個或多個用戶偏愛選擇控制。又一個例子,書集可以包括表示如前面討論的“標(biāo)記一切”請求的類型的引用。標(biāo)記一切請求的應(yīng)用可以減少存儲書集所需的存儲量,而且它將允許在線書集的內(nèi)容根據(jù)文檔鏈接的改變而變化。
附圖中顯示的過程省略了許多步驟,這些步驟對于實際的實施方案可能是重要的,但對于理解本發(fā)明的概念是不重要的。例如,圖10中顯示的過程不包括處理錯誤情況,如書集中的語法錯誤,或一個或多個書集中引用的文檔不能被訪問的情況。顯然,圖示的過程不是實現(xiàn)本發(fā)明的唯一方法。
權(quán)利要求
1.用于處理文檔的方法,包括從網(wǎng)絡(luò)獲取多個文檔,接收標(biāo)記請求,并且響應(yīng)該請求存儲多個引用標(biāo)記,這些引用標(biāo)記組成一個引用集合,每個引用標(biāo)記確定所說的多個文檔中的一個文檔,以及接收一個打印請求,并且響應(yīng)該請求,生成表示具有集合中引用標(biāo)記的每個文檔的描繪(rendition)的圖象信息。
2.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用標(biāo)記的表示,從集合中刪除一個引用標(biāo)記,或?qū)现幸脴?biāo)記重新排序。
3.根據(jù)權(quán)利要求1的方法,其中一個或多個所說的文檔被存儲在高速緩存中,并且圖象信息從存儲于高速緩存中的至少一個文檔生成。
4.根據(jù)權(quán)利要求1的方法,包括接收一個標(biāo)記一切請求,并且響應(yīng)該請求,確保該集合包括由一個被選中的文檔引用的所有文檔的引用標(biāo)記。
5.根據(jù)權(quán)利要求1的方法,其中多個文檔中至少一個包含符合通用標(biāo)記語言標(biāo)準(zhǔn)的內(nèi)容。
6.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括顯示關(guān)于一個或多個具有集合中引用標(biāo)記的文檔的內(nèi)容的表示。
7.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括獲取一個或多個用戶的偏愛選擇并且根據(jù)用戶的偏愛選擇生成圖象信息。
8.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括在獲取多個文檔前接收一個開始請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)任何后續(xù)的標(biāo)記請求和結(jié)束請求,以及接收結(jié)束請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)打印請求。
9.處理文檔的方法,包括獲取一個引用的集合,每個引用確定一個相應(yīng)的文檔,將一個文檔記錄在本地存儲器中,該文檔從網(wǎng)絡(luò)獲得,被集合中的一個引用表示,并且或者未被記錄在本地存儲器中,或者被以一種為從網(wǎng)絡(luò)獲取的文檔廢棄(superceded)的形式存儲在本地存儲器中;生成表示文檔的一個描繪(rendition)的圖象信息,該文檔被集合中的引用表示。
10.根據(jù)權(quán)利要求9的方法,進(jìn)一步包括接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用的表示,從集合中刪除一個引用,或?qū)现械囊弥匦屡判颉?br>
11.根據(jù)權(quán)利要求9的方法,其中一個或多個所說的文檔被存儲于高速緩存中,而且圖象信息從至少一個已被保存在高速緩存中的文檔生成。
12.根據(jù)權(quán)利要求9的方法,其中引用的集合包括至少一個擴(kuò)展的引用,該擴(kuò)展的引用表示被根據(jù)該擴(kuò)展的引用選中的文檔引用的所有其它文檔。
13.根據(jù)權(quán)利要求9的方法,其中集合包括一個或多個標(biāo)記一切引用,每個引用一個特定的文檔以及被該特定文檔引用的所有文檔。
14.根據(jù)權(quán)利要求9的方法,進(jìn)一步包括獲取一個或多個用戶的偏愛選擇并根據(jù)該用戶的偏愛選擇生成圖象信息。
15.一種機(jī)器可讀的介質(zhì),包含被該機(jī)器執(zhí)行用于履行處理文檔的方法的指令程序,所說的方法包括從網(wǎng)絡(luò)獲取多個文檔,接收標(biāo)記請求,并且響應(yīng)該請求存儲多個引用標(biāo)記,這些引用標(biāo)記組成一個引用集合,每個引用標(biāo)記確定所說的多個文檔中的一個文檔,以及接收一個打印請求,并且響應(yīng)該請求,生成表示具有集合中引用標(biāo)記的每個文檔的描繪(rendition)的圖象信息。
16.根據(jù)權(quán)利要求15的介質(zhì),其中方法進(jìn)一步包括接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用標(biāo)記的表示,從集合中刪除一個引用標(biāo)記,或?qū)现幸脴?biāo)記重新排序。
17.根據(jù)權(quán)利要求15的介質(zhì),其中一個或多個所說的文檔被存儲在高速緩存中,并且圖象信息從存儲于高速緩存中的至少一個文檔生成。
18.根據(jù)權(quán)利要求15的介質(zhì),其中方法包括接收一個標(biāo)記一切請求,并且響應(yīng)該請求,確保該集合包括由一個被選中的文檔引用的所有文檔的引用標(biāo)記。
19.根據(jù)權(quán)利要求15的介質(zhì),其中多個文檔中至少一個包含符合通用標(biāo)記語言標(biāo)準(zhǔn)的內(nèi)容。
20.根據(jù)權(quán)利要求15的介質(zhì),其中方法進(jìn)一步包括顯示關(guān)于一個或多個具有集合中引用標(biāo)記的文檔的內(nèi)容的表示。
21.根據(jù)權(quán)利要求15的介質(zhì),其中方法進(jìn)一步包括獲取一個或多個用戶的偏愛選擇并且根據(jù)用戶的偏愛選擇生成圖象信息。
22.根據(jù)權(quán)利要求15的介質(zhì),其中方法進(jìn)一步包括在獲取多個文檔前接收一個開始請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)任何后續(xù)的標(biāo)記請求和結(jié)束請求,以及接收結(jié)束請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)打印請求。
23.一種機(jī)器可讀的介質(zhì),包含被該機(jī)器執(zhí)行用于履行處理文檔的方法的指令程序,所說的方法包括獲取一個引用的集合,每個引用確定一個相應(yīng)的文檔,將一個文檔記錄在本地存儲器中,該文檔從網(wǎng)絡(luò)獲得,被集合中的一個引用表示,并且或者未被記錄在本地存儲器中,或者被以一種為從網(wǎng)絡(luò)獲取的文檔廢棄(superceded)的形式存儲在本地存儲器中;生成表示文檔的一個描繪(rendition)的圖象信息,該文檔被集合中的引用表示。
24.根據(jù)權(quán)利要求23的介質(zhì),其中方法進(jìn)一步包括接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用的表示,從集合中刪除一個引用,或?qū)现械囊弥匦屡判颉?br>
25.根據(jù)權(quán)利要求23的介質(zhì),其中一個或多個所說的文檔被存儲于高速緩存中,而且圖象信息從至少一個已被保存在高速緩存中的文檔生成。
26.根據(jù)權(quán)利要求23的介質(zhì),其中引用的集合包括至少一個擴(kuò)展的引用,該擴(kuò)展的引用表示被根據(jù)該擴(kuò)展的引用選中的文檔引用的所有其它文檔。
27.根據(jù)權(quán)利要求23的介質(zhì),其中集合包括一個或多個標(biāo)記一切引用,每個引用一個特定的文檔以及被該特定文檔引用的所有文檔。
28.根據(jù)權(quán)利要求23的介質(zhì),其中方法進(jìn)一步包括獲取一個或多個用戶的偏愛選擇并根據(jù)該用戶的偏愛選擇生成圖象信息。
29.用于處理文檔的裝置,包括用于從網(wǎng)絡(luò)獲取多個文檔的機(jī)構(gòu),用于接收標(biāo)記請求,并且響應(yīng)該請求存儲多個引用標(biāo)記的機(jī)構(gòu),這些引用標(biāo)記組成一個引用集合,每個引用標(biāo)記確定所說的多個文檔中的一個文檔,以及用于接收一個打印請求,并且響應(yīng)該請求,生成表示具有集合中引用標(biāo)記的每個文檔的描繪(rendition)的圖象信息的機(jī)構(gòu)。
30.根據(jù)權(quán)利要求29的裝置,進(jìn)一步包括用于接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用標(biāo)記的表示,從集合中刪除一個引用標(biāo)記,或?qū)现幸脴?biāo)記重新排序的機(jī)構(gòu)。
31.根據(jù)權(quán)利要求29的裝置,其中一個或多個所說的文檔被存儲在高速緩存中,并且圖象信息從存儲于高速緩存中的至少一個文檔生成。
32.根據(jù)權(quán)利要求29的裝置,包括用于接收一個標(biāo)記一切請求,并且響應(yīng)該請求,確保該集合包括由一個被選中的文檔引用的所有文檔的引用標(biāo)記的機(jī)構(gòu)。
33.根據(jù)權(quán)利要求29的裝置,其中多個文檔中至少一個包含符合通用標(biāo)記語言標(biāo)準(zhǔn)的內(nèi)容。
34.根據(jù)權(quán)利要求29的裝置,進(jìn)一步包括用于顯示關(guān)于一個或多個具有集合中引用標(biāo)記的文檔的內(nèi)容的表示的機(jī)構(gòu)。
35.根據(jù)權(quán)利要求29的裝置,進(jìn)一步包括用于獲取一個或多個用戶的偏愛選擇并且根據(jù)用戶的偏愛選擇生成圖象信息的方法。
36.根據(jù)權(quán)利要求29的裝置,進(jìn)一步包括用于在獲取多個文檔前接收一個開始請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)任何后續(xù)的標(biāo)記請求和結(jié)束請求的機(jī)構(gòu),以及用于接收結(jié)束請求,并且響應(yīng)該請求,與網(wǎng)絡(luò)服務(wù)器交互以初始化工具以服務(wù)打印請求的機(jī)構(gòu)。
37.用于處理文檔的裝置,包括用于獲取一個引用的集合的機(jī)構(gòu),每個引用確定一個相應(yīng)的文檔,用于將一個文檔記錄在本地存儲器中的機(jī)構(gòu),該文檔從網(wǎng)絡(luò)獲得,被集合中的一個引用表示,并且或者未被記錄在本地存儲器中,或者被以一種為從網(wǎng)絡(luò)獲取的文檔廢棄(superceded)的形式存儲在本地存儲器中;用于生成表示文檔的一個描繪(rendition)的圖象信息的機(jī)構(gòu),該文檔被集合中的引用表示。
38.根據(jù)權(quán)利要求37的裝置,進(jìn)一步包括接收一個或多個編輯請求,并且響應(yīng)該請求顯示集合中引用的表示,從集合中刪除一個引用,或?qū)现械囊弥匦屡判虻臋C(jī)構(gòu)。
39.根據(jù)權(quán)利要求37的裝置,其中一個或多個所說的文檔被存儲于高速緩存中,而且圖象信息從至少一個已被保存在高速緩存中的文檔生成。
40.根據(jù)權(quán)利要求37的裝置,其中引用的集合包括至少一個擴(kuò)展的引用,該擴(kuò)展的引用表示被根據(jù)該擴(kuò)展的引用選中的文檔引用的所有其它文檔。
41.根據(jù)權(quán)利要求37的裝置,其中集合包括一個或多個標(biāo)記一切引用,每個引用一個指定的文檔及被該文檔引用的所有文檔。
42.根據(jù)權(quán)利要求37的裝置,進(jìn)一步包含用于獲取一個或多個用戶的偏愛選擇并根據(jù)用戶的偏愛選擇生成圖象信息的裝置。
全文摘要
在網(wǎng)絡(luò)客戶機(jī)上執(zhí)行的一個程序提供了一個用于打印網(wǎng)頁的工具。該工具允許用戶標(biāo)記從網(wǎng)絡(luò)獲得的文檔用于并發(fā)打印。每個文檔的引用聚集成一個引用標(biāo)記集合。每個引用標(biāo)記表示可以顯示,且該集合可編輯以刪除或重排序選中的引用標(biāo)記。單個用戶請求導(dǎo)致該工具打印被集合中引用標(biāo)記引用的文檔的描繪。該描繪可根據(jù)用戶偏愛選擇被生成。該工具還能夠具有允許用戶方便地標(biāo)記能訪問到的所有網(wǎng)頁并打印在線書籍的一組網(wǎng)頁。
文檔編號G06F17/30GK1245928SQ9911054
公開日2000年3月1日 申請日期1999年7月29日 優(yōu)先權(quán)日1998年7月29日
發(fā)明者S·內(nèi)爾森, 李家欣, T·D·赫夫米雷 申請人:精工愛普生株式會社