專利名稱:字體匹配方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及字體匹配技術(shù),尤其涉及通過(guò)信息檢索并利用字體的屬性值來(lái)確定合適的字體的技術(shù)。
背景技術(shù):
隨著文本處理技術(shù)的迅速發(fā)展以及文本處理軟件(程序)的大量開發(fā),人們可以利用計(jì)算機(jī)顯示并處理越來(lái)越多的字體類型,并支持越來(lái)越多的語(yǔ)種下文字處理。這些字體類型的例子包括Times New Roman,Arial,Tahoma,宋體,楷體等。每種字體只能支持有限的幾種語(yǔ)言以及特定的Unicode編碼范圍的字符,所以對(duì)于多語(yǔ)言文本,往往需要多個(gè)字體來(lái)顯示。如果文本處理軟件無(wú)法準(zhǔn)確地匹配到合適的字體,多語(yǔ)言文本就無(wú)法正確顯示。圖IA示出了一個(gè)上述問(wèn)題的示例,在圖1示出的利用“記事本”程序打開的文本中,存在多種語(yǔ)言下(包括中文、日文、韓文等)的文字,但是在該“記事本”中僅能正常顯示中文文本,而其它語(yǔ)言下的文本均不能正確顯示。這說(shuō)明,“記事本”程序沒(méi)有能夠正確地匹配合適的字體用于顯示不同語(yǔ)言下的文字。圖IB示出了該“記事本”文檔中正確顯示的文字內(nèi)容。當(dāng)然,用戶可以手動(dòng)為每種文本選擇字體。例如,在圖1所示的亂碼情況下,用戶很難判斷出哪種字體才能正確顯示當(dāng)前文本,這就嚴(yán)重影響了用戶體驗(yàn)。此外,對(duì)于不提供手動(dòng)選擇字體功能的文本處理軟件,上述字體匹配功能也不可能實(shí)現(xiàn)。
發(fā)明內(nèi)容
考慮到上述存在的問(wèn)題,本發(fā)明的目的之一在于提供一種能夠快速準(zhǔn)確地進(jìn)行字體匹配的系統(tǒng)和方法。本發(fā)明的又一目的在于提供一種獨(dú)立于文本處理軟件,并且可由任意文本處理軟件(應(yīng)用)所調(diào)用的字體匹配的系統(tǒng)和方法。本發(fā)明的再一目的在于提供一種利用可以由用戶靈活配置的匹配條件來(lái)進(jìn)行字體匹配的系統(tǒng)和方法。本發(fā)明的構(gòu)思主要是基于下面的考慮由于存在多種可以用于標(biāo)識(shí)字體的字體屬性,例如字體所支持的字符Unicode編碼范圍、字體所支持的語(yǔ)言、字體所屬的字體族以及字體的提供商(Rnmdry) 等,利用每種字體所具有的不同的屬性值,并借助信息檢索的方法來(lái)自動(dòng)、快速、準(zhǔn)確地實(shí)現(xiàn)字體匹配。根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于字體匹配的方法,包括根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收字體匹配的請(qǐng)求;以及利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,所述二維鏈接矩陣中二維分別是字體的屬性和字體的名稱,并且所述二維鏈接矩陣中的每一行表示一個(gè)字體對(duì)應(yīng)于各個(gè)字體屬性的屬性值。根據(jù)本發(fā)明的另一方面,提供了一種用于字體匹配的系統(tǒng),包括矩陣生成裝置, 用于根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收裝置,用于接收字體匹配的請(qǐng)求;以及字體匹配裝置,用于利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。
通過(guò)對(duì)結(jié)合附圖所示出的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明,本發(fā)明的上述以及其他特征將更加明顯,本發(fā)明附圖中相同的標(biāo)號(hào)表示相同或相似的部件。在附圖中,圖IA示出了某篇“記事本”文檔中由于字體匹配失敗而導(dǎo)致的文本顯示不正確的現(xiàn)象;圖IB示出了圖IA的“記事本”文檔中的正確的文本內(nèi)容;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于字體匹配的方法的流程圖;圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于字體匹配的方法的流程圖;圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的二維鏈接矩陣的示意圖;圖5示出了根據(jù)本發(fā)明一個(gè)具體實(shí)例的用于字體匹配的過(guò)程的二維鏈接矩陣;圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于字體匹配的系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式在下文中,將參考附圖通過(guò)實(shí)施方式對(duì)本發(fā)明提供的用于確定要被物化的節(jié)點(diǎn)的方法和系統(tǒng)進(jìn)行詳細(xì)地描述。圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于字體匹配的方法的流程圖。圖2所示的方法從步驟201開始,在步驟201中生成二維鏈接矩陣。要根據(jù)當(dāng)前可用的字體以及可用的字體的屬性值生成二維鏈接矩陣。根據(jù)本發(fā)明的一個(gè)實(shí)施例,“當(dāng)前可用的字體”是指系統(tǒng)中已經(jīng)安裝了的字體或者已經(jīng)能夠支持的字體。例如,在一臺(tái)計(jì)算機(jī)中,可能僅僅安裝了 Times New Roman這種字體,那么所有其它的字體例如用于顯示中文的“宋體”就不屬于當(dāng)前可用的字體。“字體的屬性值”是指每種字體針對(duì)不同的字體屬性所具有的值。例如,字體的屬性可以包括=Unicode編碼范圍、所支持的語(yǔ)言、所屬字體族、字體提供商(Foimdary) 等多種屬性。每種字體針對(duì)上述每個(gè)字體屬性可能具有不同的屬性值,這些屬性值之間的差異在本發(fā)明中被利用來(lái)區(qū)分不同的字體。例如,Times New Roman這種字體所屬的字體族為“Times”,而“宋體-方正超大字符集”這種字體所屬的字體族則為“宋體-方正超大字符集”,而“Tahoma”這種字體所屬的字體族則為“Tahoma”。再以“字體提供商(Foimdary),, 屬性為例,“宋體”這種字體的的“字體提供商”屬性值為“aiongYi Co. ”,而“Times New Roman”這種字體的“字體提供商”屬性值則為“Monotype Co. ”。在步驟201中即是利用當(dāng)前可用的字體信息及其屬性值信息來(lái)生成記錄了上述信息的二維鏈接矩陣。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,二維鏈接矩陣的每一行表示一個(gè)字體實(shí)例對(duì)應(yīng)于各個(gè)字體屬性的屬性值。圖4示出了步驟201中生成的二維鏈接矩陣的示意圖。 在圖4中,Rn表示第m個(gè)字體屬性,F(xiàn)tn表示第η個(gè)當(dāng)前可用的字體,Vmn表示第η個(gè)當(dāng)前可用的字體所具有的關(guān)于第m個(gè)字體屬性的屬性值。圖4中示出的帶有箭頭和圓點(diǎn)的豎線表示某些字體間針對(duì)某屬性具有相同的屬性值。可以理解,圖4中示出的二維鏈接矩陣的
每一行表示可以由下列向量表達(dá)的一種字體Ft = (Vpl,Vp2,......Vpm),其中Ft表示一
個(gè)字體實(shí)例,Vpl-Vpm表示該字體對(duì)應(yīng)于屬性Pl-Pm的屬性值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解, 圖4僅僅示出了二維鏈接矩陣的一種表現(xiàn)形式,無(wú)論采用何種數(shù)據(jù)結(jié)構(gòu)、表結(jié)構(gòu)在計(jì)算機(jī)系統(tǒng)中記錄可用的字體信息及其屬性值信息,均落入本發(fā)明的保護(hù)范圍。還需要強(qiáng)調(diào)的是, “二維鏈接矩陣”并不意味著對(duì)記錄字體信息及字體屬性值信息的方式進(jìn)行任何限定,也并不意味著必須使用如圖4所示的矩陣格式或任何其它特定的信息存儲(chǔ)格式。需要指出的是,在步驟201中生成二維鏈接矩陣的過(guò)程中所利用的當(dāng)前可用的字體信息以及屬性值信息,根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以由所安裝的字體配置文件中獲取, 也可以由開發(fā)人員預(yù)先輸入。至于選取哪些字體屬性來(lái)構(gòu)建二維鏈接矩陣,可以靈活地進(jìn)行調(diào)整,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解,并非一定要將所有可能得到的字體屬性均存儲(chǔ)進(jìn)二維鏈接矩陣中,而是可以選取其中一部分有代表性的或者標(biāo)識(shí)字體類型的功能比較強(qiáng)的屬性。接下來(lái)在步驟202中接收字體匹配的請(qǐng)求。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,字體匹配的請(qǐng)求包括至少一個(gè)屬性-屬性值對(duì)。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,字體匹配請(qǐng)求具備
下列形式:Q = {Pql = Vql, Pq2 = Vq2,......,Pqk = Vqk},其中Q表示字體匹配請(qǐng)求,Pqk
表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性,Vqk表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性的屬性值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述字體匹配請(qǐng)求的形式僅僅是示例性地說(shuō)明字體匹配請(qǐng)求的內(nèi)容,并不意味著對(duì)其表達(dá)方式進(jìn)行任何的限定。關(guān)于字體匹配請(qǐng)求的來(lái)源及生成方式,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,字體匹配的請(qǐng)求可以來(lái)自任何第三方文本處理程序(軟件)。例如,當(dāng)用戶利用諸如“記事本”或“Word”等文本處理程序打開一個(gè)文件時(shí),該文本處理程序可以通過(guò)分析該文件中所包含的字符Unicode編碼來(lái)獲取字體的屬性及屬性值。 至于該第三方文本處理程序獲取哪些字體屬性的屬性值則可以由程序開發(fā)人員靈活配置。 例如,當(dāng)利用“Word”程序打開一個(gè)文件時(shí),理論上“Word”程序本身可以獲得許多該文件中字體的字體屬性值(例如30個(gè)),但是并非所有這些屬性和屬性值都有助于字體匹配,因此程序開發(fā)人員可以設(shè)定由“Word”程序生成的字體匹配請(qǐng)求中僅包含30個(gè)屬性-屬性值對(duì)中的5個(gè)屬性-屬性值對(duì)。根據(jù)本發(fā)明的另一實(shí)施方式,字體匹配請(qǐng)求可以直接由人工設(shè)置并輸入。例如,當(dāng)用戶知曉所要顯示的文字的語(yǔ)言類型(例如,中文),其可以輸入一條字 #KKif^c Q = {Language = Chinese}。接下來(lái)進(jìn)行至步驟203。在步驟203中,利用二維鏈接矩陣,從可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。由于在步驟201生成的二維鏈接矩陣中存儲(chǔ)有可用字體的字體屬性-屬性值信息,因此基于在步驟202中接收到的字體匹配請(qǐng)求中所包含的屬性-屬性值信息,就可以從可用的字體中確定與所接收到的字體匹配請(qǐng)求相符和的字體。需要指出的是,與所接收到的字體匹配請(qǐng)求相符和的字體可以是一個(gè)特定的字體,也可以多個(gè)可用的字體。在相符和的字體包含多個(gè)可用的字體的情況下,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以由用戶最終確定選擇哪個(gè)字體。還需要指出的是,圖2所示的方法中的步驟201可以理解為在非實(shí)時(shí)運(yùn)行狀態(tài)下生成二維鏈接矩陣,并且隨著可用的字體類型的不斷增加(如安裝了新的字體)而不斷更新所生成的二維鏈接矩陣。從上述內(nèi)容可以看出,利用圖2所示的用于字體匹配的方法,可以利用每種字體所具有的不同的屬性值,并借助信息檢索的方法來(lái)自動(dòng)、快速、準(zhǔn)確地實(shí)現(xiàn)字體匹配,而不再需要人工漫無(wú)目的地嘗試多種可用的字體中的每一種字體。與此同時(shí),該方法獨(dú)立于文本處理軟件,并且可由任意文本處理軟件(應(yīng)用)所調(diào)用。并且該方法允許用戶對(duì)字體屬性的選取進(jìn)行靈活配置以便更高效地進(jìn)行字體匹配。圖3示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于字體匹配的方法的流程圖。可以理解,圖3所示的方法中的步驟301和302對(duì)應(yīng)于圖2中的步驟201和202,在此不再贅述。 而圖3中的步驟303至308可以理解為對(duì)應(yīng)于圖2中的步驟203。在步驟303中,初始化字體返回結(jié)果集合。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,可以將字體返回結(jié)果集合初始化為包括所有當(dāng)前可用的字體的字體返回結(jié)果集合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,步驟303的初始化操作不是必需的,完全可以在不對(duì)字體返回結(jié)果集合進(jìn)行初始化的情況下,直接進(jìn)行步驟304 的操作針對(duì)一個(gè)屬性-屬性值對(duì)生成字體返回結(jié)果集合。接下來(lái)進(jìn)行至步驟304,在步驟304中針對(duì)在步驟302中接收到的字體匹配請(qǐng)求中的一個(gè)屬性-屬性值對(duì),檢索在步驟301中生成的二維鏈接矩陣,以過(guò)濾在步驟303中初始化的字體返回結(jié)果集合(如果不存在步驟303初始化操作的情況下,步驟304即為針對(duì)在步驟302中接收到的字體匹配請(qǐng)求中的一個(gè)屬性-屬性值對(duì),檢索在步驟301中生成的二維鏈接矩陣,以生成字體返回結(jié)果集合)。由于字體匹配請(qǐng)求中可能包含多個(gè)屬性-屬性值對(duì),因此在步驟304針對(duì)一個(gè)屬性-屬性值對(duì)過(guò)濾了初始化后的字體返回結(jié)果集合(存在初始化的情況下),也就是說(shuō)通過(guò)進(jìn)一步的限定條件(新的屬性-屬性值對(duì))對(duì)該第一個(gè)字體返回結(jié)果集合進(jìn)行過(guò)濾,以得到新的字體返回結(jié)果集合。接下來(lái)在步驟305中,判斷經(jīng)步驟304過(guò)濾后的字體返回結(jié)果集合是否為空集。如果判斷結(jié)果為否,則直接進(jìn)行至步驟307。如果判斷結(jié)果為是,則進(jìn)行至步驟306。在步驟306中,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,將前一次過(guò)濾后的字體返回結(jié)果集合確定為本次過(guò)濾后的結(jié)果集合。這樣做的原因是如果最終字體返回結(jié)果是空集,那么將沒(méi)有字體被選中用于顯示或輸入字體匹配請(qǐng)求所針對(duì)的文本,從而可能影響用戶體驗(yàn)。因此一旦判定最終返回結(jié)果是空集,則自動(dòng)將前一次過(guò)濾后的字體返回結(jié)果提供給用戶,以便由用戶從中選擇。根據(jù)本發(fā)明的另一個(gè)實(shí)施方式,如果在步驟305中的判斷結(jié)果為是,則提供報(bào)錯(cuò)信息沒(méi)有字體被選中(未在圖3中示出)。根據(jù)本發(fā)明的再一實(shí)施方式,在步驟 305中的判斷結(jié)果為是,則依據(jù)預(yù)先設(shè)定的各個(gè)屬性的權(quán)重或優(yōu)先級(jí)的高低,選擇要舍棄的屬性-屬性值對(duì)匹配,以使得返回結(jié)果不為空集??梢?,圖3中所示的步驟306中的內(nèi)容僅僅是根據(jù)本發(fā)明的一種實(shí)施方式,還存在多種可能的實(shí)施方式執(zhí)行在步驟305判斷結(jié)果為是之后的操作。還需要強(qiáng)調(diào)的是,由于步驟303初始化字體返回結(jié)果集合并非必需的步驟, 在沒(méi)有初始化步驟的情況下,如果針對(duì)第一個(gè)屬性-屬性值對(duì)生成的字體返回結(jié)果集合就是空集,那么在步驟306中執(zhí)行的操作應(yīng)當(dāng)是將當(dāng)前可用的字體所組成的集合確定為本次過(guò)濾后的字體返回結(jié)果集合。圖3所示的方法在步驟307中判斷字體匹配請(qǐng)求中是否還存在其它的未經(jīng)匹配的屬性-屬性值對(duì)。為了保證匹配的準(zhǔn)確性,要確保字體匹配請(qǐng)求中的所有屬性-屬性值對(duì)都已經(jīng)過(guò)匹配處理。如果步驟307中的判斷結(jié)果為是,則返回至步驟304,再次執(zhí)行步驟304 至307的操作,直到在步驟307中判斷結(jié)果為否,則意味著字體匹配請(qǐng)求中的所有屬性-屬性值對(duì)都已經(jīng)被遍歷(經(jīng)過(guò)匹配處理),從而進(jìn)行至步驟308。在步驟308中,將本次過(guò)濾操作后的字體返回結(jié)果集合確定為最終字體返回結(jié)果集合,最終字體返回結(jié)果集合中所包含的字體即為與所接收到的字體匹配請(qǐng)求相符合的字體。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,最終字體返回結(jié)果集合中包含一個(gè)字體。根據(jù)本發(fā)明的另一實(shí)施方式,最終字體返回結(jié)果集合中包含多個(gè)字體。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在最終字體返回結(jié)果集合中包含多個(gè)字體的情況下,將多個(gè)字體以列表的形式提供至用戶,以便由用戶從中選擇特定的字體。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在最終字體返回結(jié)果集合中僅包含一個(gè)字體的情況下,直接利用該字體顯示或輸入文本。另外還需要指出的是,可以對(duì)字體匹配請(qǐng)求中的屬性-屬性值對(duì)設(shè)置不同的權(quán)重,從而按照所設(shè)定的權(quán)重在字體匹配的過(guò)程中安排屬性-屬性值對(duì)的處理順序。圖5示出了根據(jù)本發(fā)明一個(gè)具體實(shí)例的用于字體匹配的過(guò)程的二維鏈接矩陣。 下面,將結(jié)合圖5對(duì)一個(gè)具體的依據(jù)本發(fā)明的字體匹配的實(shí)例進(jìn)行說(shuō)明。假設(shè)當(dāng)前可用的字體有5個(gè),分別是“Times NewRoman”、“宋體”、“方正宋體”、“宋體-方正超大字符集” 以及“Tahoma”,并且設(shè)置選取四個(gè)屬性用于生成圖5所示的二維鏈接矩陣字體提供商 (Foundary)、字體族(Family)、語(yǔ)言(Language)以及字符編碼范圍(Character Map)。假設(shè)接收到了第一條字體匹配請(qǐng)求如下Query 1 {Character = 0x036A,Language = Greek,F(xiàn)oundary = Microsoft},該字體匹配請(qǐng)求中包含三個(gè)屬性-屬性值對(duì)。針對(duì)這一條字體匹配請(qǐng)求,首先將字體返回結(jié)果集合初始化為當(dāng)前可用的字體集合Sretum= {Times new roman,宋體,方正宋體,宋體-方正超大字符集,Tahoma} 0然后,根據(jù)字體匹配請(qǐng)求中的第一個(gè)屬性-屬性值對(duì)Character =0x036A,檢索圖5所示的二維鏈接矩陣,發(fā)現(xiàn)所有5個(gè)可用字體的屬性“Character Map” 的屬性值范圍均包含0x036A,因此針對(duì)該屬性-屬性值對(duì)匹配處理之后生成的字體返回集合仍然與初始化后的字體返回集合一致。接下來(lái)處理該字體匹配請(qǐng)求中的第二個(gè)屬性-屬性值對(duì)Language = Greek,檢索圖5所示的二維鏈接矩陣發(fā)現(xiàn),僅有“Times New Roman"和“Tahoma”兩種字體的屬性 “Language”的屬性值中包含Greek,因此對(duì)上述已經(jīng)生成的字體返回集合進(jìn)行過(guò)濾,過(guò)濾后的字體返回集合 Sreturn = {Times new roman, Tahoma}。接下來(lái)處理該字體匹配請(qǐng)求中的第三個(gè)屬性-屬性值對(duì)Rnmdary = Microsoft, 檢索圖5所示的二維鏈接矩陣發(fā)現(xiàn),僅有“Tahoma”字體的屬性“Foimdary”的屬性值是 “Microsoft”,因此對(duì)上述已經(jīng)過(guò)濾后的字體返回集合再次進(jìn)行過(guò)濾,得到新的字體返回集
合 Sreturn = {Tahoma}。至此,針對(duì)第一條字體匹配請(qǐng)求的字體匹配過(guò)程結(jié)束。假設(shè)接收到了第二條字體匹配請(qǐng)求如下Query 2 {Character = 0x20001, Family =宋體},其中包括兩個(gè)屬性 _ 屬性值對(duì)。首先將字體返回結(jié)果集合初始化為當(dāng)前可用的字體集合^etum= {Times new roman, 宋體,方正宋體,宋體-方正超大字符集,Tahoma} 0然后,根據(jù)字體匹配請(qǐng)求中的第一個(gè)屬性-屬性值對(duì)Character = 0x20001,檢索圖5所示的二維鏈接矩陣,發(fā)現(xiàn)僅有“宋體_方正超大字符集”字體的屬性“Character Map”的屬性值范圍包含0x20001,因此針對(duì)該屬性-屬性值對(duì)匹配處理之后生成的字體返回集合^etum = {宋體-方正超大字符集}。接下來(lái)處理該字體匹配請(qǐng)求中的第二個(gè)屬性-屬性值對(duì)Family =宋體,檢索圖5 所示的二維鏈接矩陣發(fā)現(xiàn),僅有“宋體”一種字體的屬性“Family”的屬性值為“宋體”,而 “宋體”這種字體沒(méi)有包含在上面已經(jīng)生成的字體返回結(jié)果集合中,因此對(duì)上述已經(jīng)生成的字體返回集合進(jìn)行過(guò)濾,過(guò)濾后的字體返回集合^etum = NULL (空集)。在此情形下,假設(shè)字體匹配請(qǐng)求中屬性“Character”的優(yōu)先級(jí)比屬性“Family”的優(yōu)先級(jí)高(或者說(shuō)權(quán)重大), 則令最終生成的字體返回集合為^rtum = {宋體-方正超大字符集}。圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于字體匹配的系統(tǒng)的結(jié)構(gòu)圖。圖6所示的系統(tǒng)在總體上由600表示。具體地,系統(tǒng)600包括矩陣生成裝置601,用于根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收裝置602,用于接收字體匹配請(qǐng)求;以及字體匹配裝置,用于利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。可以理解,圖6所示的系統(tǒng)600中的裝置601-603分別對(duì)應(yīng)于圖 2所示的方法中的步驟201-203。通過(guò)以上對(duì)具體實(shí)施例的描述,本領(lǐng)域技術(shù)人員可以理解,上述的系統(tǒng)、裝置和方法可以使用計(jì)算機(jī)可執(zhí)行指令和/或包含在處理器控制代碼中來(lái)實(shí)現(xiàn),例如在諸如磁盤、 CD或DVD-ROM的載體介質(zhì)、諸如只讀存儲(chǔ)器(固件)的可編程的存儲(chǔ)器或者諸如光學(xué)或電子信號(hào)載體的數(shù)據(jù)載體上提供了這樣的代碼。本實(shí)施例的裝置、服務(wù)器及其單元可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。雖然以上結(jié)合具體實(shí)例,對(duì)本發(fā)明的利用遠(yuǎn)程應(yīng)用處理本地文件的系統(tǒng)及方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說(shuō)明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行多種變換、替換和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、 替換、修改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來(lái)限定。
權(quán)利要求
1.一種用于字體匹配的方法,包括根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收字體匹配的請(qǐng)求;利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。
2.如權(quán)利要求1所述的方法,其中所述二維鏈接矩陣中的每一行表示一個(gè)字體實(shí)例對(duì)應(yīng)于各個(gè)字體屬性的屬性值。
3.如權(quán)利要求2所述的方法,所述一個(gè)字體可以由下列向量表示Ft= (Vp 1,Vp2,......Vpm),其中Ft表示所述一個(gè)字體的字體實(shí)例,Vpl, Vp2,......Vpm表示該字體對(duì)應(yīng)于屬性Pl,P2......Rii的屬性值。
4.如權(quán)利要求1-3任一所述的方法,所述字體匹配的請(qǐng)求包括至少一個(gè)屬性-屬性值對(duì)。
5.如權(quán)利要求4所述的方法,所述字體匹配請(qǐng)求具備下列形式Q = {Pql = Vql,Pq2 = Vq2,......, Pqk = Vqk},其中Q表示字體匹配請(qǐng)求,Pqk表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性,Vqk表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性的屬性值。
6.如權(quán)利要求4或5所述的方法,其中利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體,包括針對(duì)所述字體匹配請(qǐng)求中的一個(gè)屬性-屬性值對(duì),檢索所述二維鏈接矩陣以生成字體返回結(jié)果集合。
7.如權(quán)利要求6所述的方法,其中利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體,進(jìn)一步包括逐個(gè)針對(duì)所述字體匹配請(qǐng)求中的其它屬性-屬性值對(duì),檢索所述二維鏈接矩陣以過(guò)濾所生成的字體返回結(jié)果集合;如果遍歷了所述字體匹配請(qǐng)求中的所有屬性-屬性值對(duì),則將最終過(guò)濾后的字體返回結(jié)果集合中所包含的字體確定為與所接收到的字體匹配請(qǐng)求相符和的字體。
8.如權(quán)利要求6或7所述的方法,其中利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體,進(jìn)一步包括在第一次檢索所述二維鏈接矩陣以生成字體返回結(jié)果集合之前,將字體返回結(jié)果集合初始化為包含所有所述可用的字體的集合。
9.如權(quán)利要求7所述的方法,其中利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體,進(jìn)一步包括如果過(guò)濾后的字體返回結(jié)果集合為空集,則將該次過(guò)濾操作前的字體返回結(jié)果集合確定為該次過(guò)濾結(jié)果集合。
10.如權(quán)利要求6-9任一所述的方法,其中利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體,進(jìn)一步包括依據(jù)預(yù)先設(shè)定的各個(gè)屬性的權(quán)重值,確定針對(duì)所述字體匹配請(qǐng)求中的屬性-屬性值對(duì)檢索所述二維鏈接矩陣的順序。
11.如權(quán)利要求1-10任一所述的方法,所述字體匹配請(qǐng)求是由文本處理應(yīng)用生成的。
12.一種用于字體匹配的系統(tǒng),包括矩陣生成裝置,用于根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收裝置,用于接收字體匹配的請(qǐng)求;字體匹配裝置,用于利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。
13.如權(quán)利要求12所述的系統(tǒng),其中所述二維鏈接矩陣中的每一行表示一個(gè)字體實(shí)例對(duì)應(yīng)于各個(gè)字體屬性的屬性值。
14.如權(quán)利要求13所述的系統(tǒng),所述一個(gè)字體可以由下列向量表示Ft= (Vp 1,Vp2,......Vpm),其中Ft表示所述一個(gè)字體實(shí)例,Vpl, Vp2,......Vpm表示該字體對(duì)應(yīng)于屬性P1,P2......Rii的屬性值。
15.如權(quán)利要求12-14任一所述的系統(tǒng),所述字體匹配的請(qǐng)求包括至少一個(gè)屬性-屬性值對(duì)。
16.如權(quán)利要求15所述的系統(tǒng),所述字體匹配請(qǐng)求具備下列形式Q = {Pql = Vql,Pq2 = Vq2,......, Pqk = Vqk},其中Q表示字體匹配請(qǐng)求,Pqk表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性,Vqk表示該字體匹配請(qǐng)求Q中的第k個(gè)屬性的屬性值。
17.如權(quán)利要求15或16所述的系統(tǒng),所述字體匹配裝置被進(jìn)一步配置為針對(duì)所述字體匹配請(qǐng)求中的一個(gè)屬性-屬性值對(duì),檢索所述二維鏈接矩陣以生成字體返回結(jié)果集合。
18.如權(quán)利要求17所述的系統(tǒng),所述字體匹配裝置被進(jìn)一步配置為逐個(gè)針對(duì)所述字體匹配請(qǐng)求中的其它屬性-屬性值對(duì),檢索所述二維鏈接矩陣以過(guò)濾所生成的字體返回結(jié)果集合;如果遍歷了所述字體匹配請(qǐng)求中的所有屬性-屬性值對(duì),則將最終過(guò)濾后的字體返回結(jié)果集合中所包含的字體確定為與所接收到的字體匹配請(qǐng)求相符和的字體。
19.如權(quán)利要求17或18所述的系統(tǒng),所述字體匹配裝置被進(jìn)一步配置為在第一次檢索所述二維鏈接矩陣以生成字體返回結(jié)果之前,將字體返回結(jié)果集合初始化為包含所有所述可用的字體的集合。
20.如權(quán)利要求18所述的系統(tǒng),所述字體匹配裝置被進(jìn)一步配置為如果過(guò)濾后的字體返回結(jié)果集合為空集,則將該次過(guò)濾操作前的字體返回結(jié)果集合確定為該次過(guò)濾結(jié)果集合。
21.如權(quán)利要求17-20任一所述的系統(tǒng),所述字體匹配裝置被進(jìn)一步配置為依據(jù)預(yù)先設(shè)定的各個(gè)屬性的權(quán)重值,確定針對(duì)所述字體匹配請(qǐng)求中的屬性-屬性值對(duì)檢索所述二維鏈接矩陣的順序。
22.如權(quán)利要求12-21任一所述的系統(tǒng),所述字體匹配請(qǐng)求是由文本處理應(yīng)用生成的。
全文摘要
本發(fā)明涉及字體匹配技術(shù),尤其涉及利用字體的屬性值以及信息檢索方法進(jìn)行字體匹配的技術(shù)。本發(fā)明提供了一種用于字體匹配的方法,包括根據(jù)可用的字體以及可用字體的屬性值,生成二維鏈接矩陣;接收字體匹配的請(qǐng)求;利用所述二維鏈接矩陣,從所述可用的字體中確定與所接收到的字體匹配請(qǐng)求相符合的字體。自動(dòng)、快速、準(zhǔn)確地實(shí)現(xiàn)字體匹配,而不再需要人工漫無(wú)目的地嘗試多種可用的字體中的每一種字體。與此同時(shí),該方法獨(dú)立于文本處理軟件,并且可由任意文本處理軟件(應(yīng)用)所調(diào)用。并且該方法允許用戶對(duì)字體屬性的選取進(jìn)行靈活配置以便更高效地進(jìn)行字體匹配。
文檔編號(hào)G06F17/21GK102385570SQ20101027092
公開日2012年3月21日 申請(qǐng)日期2010年8月31日 優(yōu)先權(quán)日2010年8月31日
發(fā)明者付興旺, 張建芳, 張海峰, 來(lái)竟, 賈彥民 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司