專利名稱:一種共享字體的實(shí)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種共享字體的實(shí)現(xiàn)方法 和裝置。
背景技術(shù):
在計算機(jī)或其它各種終端設(shè)備的顯示界面上顯示網(wǎng)絡(luò)電子文檔時,如果 電子文檔的文字使用了某種字體,如常見的"華文楷體"、"華文中宋"等 等,則需要相應(yīng)的字體文件支持。字體文件是采用該字體的文字字型的集合, 通常需要包括幾千個常用字的字型。所述電子文檔包括所有需要顯示文字的 程序、數(shù)據(jù)、文件等等,例如軟件界面上顯示的文字
在終端設(shè)備上一般會安裝常用的字體文件,用來顯示使用這些字體的文 檔。但是,如果在文檔中使用常用字體以外的字體(以下稱為個性字體), 到?jīng)]有安裝對應(yīng)字體文件的終端設(shè)備上瀏覽該文檔,個性字體就會失效。
對于這種個性字體的應(yīng)用,現(xiàn)有技術(shù)采用的解決方式如下
方式一在文檔中嵌入字體文件,而中文字體文件的容量最少也在2兆
10兆字節(jié)左右,這樣就會使得文檔變得相當(dāng)龐大,如果用戶是對該文檔進(jìn)
行網(wǎng)絡(luò)瀏覽,則需要相當(dāng)長的等待時間。
方式二固定文檔中所使用的文字的字體,但這種方法不能支持文檔中
文字的更新,如果網(wǎng)絡(luò)側(cè)的文檔中的文字發(fā)生了改變,則只能重新下載該文
檔才能實(shí)現(xiàn)文字的更新。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種共享字體的實(shí)現(xiàn)方法,可以在文檔使用個性 字體時不會增加太多的容量,并且能夠支持文檔中文字的更新。
該共享字體的實(shí)現(xiàn)方法在終端設(shè)備中設(shè)置用于存儲個性字體字型的共享動
態(tài)數(shù)據(jù)庫,并包括如下步驟
終端設(shè)備根據(jù)將要顯示的文檔中的字體信息以及文字,獲取本地設(shè)置的
共享動態(tài)數(shù)據(jù)庫中與所述文字對應(yīng)的字型;
若獲取到與所述文字對應(yīng)的字型,則根據(jù)所獲取的字型顯示所述文檔。 本發(fā)明實(shí)施例還公開了一種共享字體的實(shí)現(xiàn)系統(tǒng),包括終端設(shè)備和字體
服務(wù)器,
所述字體服務(wù)器包括
字體數(shù)據(jù)庫,用于存儲個性字體的字體文件,字體文件包含使用該個性 字體的所有文字的字型;
字型選擇模塊,用于根據(jù)文字信息以及字體代碼,調(diào)用所述字體數(shù)據(jù)庫 中與所述字體代碼對應(yīng)的字體文件,從所述字體文件中挑選與所述文字信息 中的文字對應(yīng)的字型;
收發(fā)模塊,用于接收來自終端設(shè)備的文字信息以及字體代碼,將所述文 字信息以及字體代碼轉(zhuǎn)發(fā)至所述字型選擇模塊;還用于將來自字型選擇模塊 的字型發(fā)送至終端設(shè)備;
所述終端設(shè)備包括
存儲模塊,用于存儲或緩存將要顯示的文檔以及該文檔中使用的個性字 體的代碼;
文檔顯示模塊,用于顯示存儲模塊中的文檔;根據(jù)文檔中含有的個性字 體的代碼,向共享動態(tài)對象模塊調(diào)用相應(yīng)文字的屬于所述個性字體的字型, 根據(jù)所述字型將文檔中的文字顯示為個性字體;
共享動態(tài)對象模塊,用于存儲個性字體的字型,將所述字型作為共享動 態(tài)對象供文檔顯示模塊調(diào)用;若沒有存儲可供文檔顯示模塊調(diào)用的字型,則 發(fā)出獲取字型的指示;
字型獲取模塊,用于將所述獲取字型的指示發(fā)送至網(wǎng)絡(luò)側(cè)的字體服務(wù) 器,并將來自字體服務(wù)器的字型發(fā)送至共享動態(tài)對象模塊中存儲。
本發(fā)明實(shí)施例還公開了 一種實(shí)現(xiàn)共享字體的終端設(shè)備,包括
存儲模塊,用于存儲或緩存將要顯示的文檔以及該文檔中使用的個性字 體的代碼;
文檔顯示模塊,用于顯示存儲模塊中的文檔;根據(jù)文檔中含有的個性字 體的代碼,向共享動態(tài)對象模塊調(diào)用相應(yīng)文字的屬于所述個性字體的字型, 根據(jù)所述字型將文檔中的文字顯示為個性字體;
共享動態(tài)對象模塊,用于存儲個性字體的字型,將所述字型作為共享動 態(tài)對象供文檔顯示模塊調(diào)用。
從以上技術(shù)方案可以看出,將個性字體的字型作為共享動態(tài)對象,實(shí)現(xiàn) 字型與文檔的分離,能夠以較小的字型文件量實(shí)現(xiàn)個性化的字體顯示的文 檔。
圖1為本發(fā)明實(shí)施例的系統(tǒng)示意圖2本發(fā)明實(shí)施例實(shí)現(xiàn)顯示個性字體文檔的處理流程圖3為本發(fā)明實(shí)施例實(shí)現(xiàn)個性字體更新的流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明 作進(jìn)一步的詳細(xì)闡述。
本發(fā)明實(shí)施例的方案概述如下
稱之為數(shù)據(jù)源,文檔中的文字所使用的字型作為共享的動態(tài)對象統(tǒng)一存儲。 文檔對該共享動態(tài)對象的字型進(jìn)行指定,實(shí)現(xiàn)個性字體的顯示;該動態(tài)對象 還可以被其它使用該字體的文檔所使用。如果文檔需要使用新的文字,則只 需對該共享動態(tài)對象的字型進(jìn)行擴(kuò)充,使其支持新的文字的字型即可。
本發(fā)明實(shí)施例的系統(tǒng)如圖l所示,包括終端設(shè)備100和位于網(wǎng)絡(luò)側(cè)的字
體服務(wù)器200。
其中,字體服務(wù)器200包括字體數(shù)據(jù)庫201、字型選擇模塊202和收發(fā) 模塊203。
所述字體數(shù)據(jù)庫201用于存儲各種個性字體的字體文件。字體文件包含 使用該個性字體的所有文字的字型,該字體文件的代碼以及版本信息。
收發(fā)模塊203用于接收來自終端設(shè)備100的文字信息以及字體代碼,將 所述文字信息以及字體代碼轉(zhuǎn)發(fā)至所述字型選擇模塊202;還用于將來自字 型選擇模塊202的字型發(fā)送至終端設(shè)備100。
所述字型選擇模塊202用于根據(jù)來自收發(fā)模塊的文字信息以及字體代 碼,調(diào)用所述字體數(shù)據(jù)庫201中與所述字體代碼對應(yīng)的字體文件,從所述字 體文件中挑選與所述文字信息中的文字對應(yīng)的字型,將所述挑選的字型發(fā)送 至所述收發(fā)模塊203。
所述終端設(shè)備100包括存儲模塊101、文檔顯示模塊102、共享動態(tài)對 象模塊103和字型調(diào)用模塊104。
所述存儲模塊101用于存儲或緩存將要顯示的文檔以及該文檔中使用 的個性字體的代碼;
文檔顯示模塊102用于顯示存儲模塊101中的文檔;根據(jù)文檔中含有的 個性字體的代碼,向共享動態(tài)對象模塊103調(diào)用相應(yīng)文字的屬于所述個性字 體的字型,根據(jù)所述字型將文檔中的文字顯示為個性字體。
共享動態(tài)對象模塊103,用于存儲個性字體的字型,將所述字型作為共 享動態(tài)對象供文檔顯示模塊102調(diào)用,若沒有存儲可供文檔顯示模塊102調(diào) 用的字型,則發(fā)出獲取字型的指示。在該共享動態(tài)對象模塊103的具體實(shí)現(xiàn) 中,可以在終端設(shè)備上利用flash軟件來實(shí)現(xiàn)共享動態(tài)對象。在終端設(shè)備建
立flash的共享對象庫,該共享對象庫中的元素就是個性字體中的字型。該 共享對象庫支持動態(tài)導(dǎo)入和動態(tài)導(dǎo)出。
具體包括如下單元
交互單元,用于接收文檔顯示模塊102的調(diào)用指示,以及將該調(diào)用指示
所調(diào)用的字型發(fā)送至文檔顯示模塊102。該調(diào)用指示包含所要應(yīng)用個性字體 的文字,以及該個性字體的代碼。
動態(tài)對象單元,用于存儲個性字體的字型;
查找單元,根據(jù)調(diào)用指示查找動態(tài)對象單元所存儲的個性字體的字型,
若找到對應(yīng)的字型,則通過交互單元將該字型發(fā)送至文檔顯示模塊102;若 沒有找到,則向字型獲取模塊104發(fā)送獲取相應(yīng)字型的指示,該指示中包含 所要獲取的字型對應(yīng)的文字以及該字型的個性字體代碼。
字型獲取模塊104用于將所述荻取字型的指示發(fā)送至網(wǎng)絡(luò)側(cè)的字體服 務(wù)器200,并將來自字體服務(wù)器200的字型發(fā)送至共享動態(tài)對象模塊103中 存儲。字型獲取模塊104還用于檢測字體服務(wù)器200的個性字體的版本信息 是否發(fā)生更新,若是,通知共享動態(tài)對象模塊103更新動態(tài)對象單元中的屬 于所述個性字體的字型。
當(dāng)要在終端設(shè)備IOO上顯示個性字體的文檔時,首先查找共享動態(tài)對象 模塊103是否有相應(yīng)的字型,如果有,則調(diào)用這些字型來顯示文檔中的文字, 對于沒有的字型,則終端設(shè)備100向網(wǎng)絡(luò)側(cè)的字體服務(wù)器200獲取相應(yīng)的字 型,并用來顯示文檔,同時將所獲取的字型導(dǎo)入共享動態(tài)對象模塊103,以 供其它文檔顯示時使用。
如果需要對字體文件進(jìn)行更新,則更新網(wǎng)絡(luò)側(cè)的字體服務(wù)器200的字體 數(shù)據(jù)庫201。終端設(shè)備100的字型獲取模塊104在發(fā)現(xiàn)字體服務(wù)器200的個 性字體的版本信息發(fā)生變化,則通知共享動態(tài)對象模塊103。共享動態(tài)對象 模塊103收到該通知后,通過字型獲取模塊104,向字體服務(wù)器200獲取動 態(tài)對象單元中的字型對應(yīng)的更新后的版本。
本發(fā)明第二實(shí)施例提出了一種顯示個性字體文檔的方法,該方法利用了 第一實(shí)施例中的系統(tǒng),其流程如圖2所示,包括如下步驟
步驟S201:終端設(shè)備100檢測將要顯示的文檔的字體信息,判斷是否 采用了個性字體,如果采用個性字體,則執(zhí)行步驟S202,否則按照現(xiàn)有技 術(shù)的文檔顯示方法進(jìn)行顯示。
步驟S202:終端設(shè)備100根據(jù)文檔中的字體信息以及文字,獲取本地 共享動態(tài)對象模塊103中與該文字對應(yīng)的個性字體的字型,若獲取到字型, 則按照所獲取的字型顯示該文檔,并結(jié)束本流程。如果本地沒有相應(yīng)的個性 字體的字型,則執(zhí)行步驟S203。
步驟S203:終端設(shè)備100向網(wǎng)絡(luò)側(cè)的字體服務(wù)器200獲取本地所沒有 的個性字體的字型。
步驟S204:終端設(shè)備100根據(jù)所接收的來自字體服務(wù)器200的字型顯 示文檔,并將所接收的字型存儲在共享動態(tài)對象模塊103中。
若對網(wǎng)絡(luò)側(cè)的字體服務(wù)器200中的字體文件進(jìn)行更新,則終端設(shè)備100 也需要同步更新共享動態(tài)對象模塊103中相應(yīng)的字型,該更新流程如圖3所 示,包括如下步驟S:
步驟S301:終端設(shè)備100檢測字體服務(wù)器200的個性字體的版本信息 是否發(fā)生更新,若是則執(zhí)行步驟S302。
步驟S302:終端設(shè)備100將字體服務(wù)器200獲取字型的更新。所需更 新的字型包括本地的共享動態(tài)對象模塊103中與該版本信息發(fā)生變化的字 體相關(guān)的字型。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可借助軟件加必需的硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過硬件來 實(shí)施,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技 術(shù)方案對背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出 來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤 等,包括若干指令用以使得計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者 網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本 發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本 發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種共享字體的實(shí)現(xiàn)方法,其特征在于,在終端設(shè)備(100)中設(shè)置用于存儲個性字體字型的共享動態(tài)數(shù)據(jù)庫,并包括如下步驟終端設(shè)備(100)根據(jù)將要顯示的文檔中的字體信息以及文字,獲取本地設(shè)置的共享動態(tài)數(shù)據(jù)庫中與所述文字對應(yīng)的字型;若獲取到與所述文字對應(yīng)的字型,則根據(jù)所獲取的字型顯示所述文檔。
2、 根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)方法,其特征在于,所述終端設(shè)備(100) 獲取本地設(shè)置的共享動態(tài)數(shù)據(jù)庫中與所述文字對應(yīng)的字型之前,進(jìn)一步包 括終端設(shè)備(100)判斷將要顯示的文檔是否采用了個性字體,若是,則 執(zhí)行所述后續(xù)步驟,否則,按照常規(guī)文檔顯示方法進(jìn)行顯示。
3、 根據(jù)權(quán)利要求1所述實(shí)現(xiàn)方法,其特征在于,若沒有獲取到與所述 文字對應(yīng)的字型,則進(jìn)一步包括終端設(shè)備(100)向網(wǎng)絡(luò)側(cè)的字體服務(wù)器(200)獲取所述字型,根據(jù)所 接收的來自字體服務(wù)器(200)的字型顯示文檔,并將所接收的字型存儲在 共享動態(tài)數(shù)據(jù)庫中。
4、 根據(jù)權(quán)利要求l、 2或3任一項(xiàng)所述的實(shí)現(xiàn)方法,其特征在于,該方 法進(jìn)一步包括終端設(shè)備(100)檢測字體服務(wù)器(200)的個性字體的版本信息是否發(fā) 生更新,若是,則向字體服務(wù)器(200)獲取所述版本信息發(fā)生變化的個性 字體的字型,來更新所述共享動態(tài)數(shù)據(jù)庫中的相應(yīng)字型。
5、 一種共享字體的實(shí)現(xiàn)系統(tǒng),其特征在于,包括終端設(shè)備(100)和字 體服務(wù)器(200),所述字體服務(wù)器(200)包括字體數(shù)據(jù)庫(201),用于存儲個性字體的字體文件,字體文件包含使 用該個性字體的所有文字的字型;字型選擇模塊(202),用于根據(jù)文字信息以及字體代碼,調(diào)用所述字 體數(shù)據(jù)庫(201)中與所述字體代碼對應(yīng)的字體文件,從所述字體文件中挑 選與所述文字信息中的文字對應(yīng)的字型;收發(fā)模塊(203 ),用于接收來自終端設(shè)備(100)的文字信息以及字體 代碼,將所述文字信息以及字體代碼轉(zhuǎn)發(fā)至所述字型選擇模塊(202 );還 用于將來自字型選擇模塊(202)的字型發(fā)送至終端設(shè)備(100);所述終端設(shè)備(100)包括存儲模塊(101),用于存儲或緩存將要顯示的文檔以及該文檔中使用 的個性字體的代碼;文檔顯示模塊(102),用于顯示存儲模塊(101)中的文檔;根據(jù)文檔 中含有的個性字體的代碼,向共享動態(tài)對象模塊(103)調(diào)用相應(yīng)文字的屬 于所述個性字體的字型,根據(jù)所述字型將文檔中的文字顯示為個性字體;共享動態(tài)對象模塊(103),用于存儲個性字體的字型,將所述字型作 為共享動態(tài)對象供文檔顯示模塊(102)調(diào)用;若沒有存儲可供文檔顯示模 塊(102)調(diào)用的字型,則發(fā)出獲取字型的指示;字型獲取模塊(104),用于將所述獲取字型的指示發(fā)送至網(wǎng)絡(luò)側(cè)的字 體服務(wù)器(200),并將來自字體服務(wù)器(200)的字型發(fā)送至共享動態(tài)對象 模塊(103)中存儲。
6、根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述共享動態(tài)對象模塊 (103 )包括交互單元,用于接收文檔顯示模塊(102)的調(diào)用指示,以及將該調(diào)用 指示所調(diào)用的字型發(fā)送至文檔顯示模塊(102),所述調(diào)用指示包含所要應(yīng) 用個性字體的文字,以及該個性字體的代碼;動態(tài)對象單元,用于存儲個性字體的字型;查找單元,根據(jù)調(diào)用指示查找動態(tài)對象單元所存儲的個性字體的字型, 若找到對應(yīng)的字型,則通過交互單元將該字型發(fā)送至文檔顯示模塊(102); 若沒有找到,則向字型獲取模塊(104)發(fā)送獲取相應(yīng)字型的指示,該指示中包含所要獲取的字型對應(yīng)的文字以及該字型的個性字體代碼。
7、 根據(jù)權(quán)利要求5或6所述的系統(tǒng),其特征在于,所述字型獲取模塊 (104 )還用于檢測字體服務(wù)器(200 )的個性字體的版本信息是否發(fā)生更新,若是,通知共享動態(tài)對象模塊(103)更新動態(tài)對象單元中的屬于所述個性 字體的字型。
8、 一種實(shí)現(xiàn)共享字體的終端設(shè)備,其特征在于,包括存儲模塊(101),用于存儲或緩存將要顯示的文檔以及該文檔中使用 的個性字體的代碼;文檔顯示模塊(102),用于顯示存儲模塊(101 )中的文檔;根據(jù)文檔 中含有的個性字體的代碼,向共享動態(tài)對象模塊(103)調(diào)用相應(yīng)文字的屬 于所述個性字體的字型,根據(jù)所述字型將文檔中的文字顯示為個性字體;共享動態(tài)對象模塊(103),用于存儲個性字體的字型,將所述字型作 為共享動態(tài)對象供文檔顯示模塊(102)調(diào)用。
9、 根據(jù)權(quán)利要求8所述的終端設(shè)備,其特征在于,所述共享動態(tài)對象 模塊(103)包括交互單元,用于接收文檔顯示模塊(102)的調(diào)用指示,以及將該調(diào)用 指示所調(diào)用的字型發(fā)送至文檔顯示模塊(102),所述調(diào)用指示包含所要應(yīng) 用個性字體的文字,以及該個性字體的代碼;動態(tài)對象單元,用于存儲個性字體的字型;查找單元,根據(jù)調(diào)用指示查找動態(tài)對象單元所存儲的個性字體的字型, 若找到對應(yīng)的字型,則通過交互單元將該字型發(fā)送至文檔顯示模塊(102); 若沒有找到,則發(fā)送獲取相應(yīng)字型的指示,該指示中包含所要獲取的字型對 應(yīng)的文字以及該字型的個性字體代碼;所述終端設(shè)備進(jìn)一步包括字型獲取模塊(104),用于將來自共享動態(tài)對象模塊(103)的獲取字 型的指示發(fā)送至網(wǎng)絡(luò)側(cè)的字體服務(wù)器(200),并將來自字體服務(wù)器(200) 的字型發(fā)送至共享動態(tài)對象模塊(103)中存儲。
10、根據(jù)權(quán)利要求9所述的終端設(shè)備,其特征在于,所述字型獲取模塊若是,通知共享動態(tài)對象模塊(103)更新動態(tài)對象單元中的屬于所述個性 字體的字型。
全文摘要
本發(fā)明公開了一種共享字體的實(shí)現(xiàn)方法,在終端設(shè)備(100)中設(shè)置用于存儲個性字體字型的共享動態(tài)數(shù)據(jù)庫,并包括如下步驟終端設(shè)備(100)根據(jù)將要顯示的文檔中的字體信息以及文字,獲取本地設(shè)置的共享動態(tài)數(shù)據(jù)庫中與所述文字對應(yīng)的字型;若獲取到與所述文字對應(yīng)的字型,則根據(jù)所獲取的字型顯示所述文檔。本發(fā)明還公開了實(shí)現(xiàn)共享字體的系統(tǒng)和終端設(shè)備。本發(fā)明方案可以實(shí)現(xiàn)字型與文檔的分離,能夠以較小的字型文件量實(shí)現(xiàn)個性化的字體顯示的文檔。
文檔編號G06F17/30GK101196917SQ20071030164
公開日2008年6月11日 申請日期2007年12月27日 優(yōu)先權(quán)日2007年12月27日
發(fā)明者超 馮 申請人:騰訊科技(深圳)有限公司