專利名稱:矢量圖形文檔中的列表檢測(cè)的制作方法
矢量圖形文檔中的列表檢測(cè) 背景
如可移植文檔格式(PDF)等基于矢量圖形的文檔交換格式提供了允許以 標(biāo)準(zhǔn)化方式為用戶解釋和顯示文檔的一組呈現(xiàn)指令,而不要求用戶的計(jì)算機(jī)具 有用以創(chuàng)建該內(nèi)容的原始軟件應(yīng)用程序。MICROSOFT⑧創(chuàng)建了 XML文件規(guī) 范(XML Paper Specification, XPS)作為一種基于矢量圖形的文檔格式,以允 許以標(biāo)準(zhǔn)化的和有意義的方式來呈現(xiàn)XML內(nèi)容?;谑噶繄D形的文檔的一個(gè) 問題是閱覽應(yīng)用程序除了如何將一特定文檔正確呈現(xiàn)之外,可能對(duì)其真實(shí)內(nèi)容 只有極少的了解。例如,閱覽應(yīng)用程序可能不知道該文檔的內(nèi)容包括一個(gè)或多 個(gè)標(biāo)項(xiàng)目符號(hào)的或標(biāo)號(hào)的列表。
列表能以比純文本更易于閱讀和理解的方式來傳遞信息?;谑噶繄D形的 文檔中列表的存在在將該文檔轉(zhuǎn)換成目標(biāo)應(yīng)用程序中所使用的對(duì)最終用戶更 友好的格式時(shí)帶來了具體的問題。閱覽應(yīng)用程序會(huì)具有描述如何繪制列表的信 息,但其不一定含有指示其正在繪制的是一個(gè)列表的任何信息,所以其能力可
能被限于以對(duì)用戶有意義的方式讀取或復(fù)制列表。有意義地呈現(xiàn)列表的問題因 可能存在嵌套列表,即列表中的列表而變復(fù)雜。取標(biāo)號(hào)為l、 2、 3的主列表作 為示例。假定條目1由其下標(biāo)號(hào)為a、 b和c的條目組成。在由小寫字母指定 的該列表中,"a"包含條目l)和2)—一這實(shí)際上是第三個(gè)列表。從該示例中 可以看到,該列表從編程觀點(diǎn)來看實(shí)際上由三個(gè)列表組成。
公開了允許檢測(cè)基于矢量圖形的文檔,包括基于XML的文檔中的列表并 以有意義的方式來呈現(xiàn)該列表的各種技術(shù)和方法。標(biāo)項(xiàng)目符號(hào)的列表以及標(biāo)號(hào) 的列表可以基于一組規(guī)則來標(biāo)識(shí)。所公開的一種或多種技術(shù)和方法通過檢測(cè)并 區(qū)分各種模式來做到這一點(diǎn)。這包括搜索可能開始列表的字符、符號(hào)、數(shù)字、 字母和/或圖像。該技術(shù)確定其是否表示列表的開頭。在后續(xù)行中搜索模式以確定列表是否存在。此外,使用邏輯以搜索并標(biāo)識(shí)嵌套列表。作為示例而非局限,
該技術(shù)可以標(biāo)識(shí)其中嵌套了標(biāo)號(hào)的列表的標(biāo)項(xiàng)目符號(hào)的列表,反之亦然。該系
統(tǒng)允許將內(nèi)容以更適合由目標(biāo)應(yīng)用程序輸出或使用的經(jīng)修改的格式輸出到目
標(biāo)應(yīng)用程序。另選地或另外地,列表可被識(shí)別并轉(zhuǎn)換到一屏幕閱讀器,該屏幕 閱讀器理解該輸入并利用語音輸出技術(shù)來形成表示該列表的正確的可聽聲音。
提供本概述以便以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也 不旨在用于幫助確定所要求保護(hù)的主題的范圍。
附圖簡述
圖1是一個(gè)實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)的圖解視圖。
圖2是一個(gè)實(shí)現(xiàn)中在圖1的計(jì)算機(jī)系統(tǒng)上的操作的列表解析程序的圖解視圖。
圖3是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的高級(jí)處理流程圖。
圖4是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的處理流程圖,示出了在從矢量圖形內(nèi) 容中檢測(cè)和呈現(xiàn)標(biāo)項(xiàng)目符號(hào)的列表時(shí)所涉及的各個(gè)階段。
圖5是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的處理流程圖,示出了在從矢量圖形內(nèi) 容中檢測(cè)和呈現(xiàn)標(biāo)號(hào)的或標(biāo)字母的列表時(shí)所涉及的用戶選擇和各個(gè)階段。
圖6是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的處理流程圖,示出了在檢測(cè)和呈現(xiàn)嵌 套列表時(shí)所涉及的各個(gè)階段。
圖7是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的流程圖,其示出了從基于矢量圖形的 文檔到目標(biāo)應(yīng)用程序的復(fù)制和粘貼過程以及在該目標(biāo)應(yīng)用程序中呈現(xiàn)列表。
圖8是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的圖表,其示出了XML格式的指定列 表的矢量圖形文檔的一部分。
圖9是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的模擬屏幕,其示出了圖8的含有列表 的XML代碼如何用文檔呈現(xiàn)實(shí)用程序來可視化。
圖10是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的模擬屏幕,其示出了圖8的XML 列表內(nèi)容在被復(fù)制到使用不同文檔格式的另一應(yīng)用程序后如何被呈現(xiàn)。
圖11是用于圖1的系統(tǒng)的一個(gè)實(shí)現(xiàn)的流程圖,其示出了為列表呈現(xiàn)可聽
輸出的屏幕閱讀器。
詳細(xì)描述
出于促進(jìn)對(duì)本發(fā)明的原理的理解的目的,現(xiàn)將對(duì)圖中所示的各實(shí)施方式進(jìn) 行參考,并且也將使用特定的語言來描述這些實(shí)施方式。然而,將理解的是, 并無意由此作出范圍上的限制。在所述實(shí)施方式中的任何更改和進(jìn)一步修正, 以及對(duì)在此所述的原理的進(jìn)一步應(yīng)用都被設(shè)想是本領(lǐng)域的技術(shù)人員通常能想 到的。
該系統(tǒng)可以在一般的上下文中被描述為用于基于XPS文檔或其它基于矢
量圖形的文檔格式中所給出的呈現(xiàn)指令來檢測(cè)列表和列表?xiàng)l目的應(yīng)用程序,但 該系統(tǒng)還適合除此之外的其它目的。在此所描述的一項(xiàng)或多項(xiàng)技術(shù)可以被實(shí)現(xiàn)
為諸如MICROSOFT Office Word、 MICROSOFT⑧Office POWERPOINT⑧、 Adobe Acrobat、 XPS閱覽器等軟件程序中的特征,和/或來自于允許創(chuàng)建列表 或可以利用列表的任何其它類型的程序或服務(wù)的特征。如在此更詳細(xì)地描述 的,在該系統(tǒng)的一個(gè)實(shí)現(xiàn)中,列表被識(shí)別并被轉(zhuǎn)換成目標(biāo)應(yīng)用程序中所使用的 格式。在另一實(shí)現(xiàn)中,列表可被識(shí)別并被轉(zhuǎn)換到一屏幕閱讀器,該屏幕閱讀器 理解該輸入并利用語音輸出技術(shù)來形成標(biāo)識(shí)該列表的正確的可聽聲音,閱讀該 列表中的文本,然后對(duì)正在聽的人解釋該列表的順序。
如圖1所示,用于實(shí)現(xiàn)該系統(tǒng)的一個(gè)或多個(gè)部分的一種示例性計(jì)算機(jī)系統(tǒng) 包括諸如計(jì)算設(shè)備100等計(jì)算設(shè)備。在其最基本的配置中,計(jì)算設(shè)備100通常 包括至少一個(gè)處理單元102和存儲(chǔ)器104。取決于計(jì)算設(shè)備的確切配置和類型, 存儲(chǔ)器104可以是易失性的(如RAM)、非易失性的(如ROM、閃存等)或 這兩者的某種組合。這一最基本配置通過虛線106示于圖1中。
另外,設(shè)備100還可具有附加的特征/功能。例如,設(shè)備100還可以包括 附加存儲(chǔ)(可移動(dòng)和/或不可移動(dòng)的),包括但不限于磁或光盤或帶。這樣的附 加存儲(chǔ)以可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110示于圖1中。計(jì)算機(jī)存儲(chǔ)介質(zhì)包 括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的 任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。存儲(chǔ)器 104、可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算
機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、 CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)存儲(chǔ)、盒式磁帶、磁帶、磁盤存 儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可用以存儲(chǔ)所需信息并可由計(jì)算機(jī)100訪問的任何其 它介質(zhì)。任何這種計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備100的一部分。
計(jì)算設(shè)備100包括允許計(jì)算設(shè)備100與諸如XPS文檔或其它基于矢量圖 形的文檔等一個(gè)或多個(gè)文檔115進(jìn)行通信的一個(gè)或多個(gè)通信連接114。計(jì)算設(shè) 備100還可以與一個(gè)或多個(gè)其它計(jì)算機(jī)和/或應(yīng)用程序113進(jìn)行通信。設(shè)備100 也可以具有輸入設(shè)備112,如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備 等等。還可以包括諸如顯示器、揚(yáng)聲器、打印機(jī)、屏幕閱讀器等的輸出設(shè)備111 。 這些設(shè)備是本領(lǐng)域中公知的,因而無需在此處詳加討論。
現(xiàn)在轉(zhuǎn)向圖2,并繼續(xù)參考圖l,示出了在計(jì)算設(shè)備100上操作的列表識(shí) 別應(yīng)用程序200。列表識(shí)別應(yīng)用程序200是駐留于計(jì)算設(shè)備100上的應(yīng)用程序 中的一個(gè)。另選地或另外地,列表識(shí)別應(yīng)用程序200的一個(gè)或多個(gè)部分可以是 系統(tǒng)存儲(chǔ)器104的一部分、可以在其它計(jì)算機(jī)和/或應(yīng)用程序113上、或可以是 計(jì)算機(jī)軟件領(lǐng)域的技術(shù)人員能想到的其它此類變型。
列表識(shí)別應(yīng)用程序200包括負(fù)責(zé)實(shí)現(xiàn)在此描述的一些或全部技術(shù)的程序 邏輯204。程序邏輯204包括用以檢測(cè)標(biāo)項(xiàng)目符號(hào)的或標(biāo)號(hào)的列表的邏輯206 和用以應(yīng)用遞歸算法以檢測(cè)列表中的嵌套列表的邏輯208。程序邏輯204還包 括用于以更適合輸出或使用的經(jīng)修改的格式來將(諸)列表的內(nèi)容輸出或顯示 到如文件、顯示設(shè)備、屏幕閱讀器和/或另一應(yīng)用程序等的邏輯210。程序邏輯 220包括用以操作該應(yīng)用程序的其它邏輯。在一個(gè)實(shí)現(xiàn)中,程序邏輯204可用 于諸如使用對(duì)程序邏輯204中的一個(gè)過程的單次調(diào)用而通過編程從另一程序調(diào) 用。
在一個(gè)實(shí)現(xiàn)中,程序邏輯204駐留于計(jì)算設(shè)備100上。然而,可以理解, 程序邏輯204可以另選地或另外地被具體化為一個(gè)或多個(gè)計(jì)算機(jī)上和/或不同 的變型中的計(jì)算機(jī)可執(zhí)行指令。作為一個(gè)非限制性示例,程序邏輯204的一個(gè) 或多個(gè)部分可以另選地或另外地被實(shí)現(xiàn)為在需要時(shí)被調(diào)用的基于Web的應(yīng)用 程序。
現(xiàn)在轉(zhuǎn)向圖3,并繼續(xù)參考圖1-2,更詳細(xì)地描述了用以實(shí)現(xiàn)列表識(shí)別應(yīng)
用程序200的一種或多種實(shí)現(xiàn)的各個(gè)階段。圖3是用于列表識(shí)別應(yīng)用程序200 的高級(jí)流程圖。在一種形式中,圖3的過程至少部分地在計(jì)算設(shè)備100的操作 邏輯中實(shí)現(xiàn)。雖然列表識(shí)別應(yīng)用程序200在此處的某一些實(shí)現(xiàn)中被描述為識(shí)別 XPS文檔或類似的基于XML的文檔格式中的列表,但可以理解,在其它實(shí)現(xiàn) 中,列表識(shí)別應(yīng)用程序200可與利用矢量圖形的任何類型的文檔格式一起工作。 在此所使用的術(shù)語基于矢量圖形的文檔旨在包括包含諸如用以呈現(xiàn)文本、線條 和/或填滿的形狀的指令等的用以將文檔呈現(xiàn)到輸出設(shè)備上的指令的任何類型 的文檔。作為另一非限制性示例,呈現(xiàn)指令包括諸如提供關(guān)于標(biāo)項(xiàng)目符號(hào)的和 域標(biāo)號(hào)的列表?xiàng)l目的位置和/或內(nèi)容的細(xì)節(jié)的指令等列表呈現(xiàn)指令。
該過程在圖3上從起始點(diǎn)240處開始,其中接收通過編程來自于程序的選 擇或來自于用戶的選擇,以訪問部分(如一頁)或全部諸如XPS文檔或類似 的基于XML的文檔等基于矢量圖形的文檔(階段242)。如何接收選擇的一 些非限制性示例包括用戶所打開的文件或用戶所粘貼到應(yīng)用程序中的文本。在 一個(gè)實(shí)現(xiàn)中,系統(tǒng)讀取該基于矢量圖形的文檔(階段244)并執(zhí)行程序邏輯206 以確定是否存在一個(gè)或多個(gè)列表(階段246)。列表識(shí)別應(yīng)用程序200執(zhí)行程 序邏輯206來分析該列表(階段248)。列表識(shí)別應(yīng)用程序200執(zhí)行程序邏輯 210來以更適合輸出或使用的經(jīng)修改的格式將該一個(gè)或多個(gè)列表輸出到如文 件、屏幕閱讀器和/或另一應(yīng)用程序(階段250)。在一個(gè)實(shí)現(xiàn)中,該經(jīng)修改的 格式包括目標(biāo)應(yīng)用程序所理解的格式。該過程結(jié)束于結(jié)束點(diǎn)252。
現(xiàn)在轉(zhuǎn)向圖4-5,并繼續(xù)參考圖2-3,示出了在檢測(cè)各種列表時(shí)所涉及的 各個(gè)階段。圖4示出了在一個(gè)實(shí)現(xiàn)中用以檢測(cè)列表內(nèi)容的各個(gè)階段。在一種形 式中,圖4的過程至少部分地在計(jì)算設(shè)備100的操作邏輯中實(shí)現(xiàn)。該過程在起 始點(diǎn)320處開始,其中系統(tǒng)通過編程或通過用戶選擇接收基于矢量圖形的文檔 (階段322)。掃描該文檔內(nèi)容以尋找一個(gè)或多個(gè)標(biāo)項(xiàng)目符號(hào)的列表的存在(階 段323)。
系統(tǒng)檢測(cè)一行中可能是列表開頭的首字符或圖像(324)。作為示例而非 局限,該字符可以是連字號(hào)(-)、星號(hào)(*)、大于號(hào)(>)、加號(hào)(+ )或是 可以表示標(biāo)項(xiàng)目符號(hào)的列表的開頭的另一鍵盤字符或圖像。系統(tǒng)通過掃描下一 行以查看它是否以相同的字符開始來確定那是否是列表的開頭(判定點(diǎn)326)。
如果是,則進(jìn)行另外的考慮來確定兩行是否都組成列表中的條目。例如,如果 正被考慮的行上的首字符的左縮進(jìn)與第一行上的首字符相同(判定點(diǎn)328),
則系統(tǒng)還要檢驗(yàn)來査看關(guān)于首單詞的左縮進(jìn)是否相同(判定點(diǎn)332)。
在一個(gè)實(shí)現(xiàn)中,如果滿足所有這些準(zhǔn)則,則該條目就被認(rèn)為是列表?xiàng)l目。 在另一實(shí)現(xiàn)中,使用這些準(zhǔn)則中的某一些和/或另外的準(zhǔn)則來確定該條目是標(biāo)項(xiàng)
目符號(hào)的列表?xiàng)l目。系統(tǒng)繼續(xù)檢驗(yàn)該列表中的更多條目(階段334)。如果還 沒發(fā)現(xiàn)列表的結(jié)尾(判定點(diǎn)336),則該過程以查找?guī)в邢嗤淖址驁D像的 另一連續(xù)的條目開始來重復(fù)(階段326)。
如果系統(tǒng)評(píng)估該一個(gè)或多個(gè)不同列表準(zhǔn)則并確定該條目不是先前列表的 一部分,則其隨后就檢驗(yàn)來查看該條目是否是嵌套的列表的一部分(判定點(diǎn)
330)。如果檢測(cè)到一個(gè)可能的嵌套列表(判定點(diǎn)330),則還評(píng)估該列表準(zhǔn)則 來尋找可能的嵌套列表。 一旦標(biāo)識(shí)了所有可能的列表并到達(dá)了該文檔的結(jié)尾 (判定點(diǎn)331),則系統(tǒng)就執(zhí)行用以將該內(nèi)容改變?yōu)槟繕?biāo)文檔的格式的邏輯(階 段338),然后適當(dāng)?shù)仫@示該內(nèi)容(階段340)。該過程結(jié)束于結(jié)束點(diǎn)342。
現(xiàn)在轉(zhuǎn)向圖5,并繼續(xù)參考圖2-3,示出了用以檢測(cè)并分析基于矢量圖形 的文檔中為標(biāo)號(hào)的或標(biāo)字母的列表的內(nèi)容的各個(gè)階段。在一種形式中,圖5的 過程至少部分地在計(jì)算設(shè)備100的操作邏輯中實(shí)現(xiàn)。該過程在起始點(diǎn)370處開 始,其中系統(tǒng)通過編程或通過用戶選擇接收基于矢量圖形的文檔(階段372)。 掃描該文檔內(nèi)容以尋找一個(gè)或多個(gè)列表的存在(374)。系統(tǒng)檢測(cè)一行的可能 是列表的開頭的首個(gè)數(shù)字或字母(376)。作為示例而非局限,該字符可以是 羅馬數(shù)字或算術(shù)數(shù)字、單個(gè)或復(fù)合數(shù)字、大寫字母或小寫字母。
系統(tǒng)通過掃描下一行以查看其是否以相同的字符開始來檢測(cè)那是否是列 表的開頭(判定點(diǎn)378)。如果是,則進(jìn)行另外的考慮來確定兩行是否都組成 列表中的條目。這些考慮包括但不限于,該數(shù)字或字母的左縮進(jìn)(階段382)、 該數(shù)字或字母后的首單詞的左縮進(jìn)(階段384)以及下一個(gè)單詞的左縮進(jìn)(階 段386)對(duì)于兩條目來說是否都相同。在一個(gè)實(shí)現(xiàn)中,如果滿足所有這些準(zhǔn)則, 則該條目就被認(rèn)為是標(biāo)號(hào)的或標(biāo)字母的列表?xiàng)l目。在另一實(shí)現(xiàn)中,使用這些準(zhǔn) 則中的某一些來確定該條目是標(biāo)號(hào)的或標(biāo)字母的列表?xiàng)l目。系統(tǒng)繼續(xù)檢驗(yàn)列表 中的更多條目(階段388)。如果還沒發(fā)現(xiàn)列表的結(jié)尾(判定點(diǎn)390),則該
過程以査找?guī)в羞B續(xù)字母或數(shù)字的另一連續(xù)條目開始來重復(fù)(階段378)。
如果系統(tǒng)評(píng)估該一個(gè)或多個(gè)不同列表準(zhǔn)則并確定該條目不是先前列表的
一部分,則其隨后檢驗(yàn)來査看該條目是否是嵌套列表的一部分(判定點(diǎn)380)。 如果檢測(cè)到一個(gè)可能的嵌套列表(判定點(diǎn)380),則重復(fù)這些階段來尋找嵌套 列表。 一旦標(biāo)識(shí)了所有可能的列表并到達(dá)了該文檔的結(jié)尾(判定點(diǎn)391),則 系統(tǒng)就執(zhí)行用以將該內(nèi)容改變?yōu)槟繕?biāo)文檔的格式的邏輯(階段392),然后適 當(dāng)?shù)仫@示該內(nèi)容(階段394)。該過程結(jié)束于結(jié)束點(diǎn)396。
如前面所討論的,在一個(gè)實(shí)現(xiàn)中,系統(tǒng)也可以檢測(cè)嵌套列表。作為示例而 非局限,系統(tǒng)可以檢測(cè)標(biāo)號(hào)的或標(biāo)字母的列表的標(biāo)項(xiàng)目符號(hào)的列表,以及標(biāo)號(hào) 的或標(biāo)字母的列表中的標(biāo)號(hào)的或標(biāo)字母的列表。圖6是用于一個(gè)實(shí)現(xiàn)的過程流 程圖,其示出了檢測(cè)嵌套列表并將其正確顯示時(shí)所涉及的一個(gè)或多個(gè)階段。在 一種形式中,圖6的過程至少部分地在計(jì)算設(shè)備100的操作邏輯中實(shí)現(xiàn)。在一 個(gè)實(shí)現(xiàn)中,該過程可以標(biāo)識(shí)以多種級(jí)別存在于其它列表中的任意數(shù)量的嵌套列 表。該過程在起始點(diǎn)410處開始,其中系統(tǒng)識(shí)別列表的存在(階段412),以 及第一個(gè)列表?xiàng)l目的開頭(階段414)。系統(tǒng)識(shí)別該第一個(gè)條目不是先前已識(shí) 別的列表的延續(xù),而可能是嵌套列表的第一個(gè)條目(階段416)。應(yīng)用規(guī)則以 檢驗(yàn)下一行來查看其是否是嵌套列表的一部分。這些規(guī)則包括但不限于,檢驗(yàn) 下一行的首字符(階段418)、下一行的首字符的縮進(jìn)(階段420)以及下一 行該字符后的首單詞的縮進(jìn)(階段422)。如果發(fā)現(xiàn)兩個(gè)或更多條目滿足所有 這些準(zhǔn)則,則執(zhí)行用于分析嵌套列表的規(guī)則(階段424)。
也檢查該嵌套列表中的條目(階段426)來查看是否存在不止一級(jí)的嵌套。 如果找到(階段428),則系統(tǒng)執(zhí)行遞歸算法以檢驗(yàn)嵌套列表的第二級(jí)中的條 目。這將持續(xù)到對(duì)所有等級(jí)的列表標(biāo)識(shí)了所有條目為止。條目被相應(yīng)地分組并 編譯,以使它們可以被正確地顯示在屏幕上或在目標(biāo)應(yīng)用程序中打印(階段 430)。該過程結(jié)束于結(jié)束點(diǎn)432。
圖7是高級(jí)流程圖,示出了用戶可以用來將列表內(nèi)容從基于矢量圖形的文 檔中復(fù)制和粘貼到利用一不同格式的目標(biāo)應(yīng)用程序或文檔中的過程。在一種形 式中,圖7的過程至少部分地在計(jì)算設(shè)備100上的操作邏輯中實(shí)現(xiàn)。該過程在 起始點(diǎn)450處開始,此時(shí)用戶從源應(yīng)用程序中的基于矢量圖形的文檔中選擇內(nèi)
容時(shí)(階段452)。用戶選擇將該內(nèi)容復(fù)制并粘貼到目標(biāo)應(yīng)用程序中的選項(xiàng)(階
段454)。源應(yīng)用程序檢測(cè)列表的存在并基于該文檔中存在的列表呈現(xiàn)指令來 解釋該列表(階段456)。源應(yīng)用程序?qū)⒃搩?nèi)容轉(zhuǎn)換成更適合在目標(biāo)應(yīng)用程序 中輸出或使用的經(jīng)修改的格式(階段458)。經(jīng)修改的內(nèi)容的一些非限制性示 例包括豐富文本、不包括呈現(xiàn)指令的XML、該內(nèi)容的某一些或全部的圖形表 示以及許多其它變型。源應(yīng)用程序?qū)⒔?jīng)修改的內(nèi)容提供給目標(biāo)應(yīng)用程序(階段 460)。作為一個(gè)非限制性示例,源應(yīng)用程序可以通過將其置于可用以通過編 程或通過用戶選擇而將該內(nèi)容粘貼到目標(biāo)應(yīng)用程序的剪切板上來提供該經(jīng)修 改的內(nèi)容。目標(biāo)應(yīng)用程序適當(dāng)?shù)剌敵龌蚴褂迷摻?jīng)修改的內(nèi)容,如為用戶將其呈 現(xiàn)到輸出設(shè)備上(階段462)。該過程結(jié)束于結(jié)束點(diǎn)464。
現(xiàn)轉(zhuǎn)向圖8-10,示出了模擬圖表和屏幕以顯示本機(jī)XML代碼和標(biāo)簽的一 個(gè)實(shí)現(xiàn),以及該XML代碼如何被諸如閱覽器等源應(yīng)用程序解釋,然后如何被 顯示在目標(biāo)應(yīng)用程序中。圖8示出關(guān)于部分文檔的XML代碼500,其在一個(gè) 實(shí)現(xiàn)中可以從諸如XPS文檔或其它基于矢量圖形的文檔115等的源處接收。 在所示的示例中,該XML代碼是使用XML文件規(guī)范(XPS)句法來書寫的。 在所示的示例中,文檔500包括各種包含關(guān)于特定列表?xiàng)l目的規(guī)范的標(biāo)簽,如 標(biāo)簽502。也可使用眾多其它列表指示符。此外, 一些、全部、另外的和/或其 它標(biāo)簽和/或文本內(nèi)容也可以在文檔500中使用。在其它實(shí)現(xiàn)中,根本沒使用 XML標(biāo)簽。
圖9示出關(guān)于一個(gè)實(shí)現(xiàn)的模擬屏幕508,其示出XML內(nèi)容500在閱覽器 應(yīng)用程序中如何以對(duì)用戶更友好的方式顯示。注意,項(xiàng)目符號(hào)510和520用以 圖形地示出列表。
圖10示出用于一個(gè)實(shí)現(xiàn)的模擬屏幕530,其顯示目標(biāo)應(yīng)用程序中的被復(fù) 制、轉(zhuǎn)換并且粘貼到目標(biāo)應(yīng)用程序中或剛從該目標(biāo)應(yīng)用程序打開然后就被轉(zhuǎn)換 的XML內(nèi)容。注意,顯示了主列表560以及嵌套列表570、 580和585,根據(jù) 列表是否是嵌套的,每個(gè)列表都有不同的項(xiàng)目符號(hào)和縮進(jìn)。還示出了第二列表 590的起點(diǎn),連同伴隨的嵌套列表595。
圖11示出在一個(gè)實(shí)現(xiàn)中使用列表識(shí)別程序200的一種形式的屏幕閱讀器 的流程圖。在一種形式中,圖11的過程至少部分地在計(jì)算設(shè)備100的操作邏
輯中實(shí)現(xiàn)。屏幕閱讀器向不能清楚地看到屏幕的人描述計(jì)算機(jī)屏幕上有什么。 屏幕閱讀器對(duì)視覺受損的人是有用的工具。該過程在起始點(diǎn)600處開始,在此
用戶或系統(tǒng)選擇基于矢量圖形的文檔中的內(nèi)容(階段602)。屏幕閱讀器解釋
該文檔內(nèi)容,包括列表(階段604),并將以有意義的方式可聽地傳達(dá)該信息 (階段606)。作為示例而非局限,屏幕閱讀器對(duì)標(biāo)項(xiàng)目符號(hào)的列表的可聽輸
出可以包括這些口述單詞"標(biāo)項(xiàng)目符號(hào)的列表。第一個(gè)項(xiàng)目符號(hào)[閱讀該 文本];第二個(gè)項(xiàng)目符號(hào)[閱讀該文本]。"作為示例而非局限,屏幕閱讀器對(duì) 標(biāo)號(hào)的列表的可聽輸出可以包括這些口述單詞"標(biāo)號(hào)的列表。條目數(shù)字l:[閱 讀該文本];條目數(shù)字2:[閱讀該文本]。"許多其它變型也是可能的。該過程結(jié)
束于結(jié)束點(diǎn)608。
雖然以對(duì)結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解, 所附權(quán)利要求書中定義的主題不一定要限于上述具體特征或動(dòng)作。相反,上述 具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式來公開的。落入在此所描述的 和/或所附權(quán)利要求所描述的實(shí)現(xiàn)的精神之內(nèi)的所有等效技術(shù)方案、更改和修正 都期望受到保護(hù)。
例如,計(jì)算機(jī)軟件領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到,在此討論的示例中所描 述的客戶機(jī)和/或服務(wù)器安排、用戶界面屏幕內(nèi)容和/或數(shù)據(jù)布局可以在一臺(tái)或 多臺(tái)計(jì)算機(jī)上不同地組織以包括比各示例中所描繪的更少或更多的選項(xiàng)或特 征。
權(quán)利要求
1. 一種用以識(shí)別基于矢量圖形的文檔中的列表的方法,包括下列步驟接收原始格式的文檔,所述原始格式具有用于所述文檔中的至少一個(gè)列表的一組列表呈現(xiàn)指令(242);分析所述文檔以確定所述文檔中存在至少一個(gè)列表(246)并標(biāo)識(shí)所述列表的一組內(nèi)容(248);以及將所述列表輸出到一輸出介質(zhì),所述輸出介質(zhì)以比所述原始格式更適合輸出的經(jīng)修改的格式來呈現(xiàn)所述列表(250)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述文檔是以基于XML的 文檔格式來存儲(chǔ)的(242)。
3. 如權(quán)利要求1所述的方法,其特征在于,所述輸出介質(zhì)是顯示器(250)。
4. 如權(quán)利要求l所述的方法,其特征在于,所述輸出介質(zhì)是屏幕閱讀器, 并且其中,所述列表中的一組內(nèi)容被可聽地描述給用戶(250)。
5. 如權(quán)利要求1所述的方法,其特征在于,所述輸出介質(zhì)是另一系統(tǒng) (250)。
6. 如權(quán)利要求l所述的方法,其特征在于,所述至少一個(gè)列表是標(biāo)項(xiàng)目 符號(hào)的列表(324)。
7. 如權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)列表是標(biāo)號(hào)的 列表(376)。
8. 如權(quán)利要求l所述的方法,其特征在于,所述分析文檔的步驟包括 標(biāo)識(shí)具有相同首字符(326)、具有所述首字符的相同縮進(jìn)(328)以及具有關(guān)于首單詞的相同單詞縮進(jìn)(332)的多個(gè)列表?xiàng)l目。
9. 如權(quán)利要求l所述的方法,其特征在于,所述分析文檔的步驟包括 標(biāo)識(shí)具有連續(xù)首字符(378)、具有關(guān)于所述首字符的相同縮進(jìn)(382)以及具有關(guān)于首單詞的相同單詞縮進(jìn)(384)的多個(gè)列表?xiàng)l目。
10. 如權(quán)利要求l所述的方法,其特征在于,所述分析的文檔步驟可用于 檢測(cè)嵌套列表(416),并且其中,所述輸出列表的步驟可用于以所述經(jīng)修改 的格式來呈現(xiàn)所述嵌套列表(430)。
11. 如權(quán)利要求l所述的方法,其特征在于,當(dāng)用戶選擇將所述文檔的一 部分復(fù)制到目標(biāo)應(yīng)用程序的選項(xiàng)時(shí),執(zhí)行所述接收步驟(454);其中所述讀取及分析步驟由源應(yīng)用程序執(zhí)行(456);其中所述經(jīng)修改的格式由所述源應(yīng) 用程序創(chuàng)建(458),然后被發(fā)送到所述目標(biāo)應(yīng)用程序以輸出到所述輸出介質(zhì)(460);并且其中,所述經(jīng)修改的格式是所述目標(biāo)應(yīng)用程序所使用的格式(458)。
12. —種具有用于使得計(jì)算機(jī)執(zhí)行如權(quán)利要求1所述的步驟的計(jì)算機(jī)可執(zhí) 行指令的計(jì)算機(jī)可讀介質(zhì)(200)。
13. —種具有用于使得計(jì)算機(jī)執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述步驟包括使用一組規(guī)則檢測(cè)基于矢量圖形的文檔中的至少一個(gè)列表(324),所述 規(guī)則包括通過應(yīng)用第一邏輯以確定多個(gè)列表?xiàng)l目是否具有相同的首字符 (326)、具有所述首字符的相同縮進(jìn)(328)以及具有關(guān)于首單詞的相同 單詞縮進(jìn)(332),來檢測(cè)是否存在標(biāo)項(xiàng)目符號(hào)的列表;以及通過應(yīng)用第二邏輯以確定所述多個(gè)列表?xiàng)l目是否具有連續(xù)的首字符 (378)、具有關(guān)于所述首字符的相同縮進(jìn)(382)以及具有關(guān)于首單詞的 相同單詞縮進(jìn)(384),來檢測(cè)是否存在標(biāo)號(hào)的列表; 將所述至少一個(gè)列表轉(zhuǎn)換成經(jīng)修改的格式(458);以及 將所述經(jīng)修改的格式輸出到輸出介質(zhì)(462)。
14. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述文檔是XML 文檔(242)。
15. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述輸出介質(zhì) 選自由顯示設(shè)備、文件、屏幕閱讀器和單獨(dú)的應(yīng)用程序所組成的組(250)。
16. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述至少一個(gè) 列表是標(biāo)項(xiàng)目符號(hào)的列表(324)。
17. 如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述至少一個(gè) 列表是標(biāo)號(hào)的列表(324)。
18. —種用于解釋基于矢量圖形的文檔的方法,包括下列步驟 從用戶接收復(fù)制部分內(nèi)容的輸入,所述內(nèi)容含有包含一組列表呈現(xiàn)指令的 原始格式(454);解釋所述列表呈現(xiàn)指令以檢測(cè)存在于所述文檔中的至少一個(gè)列表(456); 將所述內(nèi)容轉(zhuǎn)換成比所述原始格式更適合在目標(biāo)應(yīng)用程序中輸出的經(jīng)修 改的格式(458);以及將所述內(nèi)容以所述經(jīng)修改的格式提供給所述目標(biāo)應(yīng)用程序以供輸出 (460)。
19. 如權(quán)利要求18所述的方法,其特征在于,對(duì)所述內(nèi)容的選擇是從基 于XML的格式的文檔中選擇的(240)。
20. —種具有用于使得計(jì)算機(jī)執(zhí)行如權(quán)利要求18所述的步驟的計(jì)算機(jī)可 執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)(200)。
全文摘要
各種技術(shù)和方法檢測(cè)基于矢量圖形的文檔中的列表并以各種有意義的方式使用這些列表。該系統(tǒng)使用一組規(guī)則來檢測(cè)基于矢量圖形的文檔中的至少一個(gè)列表。模式檢測(cè)邏輯標(biāo)識(shí)可能開始列表的各字符、符號(hào)、數(shù)字、字母和/或圖像。另外的模式檢測(cè)邏輯確定列表是否存在。該系統(tǒng)可以標(biāo)識(shí)和分析標(biāo)項(xiàng)目符號(hào)的列表、標(biāo)號(hào)的或標(biāo)字母的列表、以及作為兩者的任意組合的嵌套列表。內(nèi)容一旦被標(biāo)識(shí),就被轉(zhuǎn)換成經(jīng)修改的格式。可以將該內(nèi)容以更適合由目標(biāo)應(yīng)用程序輸出或使用的該經(jīng)修改的格式輸出到該目標(biāo)應(yīng)用程序。
文檔編號(hào)G06F17/21GK101385023SQ200780005144
公開日2009年3月11日 申請(qǐng)日期2007年1月19日 優(yōu)先權(quán)日2006年2月9日
發(fā)明者A·葛堪, E·S·賴斯, J·D·麥克蓋薩, J·G·布朗, J·J·迪尼埃茲, K·S·賽德奇, M·劉, O·H·弗爾, R·羅佩茨 申請(qǐng)人:微軟公司