專利名稱:準(zhǔn)確的字體激活的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及管理字體,以及更特別地涉及準(zhǔn)確地激活字體的系統(tǒng)和方法。
背景技術(shù):
文檔創(chuàng)建程序、文檔處理程序、桌面發(fā)布應(yīng)用、網(wǎng)絡(luò)出版、文檔打印應(yīng)用程序及其它計算機程序通常允許用戶選擇不同的字體來創(chuàng)建和打印文檔。隨著這些年來字體數(shù)量的增加,對于用戶來說管理不同的字體變得更加困難了。例如,一種字體也許會與另一種字體相沖突。當(dāng)具有沖突的字體的文檔被計算系統(tǒng)處理時,這種沖突也許會導(dǎo)致錯誤的字體被計算系統(tǒng)激活和/或使用。相應(yīng)地,字體沖突也許會使計算系統(tǒng)不正確地處理文檔(例如, 不正確地加載、查看、打印等)。進一步地,計算系統(tǒng)和/或文檔處理的正時(timing)可以判斷字體沖突是否發(fā)生,并因此可以判斷計算系統(tǒng)是否不正確地處理文檔。例如,依賴于字體激活的正時、文檔處理的正時和/或計算系統(tǒng)的操作系統(tǒng),字體沖突可能會或可能不會發(fā)生。因此,根據(jù)上述內(nèi)容,提供一種能確保準(zhǔn)確字體激活的系統(tǒng)和方法將是有益的,以便當(dāng)文檔被處理時在文檔被使用、打印和渲染等的時候,正確的字體被選擇、激活和使用。 另外或者做為選擇,根據(jù)上述內(nèi)容,通過在字體沖突使計算系統(tǒng)不正確地處理文檔之前解決一個或多個字體沖突,從而提供一種能確保準(zhǔn)確字體激活的系統(tǒng)和方法將是有益的。
發(fā)明內(nèi)容
本發(fā)明內(nèi)容被提供用于以簡化的形式介紹一組概念,其在下面在具體實施方式
中被進一步描述。本發(fā)明內(nèi)容不是要識別所要求保護的主題的關(guān)鍵特征或基本特征,也不是要用于限制所要求保護的主題的范圍。本公開的多個方面涉及用于在一個或多個文檔中確定沖突和解決字體沖突的系統(tǒng)和方法。本公開的更進一步的多個方面涉及用于為了包括例如文檔打印的各種文檔處理的目的來準(zhǔn)確激活字體的系統(tǒng)和方法。本公開的更進一步的多個方面涉及用于在字體沖突使計算系統(tǒng)不正確地處理文檔之前解決一個或多個字體沖突的系統(tǒng)和方法。根據(jù)本公開的至少一些方面,提供一種確定并防止字體沖突發(fā)生的計算系統(tǒng)環(huán)境。根據(jù)本公開的一些方面,可以識別一種或多種字體,并且可以基于識別的字體來確定字體沖突。根據(jù)本公開的一些方面,可以確定涉及字體沖突的字體的替代字體。在其它方面, 可以基于字體沖突來修改替代字體。在本公開的又一些其它方面,可以基于替代字體的修改信息來修改涉及字體沖突的一個或多個文檔。根據(jù)本公開的再一些其它方面,緊接著修改,可以獲得涉及字體沖突的一個或多個文檔來用于進一步的處理。根據(jù)本公開的一些方面,可以再次修改所述一個或多個文檔以恢復(fù)它們的初始狀態(tài)。根據(jù)此處列出的下面的具體實施方式
、附加的權(quán)利要求書和附圖,本公開的這些及其它的新的優(yōu)點、細節(jié)、實施例、特征和目標(biāo)對本領(lǐng)域技術(shù)人員將是顯而易見的。某些實施例是作為示例來顯示的而不是被限制在附圖中的,在所述附圖中相同的附圖標(biāo)記表示相似的單元,并且其中
圖1顯示了被配置為執(zhí)行本發(fā)明的一個或多個說明性方面的示例數(shù)據(jù)處理系統(tǒng)。圖2顯示了在文檔的字體之間具有潛在的字體沖突的兩個示例文檔。圖3顯示了由示例字體沖突引起的一個或多個可能的影響。圖4顯示了為文檔的字體提供正確的字體信息的示例方法。圖5顯示了借此可以防止字體沖突的示例方法。圖6顯示了根據(jù)本公開的一個或多個方面的防止字體沖突的示例方法。
具體實施例方式在下面的各種實施例的說明中會參考附圖,所述附圖構(gòu)成本文的一部分,并且在所述附圖中作為說明顯示了各種實施例,在所述實施例中可以實踐本發(fā)明。需要理解的是, 可以使用其它實施例并且可以進行結(jié)構(gòu)和功能的改變而不偏離本發(fā)明的范圍。本公開的多個方面涉及用于管理不同字體的系統(tǒng)和方法。此外,本公開內(nèi)容的至少一些方面涉及用于準(zhǔn)確地激活由一個或多個文檔使用的字體的系統(tǒng)和方法。參考圖1,此處描述的方法和技術(shù)可以實現(xiàn)在計算系統(tǒng)環(huán)境100中。計算系統(tǒng)環(huán)境100代表一般的計算裝置,例如臺式計算機、膝上型計算機、筆記本計算機、網(wǎng)絡(luò)服務(wù)器、便攜式計算裝置、個人數(shù)字助理、智能電話、移動電話、分布式計算網(wǎng)絡(luò)裝置或任意其它裝置,所述任意其它裝置具有必要的組件或能力,其能如此處所述地進行工作以及在一些配置中能被構(gòu)造為根據(jù)本發(fā)明的一個或多個說明性方面的專用裝置。環(huán)境100可以包括中央處理單元(CPU)或其它處理器103、RAM或其它易失性存儲器105、ROM或其它引導(dǎo)存儲器107、(一個或多個)網(wǎng)絡(luò)接口 109(例如,以太網(wǎng)、無線網(wǎng)絡(luò)接口、調(diào)制解調(diào)器等)、(一個或多個)輸入/輸出端口 111(例如,鍵盤、鼠標(biāo)、監(jiān)視器、打印機、USB端口、串行端口、并行端口、IEEE1394/火線端口等)和非易失存儲器113 (例如,固定盤、光盤、全息照相存儲器、可移動存儲介質(zhì)、閃存驅(qū)動器等),其中計算裝置(例如,計算系統(tǒng)環(huán)境100)可通過所述網(wǎng)絡(luò)接口 109連接到網(wǎng)絡(luò)(例如,因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、個人局域網(wǎng)等)。環(huán)境100可以在存儲器113中存儲各種程序、應(yīng)用程序和數(shù)據(jù),包括但不限于操作系統(tǒng)軟件115、字體模塊117(例如,一個或多個插件和/或其它字體軟件)、數(shù)據(jù)119(例如,文檔、字體文件、任務(wù)夾(job jacket)及此處描述的其它數(shù)據(jù))以及例如文檔創(chuàng)建軟件和文檔處理軟件這樣的其它文檔軟件121 (例如,ADOBE 商標(biāo)的應(yīng)用程序、QUARK 商標(biāo)的應(yīng)用程序、文檔打印程序等)。文檔創(chuàng)建軟件可以是目前已知的或以后開發(fā)的任意軟件,所述軟件可被用于創(chuàng)建文本、圖形、圖像、 攝影、多媒體或任意其它類型的視覺上可感覺到的文檔。文檔處理軟件可以是目前已知的或以后開發(fā)的任意軟件,所述軟件可被用于處理文本、圖形、圖像、攝影、多媒體或任意其它類型的視覺上可感覺到的文檔。本公開內(nèi)容的一個或多個方面可以體現(xiàn)在計算機可用數(shù)據(jù)和/或計算機可執(zhí)行指令中,例如體現(xiàn)在由一個或多個計算機或其它裝置執(zhí)行的一個或多個程序模塊中,用以渲染用于在例如顯示器或打印機這樣的裝置上輸出的一個或多個字體。通常,程序模塊包括當(dāng)由計算機或其它數(shù)據(jù)處理裝置中的處理器執(zhí)行時進行具體任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例行程序、程序、對象、組件和數(shù)據(jù)結(jié)構(gòu)等。計算機可執(zhí)行指令可以存儲在計算機可讀介質(zhì)上,所述計算機可讀介質(zhì)例如硬盤、光盤、可移動存儲介質(zhì)、固態(tài)存儲器和RAM等。正如本領(lǐng)域技術(shù)人員所理解的,程序模塊的功能在各個實施例中可以依照要求進行組合或分配。此外,功能可以整體或部分地體現(xiàn)在等效的固件或硬件中,所述固件或硬件相當(dāng)于集成電路、現(xiàn)場可編程門陣列(FPGA)等等。具體數(shù)據(jù)結(jié)構(gòu)可被用于更有效地實現(xiàn)本發(fā)明的一個或多個方面,并且這種數(shù)據(jù)結(jié)構(gòu)在此處描述的計算機可執(zhí)行指令和計算機可用數(shù)據(jù)的范圍內(nèi)是被預(yù)期的。進一步參考圖1,正如以上的討論,計算系統(tǒng)環(huán)境100可以包括與操作系統(tǒng)115相互作用的文檔軟件121。操作系統(tǒng)115可以包含用于全局地激活字體的應(yīng)用程序接口。也就是說,在一些方案中,運行在操作系統(tǒng)115上的所有進程可以訪問和使用已激活的字體。另外或者做為選擇,操作系統(tǒng)115也可以提供在應(yīng)用程序的進程空間內(nèi)部激活字體的能力, 只有該具體進程能夠看到和使用所述字體。操作系統(tǒng)115也可以提供當(dāng)前在計算環(huán)境100 上激活的字體的列表。在一些方案中,對于將在計算環(huán)境100中激活的特定字體,與所述字體相關(guān)的物理數(shù)據(jù)(例如,表示字體特性的字體文件等)也許需要安裝在計算環(huán)境100中。在一些實施例中,操作系統(tǒng)115可以在字體文件夾中存儲已安裝字體的數(shù)據(jù)。另外,操作系統(tǒng)115可以包括保存關(guān)于已安裝字體的信息的系統(tǒng)注冊數(shù)據(jù)庫。字體可以通過將適當(dāng)?shù)臄?shù)據(jù)放入字體文件夾和/或更新系統(tǒng)注冊中的信息來安裝。當(dāng)被正確安裝時,所述已安裝字體可以被激活。在有些情況下,激活字體可以包括例如通過到所述數(shù)據(jù)的路徑以及所述物理數(shù)據(jù)本身的某個標(biāo)識(例如,到字體文件夾的路徑以及字體文件的文件名),來識別已安裝字體的物理數(shù)據(jù)的位置。當(dāng)被激活時,計算環(huán)境的應(yīng)用程序可以使用一個或多個已安裝字體。例如,應(yīng)用程序可以訪問已激活字體的字體文件并根據(jù)字體文件重現(xiàn)字體。在一些方案中,計算系統(tǒng)環(huán)境100可以包括字體模塊117。在一些方案中,字體模塊117可以包括用文檔處理應(yīng)用程序121編寫并與之存在接口的一個或多個字體管理插件(例如,被編寫為連接到Adobe、Quark、文檔打印應(yīng)用程序等),以幫助計算系統(tǒng)環(huán)境100管理和準(zhǔn)確激活字體。在一種情況下,字體模塊117可以包括在應(yīng)用程序內(nèi)部自動打開和關(guān)閉字體的自動激活插件。例如,插件和/或擴展(XTension)可以包括對 Adobe InDesign CS4、Adobe Illustrator CS4 和 QuarkXPress8、InCopy、CopyDesk 等的支持以及對Creative Suite3的軟件應(yīng)用程序和QuarkXPress 的支持。自動激活插件在后臺工作并給用戶提供當(dāng)自動激活字體時在他們選擇的應(yīng)用程序中無縫工作的能力。在一些方案中,字體模塊117可以與字體管理器123相互配合和/或使用來自于字體管理器 123的信息來幫助管理和/或準(zhǔn)確激活字體。字體模塊117可以在處理文檔之前識別和防止字體沖突。該示例方法在下面進行詳細討論。在一些方案中,計算系統(tǒng)環(huán)境100可以在激活字體和/或處理其它字體相關(guān)請求時訪問字體數(shù)據(jù)庫。例如,當(dāng)在計算系統(tǒng)環(huán)境100上執(zhí)行的進程請求與字體相關(guān)的信息(例如,判斷字體是否安裝在系統(tǒng)上、輸入已安裝字體的列表、與激活字體相關(guān)的請求等)時, 操作系統(tǒng)115可以返回安裝在計算系統(tǒng)環(huán)境100中并對所述請求作出響應(yīng)的一個或多個字體的信息。在一個實例中,操作系統(tǒng)115可以接收對與當(dāng)前激活的字體相關(guān)的信息的請求。 作為響應(yīng),操作系統(tǒng)可以發(fā)送關(guān)于當(dāng)前激活字體的信息,例如激活字體的名稱、通向激活字體的字體文件的路徑以及激活字體的激活水平等。另外或者做為選擇,在一些方案中,計算系統(tǒng)環(huán)境100也可以包括被配置為識別、激活和停用字體的字體管理器123。在具有字體管理器123的實施例中,字體管理器123可以將字體安裝和/或激活到計算系統(tǒng)環(huán)境100中。在一些方案中,字體管理器123可以訪問字體數(shù)據(jù)庫125。當(dāng)字體將被激活時,字體管理器123可以將字體從字體數(shù)據(jù)庫125安裝到操作系統(tǒng)115的存儲空間中(例如,通過將字體存儲到操作系統(tǒng)115的已安裝字體數(shù)據(jù)庫 (未示出)中)。當(dāng)字體被停用時,字體管理器123可以將字體從操作系統(tǒng)115的存儲空間中刪除(例如,通過將字體從操作系統(tǒng)115的已安裝字體數(shù)據(jù)庫(未示出)中刪除)。在一些方案中,通過從操作系統(tǒng)115的存儲空間中安裝和/或■字體,操作系統(tǒng)可以保存與可以安裝在計算機上的全部字體的一個小的子集的知識。在其它方案中,字體管理器123可以與例如文檔創(chuàng)建應(yīng)用程序這樣的文檔軟件121相互配合,以識別文檔的字體并為所述識別的字體生成字體標(biāo)識關(guān)鍵字。該示例方法在下面進行詳細討論。在一些實施例中,字體數(shù)據(jù)庫125可以和字體管理器123分離(例如,可經(jīng)由網(wǎng)絡(luò)接口 109訪問的遠程數(shù)據(jù)庫)。在一些實施例中,計算系統(tǒng)環(huán)境100可以包括與計算系統(tǒng)環(huán)境100的各個部分 (例如,操作系統(tǒng)115、文檔軟件121等)交互(例如,通過輸入/輸出端口 111)的打印系統(tǒng)127。在一些方案中,用戶可以與計算系統(tǒng)環(huán)境100交互以使用打印系統(tǒng)127打印文檔。 例如,用戶可以與文檔軟件121和/或操作系統(tǒng)115交互以加載文檔并使用打印系統(tǒng)打印文檔。本公開內(nèi)容的各個方面涉及在計算系統(tǒng)環(huán)境中準(zhǔn)確地激活字體。在一些實施例中,準(zhǔn)確地激活字體可以包括在允許進一步處理文檔之前識別潛在的字體沖突并解決所述潛在的字體沖突。例如,可以識別與一個或多個文檔和/或計算系統(tǒng)相關(guān)的字體(例如,第一字體和第二字體)。在字體的識別方面,可以識別在所述字體之間的潛在沖突(例如,在第一字體和第二字體之間的潛在沖突)。基于識別的沖突或潛在沖突,可以在允許進一步處理文檔之前修改與所述潛在沖突相關(guān)的信息來解決潛在沖突(例如,第一字體的信息、第二字體的信息和/或一個或多個文檔的信息)。在修改適當(dāng)?shù)男畔r,使用修改的信息,潛在沖突中所涉及的文檔可用于進一步的處理。字體沖突可能發(fā)生于在計算環(huán)境上安裝的字體、當(dāng)前在計算環(huán)境中激活的字體和 /或與一個或多個文檔相關(guān)的字體之間??梢员蛔R別、解決等的潛在字體沖突的一個示例是由具有相同識別信息的字體引起的沖突。在某種情況下,具有相同識別信息的字體也許會沖突,從而使一個或多個文檔被不正確地處理(例如,不正確地打印、不正確地查看等)。 字體的識別信息可以包括字體的名稱,例如Postscript或TrueType的名稱。字體的識別信息也可以包括用于特定字體的文件名、文件位置和/或任意識別符。圖2顯示了在文檔的字體之間具有潛在的字體沖突的兩個示例文檔。具體說地,圖2顯示了由于文檔包括具有相同識別信息的字體而發(fā)生的字體沖突。除了圖2中顯示的潛在沖突之外,沖突可以由具有相同識別信息的字體而引起。在一個示例中,潛在字體沖突可以存在于文檔的字體和計算環(huán)境的系統(tǒng)字體之間?,F(xiàn)在參考圖2的顯示的示例,第一文檔201包括由其名稱F0NT-1202標(biāo)識的字體, 其可以用于重現(xiàn)和/或渲染文檔201。內(nèi)容區(qū)域205顯示了用F0NT-1202渲染的示例文本。 此外如圖2所示,第二文檔203識別了也被命名為F0NT-1204的字體,其可以用于重現(xiàn)和/ 或渲染文檔203。第二文檔203的內(nèi)容區(qū)域207包括使用如籍由/通過第二文檔203所識別的F0NT-1204來渲染的示例文本。盡管第一文檔201和第二文檔203識別了具有相同名稱(即,相同識別信息)的字體,但使用兩種字體202和204渲染的文本的外觀是明顯不同的。第一文檔201和第二文檔203只是顯示了一個示例性情況,其中文檔201和203也許會由于對字體202和204信息(例如,字體名稱F0NT-1)的識別之間的沖突而被計算系統(tǒng)不正確地處理。具有相同識別信息的字體可以以不同的方式產(chǎn)生。例如,具有相同識別信息的字體可以由字體開發(fā)公司(font foundry)產(chǎn)生。在一個示例中,字體開發(fā)公司可以產(chǎn)生一種具有特定Postscript名稱(例如,Helvetica, Courier等)的字體,并且可以產(chǎn)生具有相同的特定Postscript名稱(例如,不同版本的HelveticEuCourier等)的第二字體。當(dāng)使用第一和第二字體處理文檔時,第一和第二字體的識別信息可能實質(zhì)上相同或相似,但使用那些字體渲染的文本可能具有不同的外觀,從而導(dǎo)致字體沖突。正如另一個示例,具有相同識別信息的字體可以由多個字體開發(fā)公司產(chǎn)生。例如,第一字體開發(fā)公司可以產(chǎn)生具有特定Postscript名稱(例如,Helvetica, Courier等)的第一字體,而第二字體開發(fā)公司可以產(chǎn)生具有相同的特定Postscript名稱(例如,Helvetica、Courier等)的第二字體。 相應(yīng)地,當(dāng)使用第一和第二字體處理文檔時,第一和第二字體的識別信息可能實質(zhì)上相同或相似,但使用那些字體渲染的文本可能具有不同的外觀,從而導(dǎo)致字體沖突。再參考圖2,當(dāng)計算系統(tǒng)處理文檔201和/或文檔203(例如,渲染、加載、查看、打印等)時,字體沖突也許會發(fā)生并使錯誤的字體被激活和/或使用(例如,使用不正確的字體渲染、使用不正確的字體加載、使用不正確的字體查看、使用不正確的字體打印等)。相應(yīng)地,激活和/或使用涉及字體沖突的字體(例如,彼此沖突的字體)也許會使文檔被不正確地處理(例如,文檔201和203中渲染的文本也許會不正確地顯現(xiàn))。圖3顯示了由示例字體沖突引起的一個或多個可能的影響。應(yīng)該注意到,圖3顯示了在圖2中顯示的字體沖突的一個或多個可能的影響。其它影響及其它沖突是可能的。例如,另一個影響也許包括使用不正確的字體渲染文檔的影響。相似的影響也許會基于其它的沖突發(fā)生,所述其它的沖突包括在文檔的字體和系統(tǒng)字體的字體之間的沖突。特別地,圖3顯示了由沖突的識別信息引起的字體沖突的一個或多個可能的影響。相對于圖2所示沖突,由于字體202和 204之間的沖突,圖3中所示的影響也許會發(fā)生在文檔201和203被處理時(例如,如圖3 中被打印)。在一些方案中,文檔的不正確處理由具有沖突的識別信息的字體引起。當(dāng)處理文檔時,沖突的信息導(dǎo)致不正確的字體將被使用。如圖3的步驟301中所示,在計算系統(tǒng)中打開第一文檔并激活第一字體。在一些實施例中,激活第一字體包括在計算系統(tǒng)上識別第一字體的物理數(shù)據(jù)(例如,第一字體的字體文件)以及基于第一字體的識別信息提供對那些數(shù)據(jù)的訪問。例如,在已經(jīng)激活第一字體之后,處理第一文檔的應(yīng)用程序會需要訪問第一字體的字體文件(例如,當(dāng)?shù)谝晃臋n被渲染、打印等時)。應(yīng)用程序可以經(jīng)由具有第一字體的識別信息的已激活字體來接收對字體文件的訪問。在步驟303,打開第二文檔并激活第二字體。在有些情況下,第一字體和第二字體可以具有相同或相似的識別信息(例如,諸如相同的Postscript名稱這樣的相同或相似的字體名稱等)。在一些方案中,由于沖突的識別信息,當(dāng)激活第二字體時第二字體可以取代第一字體而成為用于該識別信息的已激活字體。當(dāng)?shù)诙煮w取代第一字體而成為已激活字體時,處理第一文檔的應(yīng)用程序可接收對第二字體的字體文件的訪問,而不是接收對第一字體的字體文件的訪問。因此,激活和/或使用具有相同識別信息的字體也許會導(dǎo)致字體沖突和不正確的文檔處理。圖3的步驟305顯示了一個示例,其中在已經(jīng)激活第二字體之后第一文檔可能被不正確地處理。在步驟305,計算系統(tǒng)使用第二字體(例如,具有相同識別信息的最近激活的字體)打印第一文檔。打印可以包括訪問匹配第一字體識別信息的已激活字體并基于已激活字體的特性來打印文檔。因為第二字體已經(jīng)取代第一字體而成為該識別信息的已激活字體,所以當(dāng)打印第一文檔時計算系統(tǒng)使用第二字體的字體文件。因此,第一文檔可能不會如預(yù)期的進行打印。例如,在第一和第二字體之間,字距調(diào)整或某個其它的視覺字體特性可能會不同(例如,字體間距等)。這種差別可以以多種方式影響打印的文檔,包括文檔頁面上文本的重排版、打印文檔的視覺誤差等。另外或者做為選擇,對于用戶來說這種影響可能難以注意到和/或可能導(dǎo)致成本超支,包括例如與重打印文檔相關(guān)的成本超支。進一步地,多種因素可以判斷是否發(fā)生字體沖突以導(dǎo)致計算系統(tǒng)不正確地處理涉及字體沖突的文檔。在一些方案中,是否發(fā)生字體沖突會隨字體激活和/或文檔處理的同時而發(fā)生。例如,計算系統(tǒng)可并行處理多個文檔。當(dāng)并行處理文檔時,文檔的正確處理可以取決于計算系統(tǒng)激活的上一種字體是否是用于該文檔的正確字體(例如,創(chuàng)建所述文檔時設(shè)計者使用的字體)。在一個特定并行處理時序(timing sequence)中,正確的字體可以是上一種激活的字體,從而允許計算系統(tǒng)正確地處理文檔。在不同的并行處理時序的情況下, 不正確的字體可以是上一激活的字體,從而以如上所述的方式導(dǎo)致計算系統(tǒng)不正確地處理文檔。另外和/或做為選擇,是否發(fā)生字體沖突可以取決于計算系統(tǒng)的操作系統(tǒng)。例如, 如果沖突的字體是由操作系統(tǒng)在局部進程空間中激活而非全局激活,那么當(dāng)具有沖突字體的文檔不是在相同的局部進程空間中進行處理時,計算系統(tǒng)可以正確地處理文檔。然而,如果沖突的字體是被全局激活的,那么計算系統(tǒng)也許會不正確地處理文檔。根據(jù)關(guān)于字體沖突是否發(fā)生的這些考慮,字體沖突可能難以以常規(guī)方式檢測(例如,由用戶檢查等)。然而, 如下文所更詳細描述的,系統(tǒng)可以通過在進一步處理文檔之前識別潛在字體沖突和解決潛在字體沖突來防止字體沖突發(fā)生。因此,通過防止字體沖突發(fā)生,不論系統(tǒng)將如何處理文檔 (例如,串行或并行)和/或計算系統(tǒng)的操作系統(tǒng)的類型,都可以對文檔進行處理。根據(jù)本公開的各個方面,計算系統(tǒng)(例如,圖1的計算系統(tǒng)環(huán)境100)可以被配置為執(zhí)行以下步驟以防止字體沖突(例如,圖2中所示的字體沖突)發(fā)生,以及由此防止使文檔被不正確地處理。在一些實施例中,計算系統(tǒng)可以使用一個或多個字體模塊(例如,圖1 的字體模塊117)、計算系統(tǒng)的操作系統(tǒng)(例如,圖1的操作系統(tǒng)114)、計算系統(tǒng)的文檔處理應(yīng)用程序、計算系統(tǒng)的文檔創(chuàng)建應(yīng)用程序、字體管理器、字體數(shù)據(jù)庫和/或它們的一些組合等來防止字體沖突。在一些方案中,字體管理器可以與文檔創(chuàng)建程序接口連接,以提供用于文檔的字體的正確字體信息,以便在防止字體沖突時使得與文檔字體相關(guān)的附加信息可用。圖4顯示了為文檔的字體提供正確的字體信息的示例方法。如步驟401所示,文檔的字體被識別。例如,在字體管理器與文檔創(chuàng)建程序接口連接的方案中,字體管理器可以識別當(dāng)前在文檔創(chuàng)建程序中設(shè)計的文檔字體。在一個這種示例中,字體管理器將確定當(dāng)前在正被設(shè)計的文檔中使用字體。
在步驟403,確定每個已識別的字體的特性。在一些方案中,字體的特性可以包括字體類型、字體名稱、字體版本、字體開發(fā)公司和/或與字體視覺特性相關(guān)的其它信息(例如,關(guān)于字體輪廓的信息、寬度表、字距調(diào)整表等)。字體的特性可以根據(jù)多個來源確定。例如特性可以根據(jù)文檔、計算系統(tǒng)的已激活字體、計算系統(tǒng)上安裝的字體和/或字體數(shù)據(jù)庫中的字體來確定。在一個實例中,特性根據(jù)由文檔創(chuàng)建軟件使用以渲染正被設(shè)計的文檔的字體文件(例如,與由文檔使用的字體的名稱對應(yīng)的已激活字體相關(guān)的字體文件)來確定。在步驟405,對于每種字體,基于字體的特性來確定正確的字體信息。正確的字體信息可以指定字體的特性。通過指定特性,正確的字體信息可以提供允許相同的字體文件隨后在處理文檔時被識別的信息。例如,正確的字體信息可以包括允許字體的版本、開發(fā)公司、類型和/或名稱隨后被識別的信息。另外,正確的字體信息也可以包括基于一個或多個確定的特性的錯誤檢驗碼。在一些實施例中,該錯誤檢驗碼可以采取基于與字體視覺特性有關(guān)的信息的校驗和值(checksum value)的形式。在一個示例中,校驗和值根據(jù)與字體輪廓、寬度表和字距調(diào)整表相關(guān)的信息來確定。正確的字體信息可以采取多種形式,包括包含一個或多個特性的數(shù)據(jù)集、指定一個或多個特性的多值關(guān)鍵字等。在步驟407,正確的字體信息被存儲為與文檔相關(guān)的數(shù)據(jù)。在一些方案中,正確的字體信息可以被存儲為與文檔相關(guān)的一個或多個分離文件。在其它方案中,正確的字體信息可以作為元數(shù)據(jù)插入到文檔中。存儲正確的字體信息并將存儲的數(shù)據(jù)與正被設(shè)計的文檔關(guān)聯(lián)能允許正確的字體信息被隨后訪問。在一個示例中,存儲的數(shù)據(jù)可以由字體模塊和 /或文檔處理程序訪問,以便可以促使正確的字體信息提供附加信息,例如識別當(dāng)設(shè)計文檔時實際使用的字體文件的信息。在計算系統(tǒng)防止字體沖突的一些方案中,字體模塊可以與文檔處理程序接口連接以在文檔被處理(例如,打印、渲染等)之前提供字體沖突的解決和/或準(zhǔn)確的字體激活。 圖5顯示了根據(jù)本公開內(nèi)容的至少一些方面的、計算系統(tǒng)借此可以防止字體沖突的示例方法。盡管該示例方法顯示了識別和防止字體沖突的字體模塊,但系統(tǒng)的多個方面、組件等等或者其組合可以用于處理所述沖突或潛在的字體沖突。例如,字體管理器可被用于識別并防止字體沖突。另外或者做為選擇,計算系統(tǒng)通??杀挥糜谧R別并防止字體沖突。如圖5 中所示,在步驟501,可以識別與一個或多個文檔相關(guān)的一種或多種字體。例如,字體模塊可以識別在文檔處理應(yīng)用程序中重現(xiàn)文檔所必需的一種或多種字體。在一些實施例中,文檔可以采用包含將其重現(xiàn)所必需的字體的格式。因此,字體模塊可以通過處理文檔本身來識別與文檔相關(guān)的字體。在一個示例中,文檔可以是可移植文檔格式(PDF)。PDF在包含文檔的文件內(nèi)部嵌入了重現(xiàn)文檔所必需的字體。在其它實施例中,文檔可以包括識別重現(xiàn)所述文檔所必需的字體的識別信息。例如,識別信息可以是例如Postscript名稱的字體名稱。另外或者做為選擇,可以與文檔文件一起包括附加的數(shù)據(jù)。例如,一個或多個附加的文件可以與文檔文件相關(guān)。在一個示例中,這些附加的文件可以包含重現(xiàn)文檔所需的字體和/或文檔文件中識別的字體。因此,字體模塊可以使用附加的文件來識別與文檔相關(guān)的字體。這種附加的文件可被包括在任務(wù)夾中。任務(wù)夾可以包括識別重現(xiàn)文檔所必需的字體的文件。在一些方案中,任務(wù)夾可以包括具有與原始文檔相同的名稱但具有例如XML和 JKT等的不同文件擴展名的格式文件。任務(wù)夾也可以包括對一種或多種字體和文檔的引用。 任務(wù)夾可以包括任意期望的文檔格式,并且不限于XML乃至具體的一種標(biāo)記語言文檔,相反地可以是任意形式,在其中包括必要的信息。作為另一個示例,一個或多個附加的文件可以作為打印作業(yè)的一部分而被包括進來,其可以被提供給打印的印前技師(pre-press operator)。在一些方案中,打印作業(yè)可以設(shè)置在例如USB閃存驅(qū)動器和光盤等的便攜式介質(zhì)上,和/或可以例如在因特網(wǎng)上來經(jīng)由一個或多個網(wǎng)絡(luò)來發(fā)送。打印作業(yè)可以進一步以例如.ZIP和.TAR等的文件封裝和/或壓縮格式來封裝。在步驟503,識別潛在的字體沖突(例如,確定字體沖突是否可能發(fā)生)。在多個實施例中,字體模塊可以基于對識別字體、在計算系統(tǒng)上安裝和/或激活的字體、從中識別字體的文檔和/或識別字體激活水平的檢查來識別潛在字體沖突。關(guān)于基于激活字體的沖突,在有些情況下,字體模塊可以檢查一種或多種全局激活的字體、一種或多種本地激活的字體和/或它們的一些組合。字體模塊可以基于字體(一種或多種)的識別信息(例如, 計算系統(tǒng)中活動的一種或多種字體的Postscript名稱)來識別潛在字體沖突。如果活動字體的Postscript名稱與被識別字體的Postscript名稱相同,則字體模塊可以將其識別為潛在字體沖突并可以進入步驟504。作為另一個示例,字體模塊可以基于被識別的字體是否具有與步驟501中識別的一種或多種字體相同或相似的識別信息(例如,Postscript 名稱)來識別潛在字體沖突。另外或者做為選擇,即使兩種或多種字體具有相同或相似的識別信息,識別字體是否沖突也可以是基于字體的激活水平來進行的。例如,如果兩種字體都是全局激活的,則在字體之間也許存在字體沖突。因此,這種情況可被識別為潛在字體沖突。然而,如果兩種字體是在不同進程空間中激活的,則字體沖突也許不會發(fā)生并且可以不識別為潛在字體沖突。如果沒有識別出潛在字體沖突,則在步驟509,可以使文檔用于進一步的處理。字體模塊可能不能基于各種字體信息和激活水平等識別出字體沖突。例如,只是在不同進程空間中本地激活的字體可能不會被識別為沖突。作為另一個示例,在被識別的字體和/或被激活的字體之間的識別信息可以是不同的。如果識別了潛在字體沖突,那么在可選步驟504中可以存儲有關(guān)文檔原始狀態(tài)和 /或字體沖突中涉及的字體的信息。在一些方案中,這可以包括存儲信息,該信息涉及在與所述字體沖突對應(yīng)的字體沖突中所涉及的字體以及文檔。例如,字體模塊可以存儲字體沖突中涉及的字體的識別信息(例如,字體沖突中涉及的字體的Postscript名稱)。在一些方案中,字體模塊可以存儲對包括沖突字體的文檔的引用(和/或?qū)υ撐臋n的一些部分的引用)。在步驟505,可以防止字體沖突。根據(jù)本公開內(nèi)容的一些方面,字體模塊可以以多種方式防止已識別的沖突。例如,字體模塊可以修改字體沖突中涉及的一種或多種字體的信息,并且可以修改字體沖突中涉及的一個或多個文檔,以便一個或多個文檔包括已修改字體的修改信息。下面將更完整地討論字體沖突的預(yù)防。在步驟507,可以使文檔可獲得用于進一步的處理(例如,打印、查看、渲染、編輯等)。相應(yīng)地,當(dāng)在文檔上執(zhí)行進一步的處理時,在處理期間可以使用預(yù)期的字體(例如,根據(jù)修改信息來激活字體,從而允許在處理文檔時訪問正確的字體文件)。在可選步驟508, 可以進一步修改文檔來恢復(fù)文檔的原始狀態(tài)。在一些方案中,可以不執(zhí)行該步驟。例如,如果不修改文檔,那么它們的原始狀態(tài)不需要恢復(fù)并且該步驟可以跳過。做為選擇,該步驟可以首先判斷文檔是否已經(jīng)修改,并且如果文檔與它們的原始狀態(tài)相比已經(jīng)被修改,那么該步驟可以繼續(xù)恢復(fù)文檔的原始狀態(tài)。在有些情況下,字體模塊可以修改在步驟505期間改變的文檔以防止?jié)撛跊_突。在可選步驟508,字體模塊可以將原始識別信息代入文檔中以恢復(fù)文檔原始狀態(tài)。例如,如果最初引用字體“Helvetica”的第一文檔被修改為指向具有 "Helvetical23XYZ"的Postscript名稱的修改字體,那么第一文檔將被再次修改以用原始識別信息(例如,“Helvetica”)來替換任何出現(xiàn)“HelVetiCa123XYZ”的地方。在一些實施例中,字體模塊可以訪問在可選步驟504期間存儲的信息,并基于存儲信息和/或在步驟 503中判斷的可能導(dǎo)致字體沖突的信息來將文檔恢復(fù)到原始狀態(tài)。例如,字體模塊可以訪問存儲信息,以獲取涉及字體沖突的字體的原始識別信息(例如,“Helvetica”)并修改文檔, 以便無論什么情況下文檔引用了字體,文檔都使用原始識別信息(例如,用“Helvetica”替換對修改字體的識別信息的任意引用)。圖6顯示了根據(jù)本公開內(nèi)容的一個或多個方面的防止字體沖突的示例方法。在步驟601,確定涉及字體沖突的一種或多種字體的替代字體。在一些方案中,基于涉及沖突的字體的識別信息來確定替代字體。例如,在一些方案中,字體模塊可以基于沖突中所涉及的字體的Postscript名稱來確定替代字體。在一個這種示例中,字體模塊可以訪問字體數(shù)據(jù)庫,并且基于字體名稱來獲取將被用作替代字體的字體。在其它方案中,可以基于附加信息來確定替代字體。例如,當(dāng)設(shè)計文檔時,字體模塊可以使用與文檔相關(guān)的正確的字體信息(例如,圖4中的正確的字體信息)。正如以上的討論,正確的字體信息可以包括指定了當(dāng)創(chuàng)建文檔時使用的字體的特性的信息。正確字體信息(在有些情況下包括字體類型、名稱、開發(fā)公司、版本、錯誤檢驗碼等等)可被用于確定替代字體。在一個示例中,替代字體可以是與正確的字體信息相同的字體。因此,經(jīng)確定的替代字體可以具有與正確的字體信息相同的字體類型、名稱、開發(fā)公司、版本等等。在另一個示例中,替代字體可以是與正確的字體信息類似的字體。因此,經(jīng)確定的替代字體可以具有和正確的字體信息一樣的一些特性(例如,字體名稱、字體版本)以及不同于正確的字體信息的其它特性(例如,字體開發(fā)公司)。在有些情況下,當(dāng)確定替代字體時,字體模塊也許需要從多種候選字體中確定替代字體。為了從多種候選字體中選擇替代字體,字體模塊可以使用多種技術(shù)。一種技術(shù)可以是選擇具有最多匹配特性的字體。第二種技術(shù)可以是考慮正確字體信息的、相比于其它特性更重要的一些特性。例如,字體開發(fā)公司特性可以認為比字體名稱和/或字體版本特性更不重要(例如,不同的字體開發(fā)公司也許僅僅表示字體被授權(quán)給不同的字體開發(fā)公司)。 因此,在一個這種實例中,如果兩種候選字體都在除了一個特性之外的所有特性上匹配正確的字體信息,其中第一候選字體在字體版本特性方面不同而第二候選字體在字體開發(fā)公司特性方面不同,那么字體模塊可選擇第二候選字體作為替代字體。第三種技術(shù)可以是使用可包括在正確的字體信息中的錯誤檢驗碼。正如以上的討論,錯誤檢驗碼可以基于字體的視覺特性。因此,具有匹配碼的字體也許是相同的字體或者視覺上相似的字體。在一個示例中,字體模塊可以使用生成正確字體信息的錯誤檢驗碼的相同函數(shù)來為候選字體確定代碼?;诤蜻x字體代碼,替代字體可以被選擇作為具有與錯誤檢驗碼匹配的代碼的候選字體。本領(lǐng)域技術(shù)人員能夠理解,其它技術(shù)可用于在候選字體中間進行選擇,包括例如組合如上所述的兩種或多種技術(shù)的混合技術(shù)。
另外或者做為選擇,當(dāng)確定替代字體時字體模塊可以訪問多種字體源。例如,字體模塊可以訪問安裝在計算系統(tǒng)上的字體,和/或可以訪問獨立的字體數(shù)據(jù)庫(例如,與字體管理器相關(guān)的字體數(shù)據(jù)庫)。在一些方案中,字體模塊可以從獨立的字體數(shù)據(jù)庫中確定替代字體并在計算系統(tǒng)上安裝替代字體。在其它方案中,當(dāng)在計算系統(tǒng)上未找到替代字體時字體模塊可以在計算系統(tǒng)上安裝替代字體。在步驟603,可以修改替代字體中的信息。在一些方案中,字體模塊可以修改替代字體中的識別信息。例如,字體模塊可以將字符的混合符號串(alphanumeric string)添加到識別信息中,從而替代字體的識別信息不同于字體沖突中涉及的其它字體的識別信息 (例如,將“123XH” 添加到“Helvetica” 的 Postscript 名稱中以創(chuàng)建“Helvetical23XYZ” 的新識別信息)。在其它方案中,字體模塊可以利用新的識別信息替代所述識別信息。例如, 字體模塊可以生成字符的混合符號串,并利用混合符號串替換沖突字體的識別信息(例如,利用“123XYZ”替換字體沖突中涉及的其中一種字體的沖突的Postscript名稱)。在又一些其它方案中,字體模塊可以基于正確的字體信息來添加或替換識別信息。例如,可以利用包括在正確的字體信息中的一個或多個特性來添加/替換替代字體的Postscript 名稱,從而替代字體的Postscript名稱不再與沖突中所涉及的其它字體的Postscript名稱沖突。在步驟605,可以修改文檔以包括替代字體。例如,可以修改文檔(一個或多個) 以引用替代字體而不是原始的沖突字體。例如,如果在具有識別信息“Helvetica”的第一文檔的第一字體和具有同樣識別信息的第二文檔的第二字體之間存在字體沖突,那么字體模塊可以修改第一文檔和/或第二文檔。在一些方案中,如果字體模塊為第一字體確定替代字體,那么字體模塊可以修改第一文檔(例如,確定替代字體并將其識別信息修改為 "Helvetical23XYZ")o相應(yīng)地,字體模塊可以修改第一文檔,以便由替代字體的修改信息 (例如,“HelVetiCal23XYZ”)替換對沖突信息“Helvetica”的任意引用。在其它方案中, 如果字體模塊為第二字體確定替代字體,那么字體模塊可以修改第二文檔(例如,確定替代字體并將其識別信息修改為“HelvetiCa_v3_0”)。相應(yīng)地,字體模塊可以修改第二文檔, 以便由替代字體的修改信息(例如,“HelvetiCa_V3_0”)替換對沖突信息“Helvetica”的任意引用。在可選步驟607,可以激活字體沖突中涉及的字體。在一些實施例中,字體模塊可以僅僅激活替代字體。在其它實施例中,字體模塊可以激活字體沖突中涉及的任意和/或所有字體。在又一些其它方案中,字體模塊可以僅僅激活當(dāng)前在計算系統(tǒng)上未被激活的字體。另外,在一些方案中,如果替代字體還沒有安裝在計算系統(tǒng)中,那么字體模塊可以在激活替代字體之前安裝替代字體。在一些實施例中,步驟607是可選的,因為字體激活也許會在進一步處理文檔時和/或期間發(fā)生。本公開的多個方面因此可以在處理文檔時給用戶提供許多好處,所述用戶例如是有創(chuàng)造力的專業(yè)人員或印前技師。例如,有創(chuàng)造力的專業(yè)人員打印多個文檔可以避免對有哪些字體在系統(tǒng)上活動的擔(dān)心,因為在文檔打印之前可以防止文檔之間的字體沖突。另外和/或做為選擇,文檔的批量打印可以自動化,而不管打印作業(yè)中的文檔是否包含具有與運行操作系統(tǒng)所必需的系統(tǒng)字體相同的Postscript名稱的字體。因此,多個文檔可以同時打印或并行處理,即使文檔包含沖突的字體。相應(yīng)地,文檔可以如有創(chuàng)造力的專業(yè)人員和/ 或設(shè)計者所預(yù)期的那樣來打印。
此處列舉的方法和特征可以進一步通過能夠存儲計算機可讀指令的多種計算機可讀介質(zhì)來實現(xiàn)??梢允褂玫挠嬎銠C可讀介質(zhì)的實例包括RAM、R0M、EEPR0M、閃存或其它存儲技術(shù)、CD-ROM、DVD或其它光盤存儲器、磁帶盒、磁帶和磁存儲器等等。雖然已經(jīng)描述和顯示了本發(fā)明的特定實施例,但應(yīng)該理解本發(fā)明不局限于此,因為本領(lǐng)域技術(shù)人員可以進行改變。本申請考慮了落入此處公開并要求保護的下面的發(fā)明的精神和范圍內(nèi)的任意和所有修改。
權(quán)利要求
1.一種或多種存儲計算機可讀指令的計算機可讀介質(zhì),當(dāng)所述計算機可讀指令被執(zhí)行時使裝置識別與第一文檔相關(guān)的第一字體;識別在第一字體和第二字體之間的沖突;為第一文檔確定替代字體;基于所述沖突修改替代字體的信息;以及基于替代字體的已修改信息來修改第一文檔的信息。
2.根據(jù)權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其中確定替代字體包括 將多種候選字體的特性和與第一文檔相關(guān)的正確字體信息的特性相比較;以及基于所述比較來從多種候選字體中選擇出替代字體。
3.根據(jù)權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),進一步存儲指令,當(dāng)所述指令被執(zhí)行時使所述裝置在修改第一文檔之前存儲與所述沖突相關(guān)的信息,其中所述存儲的信息包括與第一字體相關(guān)的信息和與第一文檔相關(guān)的信息中的至少一個;以及在進一步處理第一文檔之后,基于所述存儲的信息再次修改第一文檔。
4.根據(jù)權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其中識別所述沖突包括比較第一字體的識別信息和第二字體的識別信息。
5.根據(jù)權(quán)利要求4所述的一種或多種計算機可讀介質(zhì),其中識別所述沖突包括確定出第一字體的識別信息和第二字體的識別信息是相同的。
6.根據(jù)權(quán)利要求4所述的一種或多種計算機可讀介質(zhì),其中第一字體的識別信息是第一字體的TrueType名稱和Postscript名稱中的至少一個,并且第二字體的識別信息是第二字體的TrueType名稱和Postscript名稱中的至少一個。
7.根據(jù)權(quán)利要求2所述的一種或多種計算機可讀介質(zhì),進一步存儲指令,當(dāng)所述指令被執(zhí)行時使所述裝置基于替代字體的已修改信息來激活替代字體;以及利用替代字體來打印第一文檔。
8.一種方法,包括由計算機識別與第一文檔相關(guān)的第一字體; 由計算機識別在第一字體和第二字體之間的沖突; 為第一文檔確定替代字體; 基于所述沖突修改替代字體的信息;以及基于替代字體的已修改信息來修改第一文檔的信息。
9.根據(jù)權(quán)利要求8所述的方法,其中,在計算系統(tǒng)中激活替代字體時,當(dāng)處理第一文檔時所述替代字體能被計算系統(tǒng)的應(yīng)用程序訪問。
10.根據(jù)權(quán)利要求8所述的方法,其中,確定替代字體包括將多種候選字體的特性和與第一文檔相關(guān)的正確字體信息的特性相比較;以及基于所述比較來從多種候選字體中選擇出替代字體。
11.根據(jù)權(quán)利要求10所述的方法,進一步包括在修改第一文檔之前存儲與所述沖突相關(guān)的信息,其中所述存儲的信息包括與第一字體和第一文檔相關(guān)的至少一個信息;以及在進一步處理第一文檔之后,基于所述存儲的信息再次修改第一文檔。
12.根據(jù)權(quán)利要求8所述的方法,其中,識別所述沖突包括比較第一字體的識別信息和第二字體的識別信息。
13.根據(jù)權(quán)利要求12所述的方法,其中,識別所述沖突包括確定出第一字體的識別信息和第二字體的識別信息是相同的。
14.根據(jù)權(quán)利要求8所述的方法,進一步包括基于替代字體的已修改信息來激活替代字體;以及利用替代字體來打印第一文檔。
15.一種裝置,包括 至少一個處理器;以及存儲器,所述存儲器操作地耦合到所述處理器并存儲計算機可讀指令,當(dāng)所述指令被所述至少一個處理器執(zhí)行時使所述裝置 識別與第一文檔相關(guān)的第一字體; 識別在第一字體和第二字體之間的沖突; 為第一文檔確定替代字體; 基于所述沖突修改替代字體的信息;以及基于替代字體的已修改信息來修改第一文檔的信息。
16.根據(jù)權(quán)利要求15所述的裝置,其中確定替代字體包括將多種候選字體的特性和與第一文檔相關(guān)的正確字體信息的特性相比較;以及基于所述比較來從多種候選字體中選擇出替代字體。
17.根據(jù)權(quán)利要求15所述的裝置,其中修改與所述沖突相關(guān)的信息包括修改第一字體的識別信息并根據(jù)第一字體的已修改識別信息修改第一文檔。
18.根據(jù)權(quán)利要求17所述的裝置,其中所述存儲器進一步存儲計算機可讀指令,當(dāng)所述計算機可讀指令被所述至少一個處理器執(zhí)行時使所述裝置在修改與所述沖突相關(guān)的信息之前存儲與所述沖突相關(guān)的信息,其中所述存儲的信息包括與涉及所述沖突的字體和涉及所述沖突的文檔相關(guān)的信息中的至少一個;以及在進一步處理第一文檔之后,基于所述存儲的信息再次修改第一文檔。
19.根據(jù)權(quán)利要求15所述的裝置,其中所述沖突基于將第一字體的識別信息和第二字體的識別信息比較和確定出第一字體的識別信息和第二字體的識別信息是相同的。
20.根據(jù)權(quán)利要求15所述的裝置,其中所述存儲器進一步存儲計算機可讀指令,當(dāng)所述計算機可讀指令被所述至少一個處理器執(zhí)行時使所述裝置基于第一字體的已修改識別信息來激活替代字體;以及利用替代字體來打印第一文檔。
全文摘要
準(zhǔn)確的字體激活。提出處理文檔、識別被用于重現(xiàn)文檔的字體并基于已識別字體來識別沖突的系統(tǒng)和方法。所述系統(tǒng)和方法可以識別與文檔相關(guān)的字體,識別在所述字體和另一字體之間的沖突,為所述文檔確定替代字體,并接著基于所述沖突修改所述替代字體和所述文檔的信息,以防止所述已識別的沖突導(dǎo)致文檔被不正確地處理。所述系統(tǒng)和方法接著可以允許所述文檔基于所述已修改信息來被進一步處理。
文檔編號G06K9/20GK102254155SQ20111018791
公開日2011年11月23日 申請日期2011年5月6日 優(yōu)先權(quán)日2010年5月6日
發(fā)明者邁克·巴庫斯 申請人:以??怂固刮魉构煞萦邢薰久x經(jīng)營的塞拉特姆股份有限公司