国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      文檔處理方法及裝置的制作方法

      文檔序號:6341408閱讀:196來源:國知局
      專利名稱:文檔處理方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機信息處理領(lǐng)域,尤其涉及一種文檔處理方法及裝置。
      背景技術(shù)
      字體是指具有共同風(fēng)格的一組字形,而字形是字符的可視表示形式。字體實例是指一個字體的數(shù)據(jù)實體,包括許多的字形數(shù)據(jù)和一些元數(shù)據(jù),通常封裝在一個字體文件中, 如.ttf文件中。元數(shù)據(jù)包括字體實例的名稱、開發(fā)者、版本號等。字體與字體實例是一對多的關(guān)系,同一字體可能表現(xiàn)為多種不同的字體實例。同一字體可以采用不同的字體技術(shù) (如True Type、Typel、Open Type等)制作成字體實例。或者同一字體經(jīng)過裁剪,使得不同字體實例包括數(shù)量不等的字形數(shù)據(jù),這稱為字體子集技術(shù),例如某中文字體的完整版有 10000個漢字,但某手機版的該中文字體的字體實例中去掉了不常用的漢字,只有4000字, 即只有4000個字形數(shù)據(jù)。還可以生成一個字體實例的多份拷貝,位于不同的計算機系統(tǒng)或存儲位置,它們的內(nèi)容完全相同,但把這些拷貝視為不同字體實例。同一字體的不同的字體實例被視為等價的。在很多電子文檔中,例如MS Word文檔、HTML文檔、Adobe PDF文檔中,需要對不同的文字指定使用不同的字體進行顯示。通常指定字體的方法是在文檔中給出字體的名稱, 如“Times New Roman”或“宋體”,在對待顯示文字指定了所使用字體的字體名稱后,文檔處理設(shè)備在本地的字體庫中獲取該字體名稱所對應(yīng)字體的字體實例,然后在該字體實例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進行顯示。然而,當同一文檔在多個不同的文檔處理設(shè)備上被處理的時候,通過字體名稱指定字體的方法的缺點有很多,例如第一,字體的名稱到字體的映射并不唯一,因為許多實際不同的字體有相同的名稱,這樣在不同的文檔處理設(shè)備上,被指定同一字體的文字的顯示效果不一樣。第二,文檔處理設(shè)備上可能沒有指定的字體,因而無法使用該字體顯示相應(yīng)的文字,從而可能使用不夠相似的替代字體來顯示該文字。以上兩點都會造成文檔無法以文檔制作者期望的樣子被顯示或處理。對于上述問題的一個現(xiàn)有的解決方案是使用內(nèi)嵌字體技術(shù)。使用內(nèi)嵌字體技術(shù)后,在文檔文件中對文檔使用的字體明確的指定了能夠獲得該字體的字體實例的地址,將該字體稱為內(nèi)嵌字體。內(nèi)嵌字體技術(shù)有兩種實現(xiàn)方式,其中一種是在文檔文件內(nèi)記錄字體的字體實例在文檔文件內(nèi)的偏移地址,并根據(jù)該偏移地址將該字體實例嵌入到文檔文件內(nèi)部的相應(yīng)位置。在顯示文檔文字時,根據(jù)該偏移地址找到對應(yīng)的字體實例,進而在該字體實例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進行顯示。使用該方式的文檔有PDF文檔等。另一種是在文檔文件內(nèi)記錄字體的字體實例的統(tǒng)一資源定位符(URL)地址,并將該字體實例保存在該URL地址對應(yīng)的服務(wù)器上。在顯示文檔文字時,根據(jù)該URL地址找到對應(yīng)的字體實例,進而在該字體實例中查找待顯示文字的字形數(shù)據(jù),最后將查找到的字形數(shù)據(jù)進行顯示。使用該方式的文檔有HTML和重疊樣式表(CSQ文檔等。
      上述兩種方式中,內(nèi)嵌字體實例都可以僅僅是一個字體完整的字體實例的一個子集(即前述字體子集技術(shù)),因為很多情況下一篇文檔只會使用一個字體的一小部分字形數(shù)據(jù)。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在以下技術(shù)問題在使用內(nèi)嵌字體技術(shù)時,可能大大增加文檔文件的數(shù)據(jù)量以及網(wǎng)絡(luò)流量需求。同時,一臺計算機上許多文檔文件可能使用等價的內(nèi)嵌字體實例,若每個文檔文件都包含有一份等價的字體實例,則浪費了磁盤存儲空間;而且同時顯示多個文檔時,這些等價的字體實例要重復(fù)地裝入內(nèi)存和解析,浪費了文檔處理設(shè)備的資源。

      發(fā)明內(nèi)容
      本發(fā)明實施例提供一種文檔處理方法及裝置,用于節(jié)省文檔處理所需要的資源。一種文檔處理方法,該方法包括確定待處理文檔中內(nèi)嵌字體的字體唯一標識;在本地字體庫中查找與確定的字體唯一標識匹配的字體實例;利用查找到的字體實例處理所述待處理文檔。一種文檔處理裝置,該裝置包括確定單元,用于確定待處理文檔中內(nèi)嵌字體的字體唯一標識;查找單元,用于在本地字體庫中查找與確定的字體唯一標識匹配的字體實例;處理單元,用于利用查找到的字體實例處理所述待處理文檔。本方案中,首先確定待處理文檔中內(nèi)嵌字體的字體唯一標識;然后在本地字體庫中查找與確定的字體唯一標識匹配的字體實例;最后利用查找到的字體實例處理所述待處理文檔??梢?,采用本發(fā)明,對于內(nèi)嵌字體,采用本地字體庫中的字體實例處理該待處理文檔,而不需要根據(jù)待處理文檔中記錄的內(nèi)嵌字體的字體實例存儲地址從待處理文檔中獲得字體實例或從其他服務(wù)器下載到字體實例,節(jié)省了待處理文檔所需要的內(nèi)存空間、磁盤存儲空間或下載字體實例所需要的網(wǎng)絡(luò)流量。


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