專利名稱:字體標(biāo)識(shí)查詢方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息處理領(lǐng)域,尤其涉及一種字體標(biāo)識(shí)查詢方法及裝置。
背景技術(shù):
字體是指具有共同風(fēng)格的一組字形,而字形是字符的可視表示形式。字體實(shí)例是指一個(gè)字體的數(shù)據(jù)實(shí)體,包括許多的字形數(shù)據(jù)和一些元數(shù)據(jù),通常封裝在一個(gè)字體文件中, 如.ttf文件中。元數(shù)據(jù)包括字體實(shí)例的名稱、開發(fā)者、版本號(hào)等。字體與字體實(shí)例是一對(duì)多的關(guān)系,同一字體可能表現(xiàn)為多種不同的字體實(shí)例。同一字體可以采用不同的字體技術(shù) (如True Type、Typel、Open Type等)制作成字體實(shí)例?;蛘咄蛔煮w經(jīng)過裁剪,使得不同字體實(shí)例包括數(shù)量不等的字形數(shù)據(jù),這稱為字體子集技術(shù),例如某中文字體的完整版有 10000個(gè)漢字,但某手機(jī)版的該中文字體的字體實(shí)例中去掉了不常用的漢字,只有4000字, 即只有4000個(gè)字形數(shù)據(jù)。還可以生成一個(gè)字體實(shí)例的多份拷貝,位于不同的計(jì)算機(jī)系統(tǒng)或存儲(chǔ)位置,它們的內(nèi)容完全相同,但把這些拷貝視為不同字體實(shí)例。同一字體的不同的字體實(shí)例被視為等價(jià)的。在很多電子文檔中,例如MS Word文檔、HTML文檔、Adobe PDF文檔中,需要對(duì)不同的文字指定使用不同的字體進(jìn)行顯示。通常指定字體的方法是在文檔中給出字體的名稱, 如“Times New Roman”或“宋體”,在對(duì)待顯示文字指定了所使用字體的字體名稱后,文檔處理設(shè)備在本地的字體庫(kù)中獲取該字體名稱所對(duì)應(yīng)字體的字體實(shí)例,然后在該字體實(shí)例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進(jìn)行顯示。然而,當(dāng)同一文檔在多個(gè)不同的文檔處理設(shè)備上被處理的時(shí)候,通過字體名稱指定字體的方法的缺點(diǎn)有很多,例如第一,字體的名稱到字體的映射并不唯一,因?yàn)樵S多實(shí)際不同的字體有相同的名稱,這樣在不同的文檔處理設(shè)備上,被指定同一字體的文字的顯示效果不一樣。第二,文檔處理設(shè)備上可能沒有指定的字體,因而無(wú)法使用該字體顯示相應(yīng)的文字,從而可能使用不夠相似的替代字體來(lái)顯示該文字。以上兩點(diǎn)都會(huì)造成文檔無(wú)法以文檔制作者期望的樣子被顯示或處理。對(duì)于上述問題的一個(gè)現(xiàn)有的解決方案是使用內(nèi)嵌字體技術(shù)。使用內(nèi)嵌字體技術(shù)后,在文檔文件中對(duì)文檔使用的字體明確的指定了能夠獲得該字體的字體實(shí)例的地址,將該字體稱為內(nèi)嵌字體。內(nèi)嵌字體技術(shù)有兩種實(shí)現(xiàn)方式,其中一種是在文檔文件內(nèi)記錄字體的字體實(shí)例在文檔文件內(nèi)的偏移地址,并根據(jù)該偏移地址將該字體實(shí)例嵌入到文檔文件內(nèi)部的相應(yīng)位置。在顯示文檔文字時(shí),根據(jù)該偏移地址找到對(duì)應(yīng)的字體實(shí)例,進(jìn)而在該字體實(shí)例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進(jìn)行顯示。使用該方式的文檔有PDF文檔等。另一種是在文檔文件內(nèi)記錄字體的字體實(shí)例的統(tǒng)一資源定位符(URL)地址,并將該字體實(shí)例保存在該URL地址對(duì)應(yīng)的服務(wù)器上。在顯示文檔文字時(shí),根據(jù)該URL地址找到對(duì)應(yīng)的字體實(shí)例,進(jìn)而在該字體實(shí)例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進(jìn)行顯示。使用該方式的文檔有HTML和重疊樣式表(CSQ文檔等。
上述兩種方式中,內(nèi)嵌字體實(shí)例都可以僅僅是一個(gè)字體完整的字體實(shí)例的一個(gè)子集(即前述字體子集技術(shù)),因?yàn)楹芏嗲闆r下一篇文檔只會(huì)使用一個(gè)字體的一小部分字形數(shù)據(jù)。字體的字體唯一標(biāo)識(shí)是指可以在世界范圍內(nèi)唯一確定一個(gè)字體的標(biāo)識(shí)符,該字體唯一標(biāo)識(shí)可以按照預(yù)定的方法生成。較好的字體唯一標(biāo)識(shí)技術(shù)應(yīng)該有以下特點(diǎn)(1)對(duì)同一字體的不同字體實(shí)例生成的多個(gè)字體唯一標(biāo)識(shí),能夠準(zhǔn)確和方便地判別出它們之間有等價(jià)關(guān)系。(2)能夠通過字體唯一標(biāo)識(shí)準(zhǔn)確和方便地判別不同字體或字體實(shí)例是否有相似關(guān)系。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在以下技術(shù)問題但是現(xiàn)有的字體唯一標(biāo)識(shí)技術(shù)尚不具備上述特點(diǎn)?,F(xiàn)有技術(shù)中只能按照一定的方法生成字體的字體唯一標(biāo)識(shí),無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種字體標(biāo)識(shí)查詢方法及裝置,用于解決現(xiàn)有技術(shù)中的無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)的問題。一種字體標(biāo)識(shí)查詢方法,該方法包括接收輸入的字體唯一標(biāo)識(shí);從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);和/或,從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);返回查詢到的字體唯一標(biāo)識(shí)。一種字體標(biāo)識(shí)查詢裝置,該裝置包括接收單元,用于接收輸入的字體唯一標(biāo)識(shí);等價(jià)關(guān)系查詢單元,用于從等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);相似關(guān)系查詢單元,用于從相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);返回單元,用于返回等價(jià)關(guān)系查詢單元和/或相似關(guān)系查詢單元查詢到的字體唯一標(biāo)識(shí)。本方案中,能夠從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢到與輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢到與輸入的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),解決了無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)的問題。
圖1為本發(fā)明實(shí)施例提供的方法流程示意圖;圖2為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖3為本發(fā)明實(shí)施例提供的另一方法流程示意圖;圖4為本發(fā)明實(shí)施例提供的另一裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式字體唯一標(biāo)識(shí)是指可以在世界范圍內(nèi)唯一確定一個(gè)字體的標(biāo)識(shí)符。但是,一個(gè)字體可以有多個(gè)字體唯一標(biāo)識(shí),該多個(gè)字體唯一標(biāo)識(shí)被視為是等價(jià)的字體唯一標(biāo)識(shí)。字體唯一標(biāo)識(shí)可以采取字符串、數(shù)字或其它更復(fù)雜的形式。參見圖1,本發(fā)明實(shí)施例提供的文檔處理方法,包括以下步驟步驟10 確定待處理文檔中內(nèi)嵌字體的字體唯一標(biāo)識(shí);步驟11 在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例;步驟12 利用查找到的字體實(shí)例處理待處理文檔。具體可以如下首先,將待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址重定向到查找到的字體實(shí)例,具體可以是將所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址更新為查找到的字體實(shí)例在本地字體庫(kù)中的存儲(chǔ)地址;然后,使用重定向后的字體實(shí)例處理待處理文檔中使用所述內(nèi)嵌字體的數(shù)據(jù)。例如,使用重定向后的字體實(shí)例顯示或打印待處理文檔中使用所述內(nèi)嵌字體的數(shù)據(jù)。所述本地字體庫(kù)是指安裝在處理該文檔的設(shè)備上字體實(shí)例的集合,以及用于管理這些字體實(shí)例所需要的數(shù)據(jù)和程序。特別地,在計(jì)算機(jī)設(shè)備上,本地字體庫(kù)中的字體實(shí)例可以由操作系統(tǒng)(如 Windows、Linux)或者應(yīng)用軟件(如 Microsoft Office,Adobe Reader) 來(lái)管理,并以文件的方式存儲(chǔ)在計(jì)算機(jī)的存儲(chǔ)設(shè)備上。步驟10中,確定待處理文檔中內(nèi)嵌字體的字體唯一標(biāo)識(shí),具體可以采用如下三種方法第一種從待處理文檔中或與待處理文檔相關(guān)聯(lián)的文件中獲取字體唯一標(biāo)識(shí),將獲取到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí);采用本發(fā)方法,需要預(yù)先將內(nèi)嵌字體的字體唯一標(biāo)識(shí)存儲(chǔ)在待處理文檔或與待處理文檔相關(guān)聯(lián)的文件中;第二種,根據(jù)待處理文檔中記錄的內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取所述內(nèi)嵌字體的字體實(shí)例;根據(jù)獲取到的字體實(shí)例生成字體唯一標(biāo)識(shí),將生成的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí);第三種,根據(jù)待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取所述內(nèi)嵌字體的字體實(shí)例;根據(jù)獲取到的字體實(shí)例生成字體唯一標(biāo)識(shí);查詢與生成的字體唯一標(biāo)識(shí)等價(jià)和/或相似的字體唯一標(biāo)識(shí);將生成的字體唯一標(biāo)識(shí)與查詢到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。第四種,從待處理文檔中或與待處理文檔相關(guān)聯(lián)的文件中獲取字體唯一標(biāo)識(shí);查詢與獲取的字體唯一標(biāo)識(shí)等價(jià)和/或相似的字體唯一標(biāo)識(shí);將獲取的字體唯一標(biāo)識(shí)與查詢到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。上述第三種和第四種方法中,查詢與生成的字體唯一標(biāo)識(shí)等價(jià)和/或相似的字體唯一標(biāo)識(shí)的具體實(shí)現(xiàn)方法可以如下首先,向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入生成的字體唯一標(biāo)識(shí);然后,字體識(shí)別數(shù)據(jù)庫(kù)單元接收到輸入的字體唯一標(biāo)識(shí)后,執(zhí)行如下兩個(gè)步驟或執(zhí)行其中的一個(gè)步驟
6
步驟一從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢與所述生成的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),返回查詢到的字體唯一標(biāo)識(shí);步驟二 從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí);返回查詢到的字體唯一標(biāo)識(shí)。上述等價(jià)關(guān)系模塊可以基于一個(gè)預(yù)先建立的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表,可以從該表中查詢與所述生成的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),該表的建立方法可以采用如下兩種方法中的一種或任意組合第一種,根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;第二種,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中。上述相似關(guān)系模塊可以基于一個(gè)預(yù)先建立的相似字體唯一標(biāo)識(shí)關(guān)系表,可以從該表中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),該表的建立方法可以采用如下三種方法中的一種或任意組合第一種,利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體, 在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;這里,字體唯一標(biāo)識(shí)可以是根據(jù)字體實(shí)例生成的,也可以完全是人為編寫的,或者是隨機(jī)生成的。第二種,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí), 將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;這里,字體唯一標(biāo)識(shí)可以是人為編寫的;例如,字體的制作者可以提供一個(gè)與字體關(guān)聯(lián)的字體唯一標(biāo)識(shí),可以包括以下部分制作者的域名、字體名、主要版本號(hào)、次要版本號(hào)等。例如字體唯一標(biāo)識(shí)“fonts, founder. com/lan_ting_hei/2. Γ'^^^ιΕ^β] (: 名 fonts, founder, com)的名
黑”(拼音lan_ting_hei)字體的2.1版本,其中2為主要版本號(hào),1為次要版本號(hào)。字體的制作者推出某個(gè)字體的新版本時(shí),較大的修改應(yīng)改變主要版本號(hào),較小的修改應(yīng)改變次要版本號(hào),僅有次要版本號(hào)不同的字體被認(rèn)為是相似的。因此字體的使用者就可以簡(jiǎn)單的根據(jù)次要版本號(hào)斷兩個(gè)字體唯一標(biāo)識(shí)是否相似?,F(xiàn)有的大量字體中雖然有版本號(hào),但并沒有與字體的修改程度約定某種聯(lián)系,所以并不能用來(lái)判斷相似關(guān)系。因此需要字體的制作者或者其它組織統(tǒng)一為各種字體賦予含版本號(hào)的字體唯一標(biāo)識(shí),并且版本號(hào)反映字體的相似程度,才能應(yīng)用此方法。第三種,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中。上述相似關(guān)系模塊還可以根據(jù)版本號(hào)直接找到與生成的字體唯一標(biāo)識(shí)的相似的字體唯一標(biāo)識(shí),步驟如下遍歷字體識(shí)別數(shù)據(jù)庫(kù)單元中保存的所有字體唯一標(biāo)識(shí),逐一與所述生成的字體唯一標(biāo)識(shí)比較,判斷兩者是否僅有次要版本號(hào)字段不同,在判斷為是時(shí),返回遍歷到的字體唯一標(biāo)識(shí)。較佳的,在向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入字體唯一標(biāo)識(shí)的同時(shí),還可以向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入過濾參數(shù);字體識(shí)別數(shù)據(jù)庫(kù)單元根據(jù)過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件,在確定滿足過濾條件時(shí),返回查詢到的字體唯一標(biāo)識(shí);否則,不返回查詢到的字體唯一標(biāo)識(shí)。為了確保字體識(shí)別數(shù)據(jù)庫(kù)單元返回的字體唯一標(biāo)識(shí)與輸入的字體唯一標(biāo)識(shí)之間的相似度,過濾參數(shù)可以包括相似度參數(shù)值,則字體識(shí)別數(shù)據(jù)庫(kù)單元根據(jù)該過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件的具體方法為字體識(shí)別數(shù)據(jù)庫(kù)單元從相似字體唯一標(biāo)識(shí)關(guān)系表中讀取查詢到的字體唯一標(biāo)識(shí)與所述生成的字體唯一標(biāo)識(shí)的相似度參數(shù)值;判斷讀取的相似度參數(shù)值與輸入的相似度參數(shù)值是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。例如,判斷讀取的相似度參數(shù)值是否大于輸入的相似度參數(shù)值,若是,則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否則,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。再例如,判斷讀取的相似度參數(shù)值是否在輸入的兩個(gè)相似度參數(shù)值構(gòu)成的相似度參數(shù)值范圍內(nèi),若是,則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否則,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。這里,需要在相似字體唯一標(biāo)識(shí)關(guān)系表中增加一個(gè)相似度字段,可以0-9的數(shù)字表示相似程度,0表示不太相似,9表示很相似。僅有次要版本號(hào)不同的字體唯一標(biāo)識(shí)可以取一個(gè)固定值(如7),或者用其他方法確定。過濾參數(shù)還可以包括標(biāo)識(shí)類型信息,則字體識(shí)別數(shù)據(jù)庫(kù)單元根據(jù)該過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件的具體方法為字體識(shí)別數(shù)據(jù)庫(kù)單元判斷所述生成的字體唯一標(biāo)識(shí)的標(biāo)識(shí)類型與過濾參數(shù)中的標(biāo)識(shí)類型是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。例如,判斷所述生成的字體唯一標(biāo)識(shí)的類型是否為過濾參數(shù)中的的標(biāo)識(shí)類型,若是,則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否貝U,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。這里,標(biāo)識(shí)類型是指標(biāo)識(shí)的生成機(jī)制或方法,例如,根據(jù)字體實(shí)例的元數(shù)據(jù)生成的兩個(gè)字體唯一標(biāo)識(shí)為同一類型的標(biāo)識(shí),根據(jù)字體實(shí)例中字形數(shù)據(jù)的摘要值生成的兩個(gè)字體唯一標(biāo)識(shí)為同一類型的標(biāo)識(shí)。由于查詢者通常只能處理有限類型的字體唯一標(biāo)識(shí),因此采用本方法可以確保字體識(shí)別數(shù)據(jù)庫(kù)單元返回的字體唯一標(biāo)識(shí)的類型是查詢者能夠處理的類型;另一方面,查詢者輸入一種與輸入的字體唯一標(biāo)識(shí)的類型不同的標(biāo)識(shí)類型,可以得到與輸入的字體唯一標(biāo)識(shí)的類型不同的字體唯一標(biāo)識(shí),即可以將輸入的字體唯一標(biāo)識(shí)轉(zhuǎn)換為另一種類型。字體識(shí)別數(shù)據(jù)庫(kù)單元還可建立一張“標(biāo)識(shí)-本地字體”關(guān)系表,用于維護(hù)字體唯一標(biāo)識(shí)與該字體唯一標(biāo)識(shí)所對(duì)應(yīng)的本地字體實(shí)例的關(guān)系??梢姡景l(fā)明中字體識(shí)別數(shù)據(jù)庫(kù)單元的主要作用是給定一個(gè)字體唯一標(biāo)識(shí),查詢與之等價(jià)或相似的其它字體唯一標(biāo)識(shí)(本發(fā)明中,字體唯一標(biāo)識(shí)相似就意味著它們代表的字體相似)。字體唯一標(biāo)識(shí)可以在世界范圍內(nèi)唯一的確定一個(gè)字體,但是每個(gè)字體卻可以有多個(gè)字體唯一標(biāo)識(shí),而且可能無(wú)法簡(jiǎn)單地互相比較。例如本發(fā)明提供的生成字體唯一標(biāo)識(shí)的方法,選擇不同的字符組作為鍵,會(huì)得到不同的字體唯一標(biāo)識(shí);如果兩個(gè)唯一標(biāo)識(shí)的鍵范圍不交疊,就無(wú)法簡(jiǎn)單判斷兩者是否等價(jià)。此外,不同的計(jì)算機(jī)系統(tǒng)、字體發(fā)行者、文檔顯示處理程序、字體管理程序可能選擇完全不同的字體唯一標(biāo)識(shí)架構(gòu)(例如,可能人工編寫,可能基于⑶ID (GlcAalIy Unique Identifier,全球唯一標(biāo)識(shí)符),也可能基于整個(gè)字體文件的摘要),因而互相無(wú)法識(shí)別對(duì)方生成的字體唯一標(biāo)識(shí)。最后,一般的字體唯一標(biāo)識(shí)本身無(wú)法反映兩個(gè)字體的相似程度,只能判斷等價(jià)關(guān)系,但有時(shí)候希望將一種無(wú)法獲得的字體用另一種相似的字體替換,這就需要找出與一個(gè)字體唯一標(biāo)識(shí)相似的其它字體唯一標(biāo)識(shí)。因此,字體識(shí)別數(shù)據(jù)庫(kù)單元能夠很好解決上述問題。本發(fā)明中,根據(jù)字體實(shí)例生成字體唯一標(biāo)識(shí)的方法可以為選取一個(gè)或多個(gè)設(shè)定字符,從字體實(shí)例中獲取與設(shè)定字符對(duì)應(yīng)的字形數(shù)據(jù),利用摘要算法計(jì)算基于獲取的各字形數(shù)據(jù)的摘要值;根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)。這里,強(qiáng)調(diào)“基于”是因?yàn)榈谝?,?jì)算摘要時(shí),除了字形數(shù)據(jù),還可能加入其它數(shù)據(jù),如字體元數(shù)據(jù);第二,不一定是分別計(jì)算各字形數(shù)據(jù)的摘要,也可以是先各字形數(shù)據(jù)為拼接為一體,再計(jì)算摘要。這里,根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)的方法為生成包括一個(gè)或多個(gè)對(duì)應(yīng)關(guān)系(即表項(xiàng))的映射表,每個(gè)表項(xiàng)有一個(gè)鍵與一個(gè)值,鍵為所述設(shè)定字符的子集或該子集的標(biāo)識(shí),值為該子集中的字符對(duì)應(yīng)的字形數(shù)據(jù)的摘要值;將映射表作為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)的一部分。當(dāng)然,字體唯一標(biāo)識(shí)中還可以包括其他信息,例如字體名、版本號(hào)、制造商名稱等。通常,選取的設(shè)定字符是字體的字符集中最常用的字符,如最常用的4個(gè)漢字。對(duì)于字體文件simsun. ttf(新宋體),示例的字體唯一標(biāo)識(shí)如下
< xml version=" 1.0" >
<font-id font-name=’’新宋體” version=”x.y.z’’ foundry="ABC"> <char-glyph-map digest-method="MD5">
〈item chars =,’的” glyph-digest=,,53dl 169058611886e5cf2l)2b4dd0627f’ /> 〈item chars =”一” glyph-digest="c8f77ee32399b7bbe05560f9da7aa5a3" /> <item chars =”是” glyph-digest="65c8c486368da89dedd430b09127f883" />
<item chars =" 了 ” glyph-digest=”5e770190elfae6e6a37e7d77f06bb9e9” />
</char-glyph-map>
</font-id>這個(gè)示例是XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)格式的,但是其它等效的格式也是可能的。font-id元素表示整個(gè)字體唯一標(biāo)識(shí)。font-id有幾個(gè)屬性 font-name (字體名),version (版本),foundry (制作者),但僅供參考,一般不作為比較字體唯一標(biāo)識(shí)的依據(jù)。char-glyph-map元素是前面所說的映射表,有4個(gè)表項(xiàng)(item元素), 每個(gè)表項(xiàng)有一個(gè)鍵和一個(gè)值。本示例中,4個(gè)表項(xiàng)的鍵(chars屬性)分別是最常用的4個(gè)漢字字符(的、一、是、了),而值分別是這四個(gè)字符在字體simsun. ttf中的字形數(shù)據(jù)的MD5 摘要值(glyph-digest屬性,采用16進(jìn)制字符串表示)。在這個(gè)例子中,映射表中的鍵都是
單個(gè)字符。而在另外的實(shí)施例中,鍵可以是一組字符,例如〈?xml version=”1.0,,?>
<font-id font-name=”新宋體” version=”x.y.z,,foundry="ABC"> <char-glyph-map digest-method="MD5 ">
<item chars =,, 的一是了” glyph-digest=’, c4eeb6ecb83367301fae09f328911b24"/>
</char-glyph-map> </font-id>在這個(gè)示例中,有一個(gè)表項(xiàng)(item),鍵(chars)是“的一是了”四個(gè)字符組成的字符串,而值(glyph-digest)是這幾個(gè)字符對(duì)應(yīng)的字形數(shù)據(jù)的MD5摘要值。摘要值的計(jì)算方法可以有多種,例如先將這幾個(gè)字形數(shù)據(jù)做二進(jìn)制連接,再求其MD5摘要值;或者先分別求這幾個(gè)字形數(shù)據(jù)的MD5摘要值,再將這幾個(gè)摘要值做二進(jìn)制連接,最后求連接后的字符串的摘要值。由于摘要值一般比一個(gè)字形數(shù)據(jù)小,所以可以預(yù)先計(jì)算一個(gè)字體實(shí)例的各個(gè)字形數(shù)據(jù)的摘要值,并保存起來(lái);當(dāng)需要求其一個(gè)子集的摘要值時(shí),則采用后一種算法,這樣可以比前一種算法快一些。除此之外,兩種算法沒有本質(zhì)區(qū)別。在另一個(gè)示例中,還可以用一組字符的代號(hào)作為鍵,例如
< xml version=" 1.0" >
<font-id font-name=’,新宋體” version=,,x,y.z’’ foundry="ABC"> <char-glyph-map digest-method="MD5">
〈itemcharset-name="zh-top-4"glyph-digest="
c4eeb6ecb83367301fae09B28911b24"/>
</char-glyph-map> </font-id>在這個(gè)示例中有一個(gè)表項(xiàng)(item),鍵是charset-name屬性,表示字符集合的代號(hào),‘‘zh-top-4”的意思是中文的前4個(gè)最常用的字符,按使用頻率降序排列,也就是“的一是了”四個(gè)字符。而值(glyph-digest)是這幾個(gè)字符對(duì)應(yīng)的字形數(shù)據(jù)的MD5摘要值。當(dāng)然,對(duì)于字符集合的代號(hào)的解釋,在不同的計(jì)算機(jī)系統(tǒng)上必須是完全一致的,包括其代表的字符的排序,這樣才能保證互操作性。由于摘要算法對(duì)輸入數(shù)據(jù)的順序是敏感的,因此當(dāng)使用一組字符或者其代號(hào)作為鍵時(shí),其中的字符的順序也是重要的,一般應(yīng)與計(jì)算摘要值時(shí)字形數(shù)據(jù)的輸入順序相同。單個(gè)字符、一組字符、代號(hào)作為鍵的條目可以在一個(gè)字體唯一標(biāo)識(shí)中同時(shí)出現(xiàn),而且范圍上可以有交疊,但是不能出現(xiàn)兩個(gè)鍵完全相同的條目。相應(yīng)的,步驟11中在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例, 其具體實(shí)現(xiàn)方法如下CN 102541963 A
對(duì)于本地字體庫(kù)中的各字體實(shí)例,獲取該字體實(shí)例的字體唯一標(biāo)識(shí);確定獲取到的字體唯一標(biāo)識(shí)與所述確定的字體唯一標(biāo)識(shí)中等鍵等值的對(duì)應(yīng)關(guān)系(表項(xiàng))和等鍵不等值的對(duì)應(yīng)關(guān)系(表項(xiàng));根據(jù)確定的對(duì)應(yīng)關(guān)系(表項(xiàng))判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配;在判斷為是時(shí),將該字體實(shí)例確定為與所述確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例?!暗孺I等值”是指兩個(gè)表項(xiàng)的鍵相等且值相等,“等鍵不等值”是指兩個(gè)表項(xiàng)的鍵相等但是值不等。本發(fā)明中,本地字體庫(kù)中的每個(gè)字體實(shí)例都需要有一個(gè)或多個(gè)字體唯一標(biāo)識(shí)。根據(jù)確定的對(duì)應(yīng)關(guān)系(表項(xiàng))判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配的具體方法舉例如下在等鍵等值的表項(xiàng)的權(quán)值之和超過預(yù)先設(shè)定的第一閾值時(shí),將該字體實(shí)例確定為與所述確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例;在等鍵不等值的對(duì)應(yīng)關(guān)系的權(quán)值之和超過預(yù)先設(shè)定的第二閾值時(shí),將該字體實(shí)例確定為與所述確定的字體唯一標(biāo)識(shí)不匹配的字體實(shí)例;當(dāng)前述兩種條件都被滿足時(shí),按第二種條件被滿足執(zhí)行;在其他情況下給出無(wú)法判定的結(jié)果。表項(xiàng)的權(quán)值可以根據(jù)其鍵代表的字符的權(quán)值確定。例如可以規(guī)定每個(gè)字符有權(quán)值1,表項(xiàng)的權(quán)值為字符權(quán)值之和,如果鍵由4個(gè)字符組成,則該表項(xiàng)的權(quán)值為4 ;還可以規(guī)定每個(gè)字符的權(quán)值與其使用頻率有關(guān)。所述第一閾值第二閾值可以由軟件設(shè)計(jì)者或最終用戶來(lái)設(shè)置。在具體實(shí)現(xiàn)中,所述第一閾值通常大于0,而所述第二閾值通??梢缘扔?,這樣當(dāng)出現(xiàn)任何“等鍵不等值”的現(xiàn)象時(shí),都會(huì)判定為不匹配。較佳的,在根據(jù)確定的對(duì)應(yīng)關(guān)系(表項(xiàng))判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配之前,還可以比較獲取到的字體唯一標(biāo)識(shí)與所述確定的字體唯一標(biāo)識(shí)中除鍵與值的對(duì)應(yīng)關(guān)系(表項(xiàng))之外的其他信息;進(jìn)而根據(jù)比較結(jié)果和所述確定的對(duì)應(yīng)關(guān)系(表項(xiàng)),判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配。例如, 比較獲取到的字體唯一標(biāo)識(shí)中的“制造商”字段與所述確定的字體唯一標(biāo)識(shí)中的“制造商” 字段是否相同,若不相同,并且上述判斷等鍵不等值的對(duì)應(yīng)關(guān)系的個(gè)數(shù)超過預(yù)先設(shè)定的第二閾值,則確定獲取到的字體唯一標(biāo)識(shí)不與所述確定的字體唯一標(biāo)識(shí)匹配,若相同,并且上述判斷等鍵等值的對(duì)應(yīng)關(guān)系的個(gè)數(shù)超過預(yù)先設(shè)定的第一閾值,則確定獲取到的字體唯一標(biāo)識(shí)與所述確定的字體唯一標(biāo)識(shí)匹配。當(dāng)然,還可以按照其他判定規(guī)則進(jìn)行判斷。下面對(duì)如何判斷兩個(gè)字體唯一標(biāo)識(shí)是否匹配進(jìn)行舉例說明步驟SOl 對(duì)于兩個(gè)字體唯一標(biāo)識(shí)中的映射表,逐一比較鍵相同的對(duì)應(yīng)關(guān)系中的值,如果有足夠多的值相等而沒有不等的值,則給出肯定的結(jié)果;如果有足夠多的值不等而沒有相等的值,則給出否定的結(jié)果;其他情形則給出無(wú)法判定的結(jié)果;步驟S02 比較兩個(gè)字體唯一標(biāo)識(shí)中的其他需要比較的信息,給出肯定、否定或無(wú)法判定的結(jié)果;步驟S03 綜合以上兩步的結(jié)果,給出兩個(gè)字體唯一標(biāo)識(shí)是否匹配的結(jié)論。兩個(gè)字體唯一標(biāo)識(shí)匹配,也就意味著它們代表的字體實(shí)例屬于同一字體或者足夠相似,因而兩個(gè)字體實(shí)例可以互換使用。生成字體唯一標(biāo)識(shí)的方法前面已經(jīng)論述,不再重復(fù)。步驟SOl中,鍵可以是單個(gè)字符、一組字符、一組字符的代號(hào)等。鍵是否相同的判斷方法一般是把鍵當(dāng)作字符串來(lái)比較; 當(dāng)一個(gè)鍵是一組字符,另一個(gè)鍵是一組字符的代號(hào)時(shí),應(yīng)將代號(hào)實(shí)際代表的字符組參與比較。值的比較可以是二進(jìn)制比較,但如果對(duì)摘要值進(jìn)行了文本編碼(如Base64編碼或者16進(jìn)制字符串編碼),也可進(jìn)行字符串比較。步驟S02中是比較字體唯一標(biāo)識(shí)中的其他需要比較的信息。其他需要比較的信息可能是字體名、版本、制造商等。例如可以規(guī)定,只有制造商(foundry字段)相同,兩個(gè)字體唯一標(biāo)識(shí)才可能匹配。但是一般情況下,無(wú)需再比較其它信息,這一步的結(jié)果可視為“肯定”。步驟S03綜合步驟SOl和步驟S02的結(jié)果,給出兩個(gè)字體唯一標(biāo)識(shí)是否匹配的結(jié)論。通常,如果步驟SOl和步驟S02都給出肯定的結(jié)果,則認(rèn)為兩個(gè)字體唯一標(biāo)識(shí)匹配;有一個(gè)以上的步驟(包括一個(gè)步驟)給出否定結(jié)果,則認(rèn)為兩個(gè)字體唯一標(biāo)識(shí)不匹配;否則, 認(rèn)為兩個(gè)字體唯一標(biāo)識(shí)不匹配或無(wú)法判定(由程序設(shè)計(jì)者或用戶來(lái)決定怎樣處理)。例如下面兩個(gè)字體唯一標(biāo)識(shí)有三個(gè)條目是“等鍵等值”的,代表了三個(gè)字符“的是了”。如果規(guī)定3個(gè)以上(包括3個(gè))字符的摘要值相等就算匹配,不需比較其它信息,那么這兩個(gè)字體唯一標(biāo)識(shí)匹配。
< xml version=" 1.0" >
<font-id font-name=,’新宋體” version=,,x.y.z” foundry="ABC"> <char-glyph-map digest-method="MD5 ">
〈item chars =”的” glyph-digest="53dl 169058611886e5cf2b2b4dd0627f' /> 〈item chars =”是"glyph-digest="65c8c486368da89dedd430b09127fB83" />
<item chars =" 了 ” glyph-digest=”5e770190elfae6e6a37e7d77f06bb9e9" />
</char-glyph-map> </font-id>
< xml version=" 1.0" >
<font-id font-name=,,新宋體 2” version="x.y.u" foundry="ABC"> <char-glyph-map digest-method="MD5 ">
<item chars =,’的” glyph-digest=”53cil 169058611886e5cf2t)2b4dd0627f’ /> <item chars " glyph-digest="c8f77ee32399b7bbe05560f9da7aa5a3" /> <item chars =”是"glyph-digest="65c8c486368da89dedd430b09127f883" />
<item chars =,,了 ” glyph-digest=”5e770190elfae6e6a37e7d77f06bb9e9,,/>
</char-glyph-map> </font-id> 而下面的字體唯一標(biāo)識(shí)與上面兩個(gè)都不匹配,因?yàn)椤暗摹弊帧暗孺I不等值”
12
< xml version=" 1.0" >
<font-id font-name=”新宋體 3” version="x.y.u" foundry="ABC"> <char-glyph-map digest-method="MD5">
<item chars =”的” glyph-digest=” 9c7d921 d527212b6547f79f0d5b249c 1" /> <item chars ="—" glyph-digest="c8f77ee32399b7bbe05560f9da7aa5a3" /> <item chars =”是” glyph-digest="65c8c486368da89dedd430b09127fB83" />
<item chars =" 了 ” glyph-digest=”5e770190elfae6e6a37e7d77f06bb9e9” />
</char-glyph-map> </font-id>較佳的,步驟11中在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例之后,還可以進(jìn)一步判斷查找到的字體實(shí)例是否滿足所述待處理文檔的處理需求;在判斷查找到的字體實(shí)例滿足所述待處理文檔的處理需求時(shí),步驟12中才利用該字體實(shí)例處理所述待處理文檔。上述判斷查找到的字體實(shí)例是否滿足所述待處理文檔的處理需求,具體方法可以如下判斷查找到的字體實(shí)例中所包含的字符是否全部或大部分覆蓋所述待處理文檔中使用所述內(nèi)嵌字體的字符,若是,則確定查找到的字體實(shí)例滿足所述待處理文檔的處理需求,否則,確定查找到的字體實(shí)例不滿足所述待處理文檔的處理需求。較佳的,步驟11中在本地字體庫(kù)中未查找到與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例時(shí),可以根據(jù)待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取到所述內(nèi)嵌字體的字體實(shí)例;將獲取到的字體實(shí)例保存在本地字體庫(kù)中;并利用保存在本地字體庫(kù)中的所述字體實(shí)例處理待處理文檔。上述獲取所述內(nèi)嵌字體的字體實(shí)例時(shí),可以只獲取字體實(shí)例中滿足文檔的顯示和處理需求的最少量的數(shù)據(jù)集,而不是獲取整個(gè)字體實(shí)例。內(nèi)嵌字體的字體實(shí)例可能是超出使用它的文檔的需要的,例如,字體實(shí)例包括10000個(gè)字符的字形,但文檔中使用該字體的不同字符可能只有1000個(gè)。如果內(nèi)嵌字體實(shí)例需要從網(wǎng)上下載,那么完全下載將會(huì)耗費(fèi)不必要的流量和時(shí)間。因此,可以僅下載那1000個(gè)字符的字形數(shù)據(jù)。將獲取到的字體實(shí)例保存在本地字體庫(kù)中時(shí),如果本地字體庫(kù)中還沒有等價(jià)或相似的字體實(shí)例,就直接將字體實(shí)例加入本地字體庫(kù),并登記其字體唯一標(biāo)識(shí);反之,可以將字體實(shí)例中的數(shù)據(jù)并入本地字體庫(kù)中的等價(jià)或相似的字體實(shí)例,其中重復(fù)的數(shù)據(jù)最好加以消除,以節(jié)省空間。根據(jù)本地字體庫(kù)的具體數(shù)據(jù)結(jié)構(gòu)和字體實(shí)例的格式,“加入”和“并入” 的操作可能是多樣的,例如創(chuàng)建或修改字體文件,更新字體注冊(cè)信息等。這里,利用保存在本地字體庫(kù)中的所述字體實(shí)例處理待處理文檔,具體可以如下 將待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址重定向到保存的字體實(shí)例,可以是將所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址更新為保存的字體實(shí)例在字體庫(kù)中的存儲(chǔ)地址;使用重定向后的字體實(shí)例處理所述待處理文檔中使用所述內(nèi)嵌字體的數(shù)據(jù)。此外,當(dāng)本地字體庫(kù)需要減少占用的存儲(chǔ)空間時(shí),可以按照一定的算法清除部分字體實(shí)例,或者部分字體實(shí)例中的部分?jǐn)?shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)容量是有限的,特別是嵌入式設(shè)備,因此不應(yīng)讓本地字體庫(kù)無(wú)限制的膨脹。清除字體數(shù)據(jù)的算法可以是基于使用頻率的,或者最近使用的,或者使用次數(shù)等等。本發(fā)明中,字體唯一標(biāo)識(shí)的生成方法還有很多,例如可以是根據(jù)字體的字體實(shí)例中的元數(shù)據(jù)(如名稱、開發(fā)者、版本號(hào))以及字寬表、字距調(diào)整(Kerning)表等生成字體唯一標(biāo)識(shí)。也可以人為的設(shè)計(jì)一個(gè)字體唯一標(biāo)識(shí),與具體的字體數(shù)據(jù)無(wú)關(guān)。本發(fā)明中的摘要算法可以選擇MD5算法SHA-I算法或CRC算法等。本發(fā)明中,使用本地字體庫(kù)中的字體實(shí)例處理文檔中的數(shù)據(jù),這樣做有以下好處第一,對(duì)于內(nèi)嵌字體的字體實(shí)例在其他服務(wù)器中的情形,如果字體實(shí)例尚未下載, 則可以不再下載,從而節(jié)約網(wǎng)絡(luò)流量和下載時(shí)間。第二,當(dāng)同時(shí)打開多個(gè)文檔,而且它們使用了類似的內(nèi)嵌字體時(shí),使用共享的本地字體庫(kù)中的一個(gè)字體實(shí)例,而不是多個(gè)內(nèi)嵌字體實(shí)例,能夠節(jié)約很多內(nèi)存和字體加載時(shí)間??梢钥闯?,隨著處理程序處理的文檔增多,本地字體庫(kù)中的字體實(shí)例會(huì)逐步增多,因此處理程序會(huì)有越來(lái)越多的可能性獲得效率的提升。參見圖2,本發(fā)明實(shí)施例還提供一種文檔處理裝置,該裝置包括確定單元20,用于確定待處理文檔中內(nèi)嵌字體的字體唯一標(biāo)識(shí);查找單元21,用于在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例;處理單元22,用于利用查找到的字體實(shí)例處理所述待處理文檔。所述確定單元20包括第一單元、第二單元、第三單元、第四單元中的一個(gè)或任意組合,其中所述第一單元,用于從所述待處理文檔中或與所述待處理文檔相關(guān)聯(lián)的文件中獲取字體唯一標(biāo)識(shí),將獲取到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí);所述第二單元,用于根據(jù)所述待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取所述內(nèi)嵌字體的字體實(shí)例;根據(jù)獲取到的字體實(shí)例生成字體唯一標(biāo)識(shí),將生成的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí);或者,所述第三單元,用于根據(jù)所述待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取所述內(nèi)嵌字體的字體實(shí)例;根據(jù)獲取到的字體實(shí)例生成字體唯一標(biāo)識(shí);查詢與生成的字體唯一標(biāo)識(shí)等價(jià)和/或相似的字體唯一標(biāo)識(shí);將生成的字體唯一標(biāo)識(shí)與查詢到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí);所述第四單元,用于從待處理文檔中或與待處理文檔相關(guān)聯(lián)的文件中獲取字體唯一標(biāo)識(shí);查詢與獲取的字體唯一標(biāo)識(shí)等價(jià)和/或相似的字體唯一標(biāo)識(shí);將獲取的字體唯一標(biāo)識(shí)與查詢到的字體唯一標(biāo)識(shí)確定為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。所述第三單元用于向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入所述生成的字體唯一標(biāo)識(shí);該裝置還包括字體識(shí)別數(shù)據(jù)庫(kù)單元23,用于接收所述生成的字體唯一標(biāo)識(shí),并執(zhí)行如下兩個(gè)步驟或執(zhí)行其中的一個(gè)步驟
步驟一從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢與所述生成的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),返回查詢到的字體唯一標(biāo)識(shí);步驟二 從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),返回查詢到的字體唯一標(biāo)識(shí)。所述字體識(shí)別數(shù)據(jù)庫(kù)單元23用于從等價(jià)關(guān)系模塊的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表查詢與所述生成的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),并按照如下方法建立所述等價(jià)字體唯一標(biāo)識(shí)關(guān)系表根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中。所述字體識(shí)別數(shù)據(jù)庫(kù)單元23用于從相似關(guān)系模塊的相似字體唯一標(biāo)識(shí)關(guān)系表中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),并按照如下方法建立所述相似字體唯一標(biāo)識(shí)關(guān)系表利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體,在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí),將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中。所述第三單元還用于在向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入生成的字體唯一標(biāo)識(shí)的同時(shí),向字體識(shí)別數(shù)據(jù)庫(kù)單元輸入過濾參數(shù);所述字體識(shí)別數(shù)據(jù)庫(kù)單元23還用于根據(jù)所述過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件,在確定滿足過濾條件時(shí),返回查詢到的字體唯一標(biāo)識(shí)。所述字體識(shí)別數(shù)據(jù)庫(kù)單元23用于在過濾參數(shù)包括相似度參數(shù)值時(shí),從相似字體唯一標(biāo)識(shí)關(guān)系表中讀取查詢到的字體唯一標(biāo)識(shí)與所述生成的字體唯一標(biāo)識(shí)的相似度參數(shù)值;判斷讀取的相似度參數(shù)值與輸入的相似度參數(shù)值是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。所述字體識(shí)別數(shù)據(jù)庫(kù)單元23用于在所述過濾參數(shù)包括標(biāo)識(shí)類型信息時(shí),判斷所述生成的字體唯一標(biāo)識(shí)的類型與過濾參數(shù)中的標(biāo)識(shí)類型是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。所述第二單元或第三單元用于按照如下方法根據(jù)字體實(shí)例生成字體唯一標(biāo)識(shí)選取一個(gè)或多個(gè)設(shè)定字符,從字體實(shí)例中獲取與設(shè)定字符對(duì)應(yīng)的字形數(shù)據(jù),利用摘要算法計(jì)算基于獲取的各字形數(shù)據(jù)的摘要值;根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)。所述第二單元或第三單元用于按照如下方法根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)生成包括一個(gè)或多個(gè)表項(xiàng)的映射表,每個(gè)表項(xiàng)有一個(gè)鍵與一個(gè)值,所述鍵為所述設(shè)定字符的子集或該子集的標(biāo)識(shí),所述值為該子集中的字符對(duì)應(yīng)的字形數(shù)據(jù)的摘要值;將所述映射表作為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。所述查找單元21用于對(duì)于本地字體庫(kù)中的各字體實(shí)例,獲取該字體實(shí)例的字體唯一標(biāo)識(shí);確定獲取到的字體唯一標(biāo)識(shí)與所述確定的字體唯一標(biāo)識(shí)中等鍵等值的表項(xiàng)和等鍵不等值的表項(xiàng);根據(jù)確定的表項(xiàng)判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配;在判斷為是時(shí),將該字體實(shí)例確定為與所述確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例。所述查找單元21還用于在根據(jù)確定的表項(xiàng)判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配之前,比較獲取到的字體唯一標(biāo)識(shí)與所述確定的字體唯一標(biāo)識(shí)中除表項(xiàng)之外的其他信息;根據(jù)比較結(jié)果和所述確定的表項(xiàng),判斷獲取到的字體唯一標(biāo)識(shí)是否與所述確定的字體唯一標(biāo)識(shí)匹配。所述查找單元21還用于在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例之后,并且利用查找到的字體實(shí)例處理所述待處理文檔之前,判斷查找到的字體實(shí)例是否滿足所述待處理文檔的處理需求;所述處理單元22用于在判斷查找到的字體實(shí)例滿足所述待處理文檔的處理需求時(shí),利用該字體實(shí)例處理所述待處理文檔。所述查找單元21用于按照如下方法判斷查找到的字體實(shí)例是否滿足所述待處理文檔的處理需求判斷查找到的字體實(shí)例中所包含的字符是否全部或部分覆蓋所述待處理文檔中使用所述內(nèi)嵌字體的字符,若是,則確定查找到的字體實(shí)例滿足所述待處理文檔的處理需求,否則,確定查找到的字體實(shí)例不滿足所述待處理文檔的處理需求。所述查找單元21還用于在本地字體庫(kù)中未查找到與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例時(shí),根據(jù)所述待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址,獲取到所述內(nèi)嵌字體的字體實(shí)例;將獲取到的字體實(shí)例保存在本地字體庫(kù)中;所述處理單元22用于利用保存在本地字體庫(kù)中的所述字體實(shí)例處理所述待處理文檔。所述處理單元22用于將所述待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址重定向到查找到的字體實(shí)例;使用重定向后的字體實(shí)例處理所述待處理文檔中使用所述內(nèi)嵌字體的數(shù)據(jù)。
所述處理單元22用于將所述待處理文檔中記錄的所述內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址重定向到保存的字體實(shí)例;使用重定向后的字體實(shí)例處理所述待處理文檔中使用所述內(nèi)嵌字體的數(shù)據(jù)。參見圖3,本發(fā)明實(shí)施例還提供一種字體標(biāo)識(shí)查詢方法,具體包括以下步驟步驟30 接收輸入的字體唯一標(biāo)識(shí);步驟31 從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);和/或,從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);步驟32 返回查詢到的字體唯一標(biāo)識(shí)。具體可以從等價(jià)關(guān)系模塊的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表查詢與輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),并可以采用如下兩種方法中的一種或任意組合方法,建立所述等價(jià)字體唯一標(biāo)識(shí)關(guān)系表第一種,根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;第二種,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中。具體可以從相似關(guān)系模塊的相似字體唯一標(biāo)識(shí)關(guān)系表中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),并可以采用如下三種方法中的一種或任意組合方法,建立所述相似字體唯一標(biāo)識(shí)關(guān)系表第一種,利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體, 在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;第二種,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí), 將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;第三種,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中。較佳的,在步驟30中接收到輸入的字體唯一標(biāo)識(shí)的同時(shí),還可以接收到輸入的過濾參數(shù);可以根據(jù)過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件,在確定滿足過濾條件時(shí),返回查詢到的字體唯一標(biāo)識(shí);否則,不返回查詢到的字體唯一標(biāo)識(shí)。過濾參數(shù)可以包括相似度參數(shù)值,則根據(jù)該過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件的具體方法為從相似字體唯一標(biāo)識(shí)關(guān)系表中讀取查詢到的字體唯一標(biāo)識(shí)與所述輸入的字體唯一標(biāo)識(shí)的相似度參數(shù)值;判斷讀取的相似度參數(shù)值與輸入的相似度參數(shù)值是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。 例如,判斷讀取的相似度參數(shù)值是否大于輸入的相似度參數(shù)值,若是,則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否則,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。再例如,判斷讀取的相似度參數(shù)值是否在輸入的兩個(gè)相似度參數(shù)值構(gòu)成的相似度參數(shù)值范圍內(nèi),若是, 則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否則,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。過濾參數(shù)還可以包括標(biāo)識(shí)類型信息,則根據(jù)該過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件的具體方法為判斷所述生成的字體唯一標(biāo)識(shí)的標(biāo)識(shí)類型與過濾參數(shù)中的標(biāo)識(shí)類型是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。例如,判斷所述生成的字體唯一標(biāo)識(shí)的類型是否為輸入的標(biāo)識(shí)類型,若是,則確定查詢到的字體唯一標(biāo)識(shí)滿足過濾條件,否則,確定查詢到的字體唯一標(biāo)識(shí)不滿足過濾條件。這里,標(biāo)識(shí)類型是指標(biāo)識(shí)的生成機(jī)制或方法,例如,根據(jù)字體實(shí)例的元數(shù)據(jù)生成的兩個(gè)字體唯一標(biāo)識(shí)為同一類型的標(biāo)識(shí),根據(jù)字體實(shí)例中字形數(shù)據(jù)的摘要值生成的兩個(gè)字體唯一標(biāo)識(shí)為同一類型的標(biāo)識(shí)。本發(fā)明中,根據(jù)字體實(shí)例生成字體唯一標(biāo)識(shí)的方法可以為選取一個(gè)或多個(gè)設(shè)定字符,從字體實(shí)例中獲取與設(shè)定字符對(duì)應(yīng)的字形數(shù)據(jù),利用摘要算法計(jì)算基于獲取的各字形數(shù)據(jù)的摘要值;根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)。這里,根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)的方法為生成包括一個(gè)或多個(gè)鍵與值的對(duì)應(yīng)關(guān)系(表項(xiàng))的映射表,鍵為所述設(shè)定字符的子集或該子集的標(biāo)識(shí),值為該子集中的字符對(duì)應(yīng)的字形數(shù)據(jù)的摘要值; 將映射表作為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)的一部分。當(dāng)然,映射表中還可以包括其他信息,例如字體名、版本號(hào)、制造商名稱等。參見圖4,本發(fā)明實(shí)施例還提供一種字體標(biāo)識(shí)查詢裝置,該裝置包括接收單元40,用于接收輸入的字體唯一標(biāo)識(shí);等價(jià)關(guān)系查詢單元41,用于從等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);相似關(guān)系查詢單元42,用于從相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);返回單元43,用于返回等價(jià)關(guān)系查詢單元和/或相似關(guān)系查詢單元查詢到的字體唯一標(biāo)識(shí)。該裝置還包括等價(jià)關(guān)系生成單元44,用于根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)關(guān)系模塊的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;相應(yīng)的,所述等價(jià)關(guān)系查詢單元41用于從等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中查詢與輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí)。該裝置還包括相似關(guān)系生成單元45,用于利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體,在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似關(guān)系模塊的相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí),將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;相應(yīng)的,所述相似關(guān)系查詢單元42用于從相似字體唯一標(biāo)識(shí)關(guān)系表中查詢與輸入的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí)。該裝置還包括過濾單元46,用于根據(jù)輸入的過濾參數(shù)確定等價(jià)關(guān)系查詢單元或相似關(guān)系查詢單元查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件,在確定滿足過濾條件時(shí),指示返回單元返回查詢到的字體唯一標(biāo)識(shí)。所述過濾單元46用于在所述過濾參數(shù)包括相似度參數(shù)值時(shí),從相似字體唯一標(biāo)識(shí)關(guān)系表中讀取查詢到的字體唯一標(biāo)識(shí)與所述輸入的字體唯一標(biāo)識(shí)的相似度參數(shù)值;判斷讀取的相似度參數(shù)值與輸入的相似度參數(shù)值是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。所述過濾單元46用于在所述過濾參數(shù)包括標(biāo)識(shí)類型信息時(shí),判斷所述生成的字體唯一標(biāo)識(shí)的類型與過濾參數(shù)中的標(biāo)識(shí)類型是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。所述等價(jià)關(guān)系生成單元44或相似關(guān)系生成單元45用于按照如下方法根據(jù)字體實(shí)例生成字體唯一標(biāo)識(shí)選取一個(gè)或多個(gè)設(shè)定字符,從字體實(shí)例中獲取與設(shè)定字符對(duì)應(yīng)的字形數(shù)據(jù),利用摘要算法計(jì)算基于獲取的各字形數(shù)據(jù)的摘要值;根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)。所述等價(jià)關(guān)系生成單元44或相似關(guān)系生成單元45用于按照如下方法根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)生成包括一個(gè)或多個(gè)鍵與值的對(duì)應(yīng)關(guān)系(表項(xiàng))的映射表,所述鍵為所述設(shè)定字符的子集或該子集的標(biāo)識(shí),所述值為該子集中的字符對(duì)應(yīng)的字形數(shù)據(jù)的摘要值;將所述映射表作為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。綜上,本發(fā)明的有益效果包括本發(fā)明實(shí)施例提供的方案中,首先確定待處理文檔中內(nèi)嵌字體的字體唯一標(biāo)識(shí); 然后在本地字體庫(kù)中查找與確定的字體唯一標(biāo)識(shí)匹配的字體實(shí)例;最后利用查找到的字體實(shí)例處理所述待處理文檔??梢?,采用本發(fā)明,對(duì)于內(nèi)嵌字體,采用本地字體庫(kù)中的字體實(shí)例處理該待處理文檔,而不需要根據(jù)待處理文檔中記錄的內(nèi)嵌字體的字體實(shí)例存儲(chǔ)地址從待處理文檔中獲得字體實(shí)例或從其他服務(wù)器下載到字體實(shí)例,節(jié)省了待處理文檔所需要的內(nèi)存空間、磁盤存儲(chǔ)空間或下載字體實(shí)例所需要的網(wǎng)絡(luò)流量。本發(fā)明實(shí)施例提供的方案中,首先,接收輸入的字體唯一標(biāo)識(shí);然后,從預(yù)先建立的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中查詢與所述生成的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí);和/ 或,從預(yù)先建立的相似字體唯一標(biāo)識(shí)關(guān)系表中查詢與所述生成的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí);最后,返回查詢到的字體唯一標(biāo)識(shí)。本方案中,能夠從預(yù)先建立的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中查詢到與輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí),從預(yù)先建立的相似字體唯一標(biāo)識(shí)關(guān)系表中查詢到與輸入的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí),從而解決了無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)的問題。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種字體標(biāo)識(shí)查詢方法,其特征在于,該方法包括接收輸入的字體唯一標(biāo)識(shí);從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);和/或,從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);返回查詢到的字體唯一標(biāo)識(shí)。
2.如權(quán)利要求1所述的方法,其特征在于,從等價(jià)關(guān)系模塊的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中查詢字體唯一標(biāo)識(shí),建立所述等價(jià)字體唯一標(biāo)識(shí)關(guān)系表的方法包括根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中。
3.如權(quán)利要求1所述的方法,其特征在于,從相似關(guān)系模塊的相似字體唯一標(biāo)識(shí)關(guān)系表中查詢字體唯一標(biāo)識(shí),建立所述相似字體唯一標(biāo)識(shí)關(guān)系表的方法包括利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體,在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí),將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中。
4.如權(quán)利要求1所述的方法,其特征在于,在接收輸入的字體唯一標(biāo)識(shí)的同時(shí),該方法還包括接收到輸入的過濾參數(shù);所述返回查詢到的字體唯一標(biāo)識(shí)包括根據(jù)所述過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件,在確定滿足過濾條件時(shí),返回查詢到的字體唯一標(biāo)識(shí)。
5.如權(quán)利要求4所述的方法,其特征在于,在所述過濾參數(shù)包括相似度參數(shù)值時(shí),所述根據(jù)所述過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件包括從相似關(guān)系模塊中讀取查詢到的字體唯一標(biāo)識(shí)與所述輸入的字體唯一標(biāo)識(shí)的相似度參數(shù)值;判斷讀取的相似度參數(shù)值與輸入的相似度參數(shù)值是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。
6.如權(quán)利要求4所述的方法,其特征在于,在所述過濾參數(shù)包括標(biāo)識(shí)類型信息時(shí),所述根據(jù)所述過濾參數(shù)確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件包括判斷所述生成的字體唯一標(biāo)識(shí)的標(biāo)識(shí)類型與過濾參數(shù)中的標(biāo)識(shí)類型是否滿足設(shè)定關(guān)系;根據(jù)判斷結(jié)果確定查詢到的字體唯一標(biāo)識(shí)是否滿足過濾條件。
7.如權(quán)利要求2所述的方法,其特征在于,根據(jù)字體實(shí)例生成字體唯一標(biāo)識(shí)的方法包括選取一個(gè)或多個(gè)設(shè)定字符,從字體實(shí)例中獲取與設(shè)定字符對(duì)應(yīng)的字形數(shù)據(jù),利用摘要CN 102541963 A算法計(jì)算基于獲取的各字形數(shù)據(jù)的摘要值;根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)。
8.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)計(jì)算得到的摘要值生成字體唯一標(biāo)識(shí)包括生成包括一個(gè)或多個(gè)表項(xiàng)的映射表,每個(gè)表項(xiàng)有一個(gè)鍵與一個(gè)值,鍵為所述設(shè)定字符的子集或該子集的標(biāo)識(shí),值為該子集中的字符對(duì)應(yīng)的字形數(shù)據(jù)的摘要值;將映射表作為所述內(nèi)嵌字體的字體唯一標(biāo)識(shí)。
9.一種字體識(shí)別數(shù)據(jù)庫(kù)裝置,其特征在于,該裝置包括 接收單元,用于接收輸入的字體唯一標(biāo)識(shí);等價(jià)關(guān)系查詢單元,用于從等價(jià)關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的標(biāo)識(shí);相似關(guān)系查詢單元,用于從相似關(guān)系模塊中查詢字體唯一標(biāo)識(shí),該字體唯一標(biāo)識(shí)是與所述輸入的字體唯一標(biāo)識(shí)相似的標(biāo)識(shí);返回單元,用于返回等價(jià)關(guān)系查詢單元和/或相似關(guān)系查詢單元查詢到的字體唯一標(biāo)識(shí)。
10.如權(quán)利要求9所述的裝置,其特征在于,該裝置還包括等價(jià)關(guān)系生成單元,用于根據(jù)字體的一個(gè)或多個(gè)字體實(shí)例生成該字體的多個(gè)字體唯一標(biāo)識(shí);將生成的多個(gè)字體唯一標(biāo)識(shí)作為等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)關(guān)系模塊的等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)等價(jià)的字體唯一標(biāo)識(shí),將該多個(gè)等價(jià)的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;所述等價(jià)關(guān)系查詢單元用于從所述等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中查詢與輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí)。
11.如權(quán)利要求9所述的裝置,其特征在于,該裝置還包括相似關(guān)系生成單元,用于利用字形的模式識(shí)別程序判斷多個(gè)字體中的兩個(gè)字體是否是相似字體,在判斷為是時(shí),將所述兩個(gè)字體的字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似關(guān)系模塊的相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,判斷兩個(gè)字體唯一標(biāo)識(shí)中是否僅有次要版本號(hào)字段不同,在判斷為是時(shí),將所述兩個(gè)字體唯一標(biāo)識(shí)作為相似的字體唯一標(biāo)識(shí)保存在相似字體唯一標(biāo)識(shí)關(guān)系表中;或者,接收用戶輸入的多個(gè)相似的字體唯一標(biāo)識(shí),將該多個(gè)相似的字體唯一標(biāo)識(shí)保存在等價(jià)字體唯一標(biāo)識(shí)關(guān)系表中;所述相似關(guān)系查詢單元用于從所述相似字體唯一標(biāo)識(shí)關(guān)系表中查詢與輸入的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí)。
全文摘要
本發(fā)明實(shí)施例公開了一種字體標(biāo)識(shí)查詢方法及裝置,涉及計(jì)算機(jī)信息處理領(lǐng)域,用于解決現(xiàn)有技術(shù)中的無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)的問題。本方法中,接收輸入的字體唯一標(biāo)識(shí);從字體識(shí)別數(shù)據(jù)庫(kù)單元的等價(jià)關(guān)系模塊中查詢與所述輸入的字體唯一標(biāo)識(shí)等價(jià)的字體唯一標(biāo)識(shí);和/或,從字體識(shí)別數(shù)據(jù)庫(kù)單元的相似關(guān)系模塊中查詢與所述輸入的字體唯一標(biāo)識(shí)相似的字體唯一標(biāo)識(shí);返回查詢到的字體唯一標(biāo)識(shí)。采用本發(fā)明,解決了無(wú)法獲得足夠多的等價(jià)或相似字體唯一標(biāo)識(shí)的問題。
文檔編號(hào)G06F17/30GK102541963SQ201010624270
公開日2012年7月4日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者段垚, 王長(zhǎng)橋 申請(qǐng)人:利德科技發(fā)展有限公司, 北京北大方正技術(shù)研究院有限公司, 北大方正集團(tuán)有限公司