專利名稱:一種內(nèi)嵌字體數(shù)據(jù)處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于文字處理技術(shù)領(lǐng)域,特別涉及一種內(nèi)嵌字體數(shù)據(jù)處理方法及裝置。
背景技術(shù):
現(xiàn)今在很多情況下,文檔處理會面臨大量的內(nèi)嵌字體處理。所謂內(nèi)嵌字體指的是 嵌入到文檔中的字體文件,以保證文檔在任意平臺上打開時都能找到相應(yīng)的字體。一般來 說,一個包含內(nèi)嵌字體的文檔往往包含大量的小體積內(nèi)嵌字體文件。這些小體積內(nèi)嵌字體 文件經(jīng)常會零散的分布在文檔各處。各個小體積的內(nèi)嵌字體文件都對應(yīng)一個內(nèi)嵌字體文件 名,當讀取各個小體積的內(nèi)嵌字體文件(例如提取文檔中所有內(nèi)嵌字體,或者是利用某一 內(nèi)嵌字體來展示文字)時,首先根據(jù)待讀取的內(nèi)嵌字體文件名,在文檔中進行搜索,然后找 到與該內(nèi)嵌字體文件名匹配的內(nèi)嵌字體數(shù)據(jù)。因為一個包含內(nèi)嵌字體的文檔包含有大量的 小體積內(nèi)嵌字體文件,所以若大量的內(nèi)嵌字體都采用上述的方法進行訪問操作,則訪問效 率較低。此外,現(xiàn)今大量的文檔格式采用了 XML與Zip打包相結(jié)合技術(shù)方案。在Zip包中 存在大量小體積文件時,也會降低文檔的打開、更新、查找等訪問效率。
發(fā)明內(nèi)容
為了解決對一個包含內(nèi)嵌字體的文檔進行訪問操作時,訪問效率較低的問題,本 發(fā)明實施例提供了一種內(nèi)嵌字體數(shù)據(jù)處理方法,包括獲取各內(nèi)嵌字體數(shù)據(jù);為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字體數(shù)據(jù)存儲位置信息相對 應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù) 據(jù)大??;根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體數(shù)據(jù),將各內(nèi)嵌 字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。同時本發(fā)明實施例還提供一種內(nèi)嵌字體數(shù)據(jù)處理裝置,包括獲取模塊用于獲取各內(nèi)嵌字體數(shù)據(jù);第一建立模塊用于為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字體數(shù) 據(jù)存儲位置信息相對應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體數(shù)據(jù) 偏移量和內(nèi)嵌字體數(shù)據(jù)大小;存儲模塊根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體數(shù) 據(jù),將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。由本發(fā)明提供的具體實施方案可以看出,正是由于利用索引結(jié)構(gòu)可以根據(jù)內(nèi)嵌字 體數(shù)據(jù)編號直接得到內(nèi)嵌字體數(shù)據(jù)存儲信息,進而提高訪問效率。
圖1為本發(fā)明提供的第一實施例內(nèi)嵌字體文件包的文件格式圖2為本發(fā)明提供的第一實施例方法流程圖;圖3為本發(fā)明提供的第二實施例裝置結(jié)構(gòu)圖。
具體實施例方式本發(fā)明提供的第一實施例是一種內(nèi)嵌字體數(shù)據(jù)處理方法,該方法是將內(nèi)嵌字體數(shù) 據(jù)抽取出來集中存放到字體數(shù)據(jù)塊中,從而利用索引結(jié)構(gòu)提高訪問效率。進而還將內(nèi)嵌字 體的字體編碼與字形索引號(Glyph Index)的映射信息也保存起來。在使用時,通過待處 理的內(nèi)嵌字體的編號,就可以得到所需的內(nèi)嵌字體數(shù)據(jù),和相應(yīng)的字體編碼與Glyph的映
射信息。其中,內(nèi)嵌字體數(shù)據(jù)在存儲時可以按照一定的壓縮方法統(tǒng)一進行壓縮;索引的組 織方式還可以提供了多種優(yōu)化的方法,進一步提高訪問效率,從一個包含100個內(nèi)嵌字體 的文檔中收集各內(nèi)嵌字體并保存在一個內(nèi)嵌字體文件包中,該內(nèi)嵌字體文件包的文件格式 如圖1所示,對其中的各內(nèi)嵌字體執(zhí)行如下方法,方法流程如圖2所示,包括步驟101 獲取對應(yīng)字體文件名為“aaa. . . 111”的內(nèi)嵌字體數(shù)據(jù)al,并獲取該內(nèi)嵌 字體數(shù)據(jù)在應(yīng)用層保存的對應(yīng)的映射信息(如CMap);步驟102 將映射信息轉(zhuǎn)化為相應(yīng)CharMap表al。CharMap表al包括若干個字體 編碼和各自對應(yīng)的Glyph信息。步驟103 按照指定或默認的處理方法對內(nèi)嵌字體數(shù)據(jù)al和CharMap表al進行處 理。例如按照指定或默認的壓縮方法對內(nèi)嵌字體數(shù)據(jù)al和CharMap表al進行壓縮。壓縮 方法可能是Flate、LZMA等。或者按照指定或默認的加密方法對內(nèi)嵌字體數(shù)據(jù)al和CharMap 表al進行加密。當然也可以對即進行壓縮處理又進行加密處理。步驟104 將處理后的內(nèi)嵌字體數(shù)據(jù)al和CharMap表al保存到內(nèi)嵌字體文件包 的一個字體數(shù)據(jù)塊中。步驟105 為內(nèi)嵌字體數(shù)據(jù)al和CharMap表al分配一個索引號2,在內(nèi)嵌字體文 件包索引號為2的索引中增加CharMap表al數(shù)據(jù)偏移量、內(nèi)嵌字體數(shù)據(jù)偏移量、內(nèi)嵌字體 數(shù)據(jù)大小等。本實施例中,各內(nèi)嵌字體數(shù)據(jù)擁有唯一的編號,采用編號如編號2代替原有的 字體文件名“aaa. .. 111”。步驟106 在內(nèi)嵌字體文件包的文件頭部信息中標明自我標識、版本和索引位置寸。通過上面的步驟將內(nèi)嵌字體數(shù)據(jù)al和CharMap表al,根據(jù)索引中增加的CharMap 表al數(shù)據(jù)偏移量、內(nèi)嵌字體數(shù)據(jù)偏移量、內(nèi)嵌字體數(shù)據(jù)大小保存在內(nèi)嵌字體文件包中,同 時在內(nèi)嵌字體文件包中保存有文件頭部信息和索引。通過下面的步驟對內(nèi)嵌字體數(shù)據(jù)al 和CharMap表al進行讀取。步驟107 根據(jù)為內(nèi)嵌字體數(shù)據(jù)al和CharMap表al分配的索引號2,以及內(nèi)嵌字 體文件包中的索引,確定存儲內(nèi)嵌字體數(shù)據(jù)al、CharMap表al所在的位置。步驟108 按步驟103中處理方法的逆方法對處理后的內(nèi)嵌字體數(shù)據(jù)al和 CharMap表al進行逆處理。步驟109 獲取內(nèi)嵌字體數(shù)據(jù)al和CharMap表al。將獲取的內(nèi)嵌字體數(shù)據(jù)al和 CharMap表al返回給用戶或者字體引擎。
5
若已有一個內(nèi)嵌字體文件包,內(nèi)嵌字體數(shù)據(jù)al為新增的內(nèi)嵌字體數(shù)據(jù),對新增的 內(nèi)嵌字體數(shù)據(jù)al執(zhí)行步驟101-105,將通過步驟103處理后內(nèi)嵌字體數(shù)據(jù)al和CharMap表 al追寫到此時內(nèi)嵌字體文件包的文件尾,即索引的后面,并相應(yīng)對索引中CharMap表al數(shù) 據(jù)偏移量、內(nèi)嵌字體數(shù)據(jù)偏移量、內(nèi)嵌字體數(shù)據(jù)大小進行設(shè)置,更新索引信息后,將更新后 的索引寫到此時的文件尾,即包括內(nèi)嵌字體數(shù)據(jù)al和CharMap表al的字體數(shù)據(jù)塊的后面, 并更新頭部信息中的索引位置。其中內(nèi)嵌字體文件包efc (Embedded Font Cluster)文件格式如圖1所示包括1 個文件頭部信息、1個索引和若干個字體數(shù)據(jù)塊,字體數(shù)據(jù)塊的數(shù)量和內(nèi)嵌字體數(shù)據(jù)的數(shù)量 相同。文件頭部信息包含自我標識、版本、索引位置等,文件頭部信息如表1所示。 表1為了使增量修改更方便,索引位于內(nèi)嵌字體文件包efs的結(jié)尾部分。索引的前4 個字節(jié)記錄了內(nèi)嵌字體數(shù)據(jù)的數(shù)量,如前4個字節(jié)中采用01100100表示有100個內(nèi)嵌字體 數(shù)據(jù)。其后是相應(yīng)數(shù)據(jù)的索引項如表2所示,包含了編碼-字形索引號映射數(shù)據(jù)偏移量、字 體數(shù)據(jù)偏移量、字體數(shù)據(jù)大小等。其中編碼_字形索引號映射數(shù)據(jù)偏移量中的編碼_字形 索引號映射數(shù)據(jù)就是指CharMap表,字體數(shù)據(jù)偏移量和字體數(shù)據(jù)大小中的字體數(shù)據(jù)就是指 內(nèi)嵌字體數(shù)據(jù)。編碼_字形索引號映射數(shù)據(jù)偏移量、字體數(shù)據(jù)偏移量、字體數(shù)據(jù)大小都占用 4字節(jié)。 表2字體數(shù)據(jù)塊包括編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)。編碼-字形索引號映射數(shù)據(jù)即Charmap儲存Unicode與字形索引號Glyph Index的對應(yīng)關(guān)系。有時會存在一個Unicode碼對應(yīng)于多個字形索引號的映射,這與相應(yīng)的語種 相關(guān)。編碼-字形索引號映射是在字體中缺失相應(yīng)描述時一種補充字體信息的手段。而 文字中的字形索引號映射則是在出現(xiàn)多個可選字形時,用以確定最終顯示結(jié)果的方法。編 碼_字形索引號映射數(shù)據(jù)頭主要存儲該編碼_字形索引號映射的數(shù)量,用4個字節(jié)表示映 射數(shù)量即序列對的數(shù)量,用1個字節(jié)表示編碼類型,用1個字節(jié)表示單個字形索引號長度, 即字形索引所用的字節(jié)數(shù),具體存儲結(jié)構(gòu)如表3所示 表 3其中序列對的數(shù)量就是用來表示對應(yīng)的Unicode碼和字形索引號有多少行,可能 的編碼類型如表4所示。 表 4本實施例的內(nèi)嵌字體文件包中,各內(nèi)嵌字體數(shù)據(jù)擁有唯一的編號。編號從1開始, 按照索引順序訪問,后續(xù)的內(nèi)嵌字體編號依次加1。例如可以采用該編號作為索引的索引號。數(shù)據(jù)壓縮方式由壓縮單位、壓縮方法指定。當壓縮單位值為1時,采用指定的壓縮 方法來對各內(nèi)嵌字體、編碼-字形索引號映射分別進行壓縮;整個內(nèi)嵌字體數(shù)據(jù)包無需再 進行壓縮。當壓縮單位和壓縮方法都為不壓縮時,整個圖像數(shù)據(jù)包存儲到文檔文件中時,需 要采用Flate等方法對整個包進行壓縮。為了平衡壓縮率和讀寫效率,壓縮單位為各內(nèi)嵌 字體、編碼_字形索引號映射的處理方式是被強烈推薦的。在加密時,如果壓縮單位為各內(nèi)嵌字體、編碼_字形索引號映射,則需要采用指定 壓縮方法和密碼,對壓縮后的各內(nèi)嵌字體、編碼_字形索引號映射數(shù)據(jù)進行加密,存儲在文檔中;如果壓縮單位值為0,則按照正常的加密流程進行處理。本實施例并不限制以上所屬文件頭部信息、內(nèi)嵌字體、編碼-字形索引號映射、索 引之間實際物理順序,而是采用了偏移值進行數(shù)據(jù)塊定位。應(yīng)用程序可以根據(jù)具體需要來 決定它們之間的實際物理順序。但是無論采用哪種順序,文件頭部信息必須位于文件開頭。本發(fā)明提供的第二實施例是一種字體文件的嵌入裝置,其結(jié)構(gòu)如圖3所示,包括獲取模塊201 用于獲取各內(nèi)嵌字體數(shù)據(jù);第一建立模塊202 用于為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字 體數(shù)據(jù)存儲位置信息相對應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體 數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大?。淮鎯δK203 根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體 數(shù)據(jù),將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。進一步,還包括第二建立模塊204 用于將各內(nèi)嵌字體的字體編碼和字形索引號數(shù)據(jù)綁定存儲得 到編碼_字形映射數(shù)據(jù);第三建立模塊205 用于建立編號與編碼_字形索引號映射數(shù)據(jù)偏移量相對應(yīng)的 第二綁定關(guān)系;存儲模塊203 還用于根據(jù)各編碼_字形索引號映射數(shù)據(jù)偏移量得到各編碼_字 形索引號映射數(shù)據(jù),將各編碼-字形索引號映射數(shù)據(jù)以及第二綁定關(guān)系集中存儲。進一步,還包括壓縮模塊206 用于對編碼-字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行壓縮處 理;存儲模塊203 還用于對進行壓縮處理后的第二綁定關(guān)系數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)集 中存儲。進一步,還包括第一查找模塊207:用于根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第一綁定關(guān)系查 找待讀取內(nèi)嵌字體數(shù)據(jù)偏移量和待讀取內(nèi)嵌字體數(shù)據(jù)大?。蛔x取模塊208 用于對待讀取內(nèi)嵌字體數(shù)據(jù)進行讀取操作。進一步,還包括第二查找模塊209:用于根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第二綁定關(guān)系查 找待讀取內(nèi)嵌字體數(shù)據(jù)對應(yīng)的編碼_字形索引號映射數(shù)據(jù);讀取模塊208 還用于對待讀取內(nèi)嵌字體數(shù)據(jù)對應(yīng)的編碼_字形索引號映射數(shù)據(jù) 進行讀取操作。進一步,還包括解壓模塊210 用于對壓縮處理后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù) 進行解壓處理;讀取模塊208 還用于對解壓后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進 行讀取操作。進一步,還包括調(diào)整模塊211 用于在已存在的內(nèi)嵌字體文件包中添加新的內(nèi)嵌字體時,將新的
8內(nèi)嵌字體數(shù)據(jù)緊鄰在第一綁定關(guān)系后存儲,并在第一綁定關(guān)系中對應(yīng)設(shè)置新的內(nèi)嵌字體數(shù) 據(jù)偏移量,將設(shè)置新的內(nèi)嵌字體數(shù)據(jù)偏移量的第一綁定關(guān)系,存儲于新的內(nèi)嵌字體數(shù)據(jù)后, 內(nèi)嵌字體文件包包括文件頭部信息、第一綁定關(guān)系和各內(nèi)嵌字體數(shù)據(jù),文件頭部信息包括 標識第一綁定關(guān)系存儲位置的信息,所述文件頭部信息位于內(nèi)嵌字體文件包開頭,所述第 一綁定關(guān)系位于內(nèi)嵌字體文件包尾。 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種內(nèi)嵌字體數(shù)據(jù)處理方法,其特征在于,包括獲取各內(nèi)嵌字體數(shù)據(jù);為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字體數(shù)據(jù)存儲位置信息相對應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小;根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體數(shù)據(jù),將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。
2.如權(quán)利要求1所述的方法,其特征在于,獲取各內(nèi)嵌字體數(shù)據(jù)后還包括將各內(nèi)嵌字體的字體編碼和字形索引號數(shù)據(jù)綁定存儲得到編碼-字形索引號映射數(shù)據(jù);建立編號與編碼_字形索引號映射數(shù)據(jù)偏移量相對應(yīng)的第二綁定關(guān)系;根據(jù)各編碼-字形索引號映射數(shù)據(jù)偏移量得到各編碼-字形索引號映射數(shù)據(jù),將各編 碼_字形索引號映射數(shù)據(jù)以及第二綁定關(guān)系集中存儲。
3.如權(quán)利要求2所述的方法,其特征在于,對編碼-字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù) 據(jù)進行壓縮處理;對進行壓縮處理后的編碼-字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)集中存儲。
4.如權(quán)利要求1所述的方法,其特征在于,將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中 存儲后還包括根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第一綁定關(guān)系查找待讀取內(nèi)嵌字體數(shù)據(jù)偏移量 和待讀取內(nèi)嵌字體數(shù)據(jù)大??;對待讀取內(nèi)嵌字體數(shù)據(jù)進行讀取操作。
5.如權(quán)利要求1所述的方法,其特征在于,將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中 存儲后還包括根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第二綁定關(guān)系查找待讀取內(nèi)嵌字體數(shù)據(jù)對應(yīng)的 編碼-字形索引號映射數(shù)據(jù);對待讀取內(nèi)嵌字體數(shù)據(jù)對應(yīng)的編碼_字形索引號映射數(shù)據(jù)進行讀取操作。
6.如權(quán)利要求1所述的方法,其特征在于,對進行壓縮處理后的編碼-字形索引號映射 數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)集中存儲步驟后還包括對壓縮處理后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行解壓處理;對解壓后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行讀取操作。
7.如權(quán)利要求1所述的方法,其特征在于,各內(nèi)嵌字體數(shù)據(jù)集中存儲在內(nèi)嵌字體文件 包,內(nèi)嵌字體文件包包括文件頭部信息、第一綁定關(guān)系和各內(nèi)嵌字體數(shù)據(jù),文件頭部信息 包括標識第一綁定關(guān)系存儲位置的信息,所述文件頭部信息位于內(nèi)嵌字體文件包開頭,所 述第一綁定關(guān)系位于內(nèi)嵌字體文件包尾。
8.如權(quán)利要求7所述的方法,其特征在于,在已存在的內(nèi)嵌字體文件包中添加新的內(nèi) 嵌字體時,將新的內(nèi)嵌字體數(shù)據(jù)緊鄰在第一綁定關(guān)系后存儲,并在第一綁定關(guān)系中對應(yīng)設(shè) 置新的內(nèi)嵌字體數(shù)據(jù)偏移量;將設(shè)置新的內(nèi)嵌字體數(shù)據(jù)偏移量的第一綁定關(guān)系,存儲于新的內(nèi)嵌字體數(shù)據(jù)后。
9.一種字體文件的嵌入裝置,其特征在于,包括獲取模塊用于獲取各內(nèi)嵌字體數(shù)據(jù);第一建立模塊用于為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字體數(shù)據(jù)存 儲位置信息相對應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體數(shù)據(jù)偏移 量和內(nèi)嵌字體數(shù)據(jù)大?。淮鎯δK根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體數(shù)據(jù),將 各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。
10.如權(quán)利要求9所述的裝置,其特征在于,還包括第二建立模塊用于將各內(nèi)嵌字體的字體編碼和字形索引號數(shù)據(jù)綁定存儲得到編 碼-字形映射數(shù)據(jù);第三建立模塊用于建立編號與編碼_字形索引號映射數(shù)據(jù)偏移量相對應(yīng)的第二綁定 關(guān)系;存儲模塊還用于根據(jù)各編碼_字形索引號映射數(shù)據(jù)偏移量得到各編碼_字形索引號 映射數(shù)據(jù),將各編碼_字形索引號映射數(shù)據(jù)以及第二綁定關(guān)系集中存儲。
11.如權(quán)利要求10所述的裝置,其特征在于,還包括壓縮模塊用于對編碼-字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行壓縮處理;存儲模塊還用于對進行壓縮處理后的第二綁定關(guān)系數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)集中存儲。
12.如權(quán)利要求9所述的裝置,其特征在于,還包括第一查找模塊用于根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第一綁定關(guān)系查找待讀取 內(nèi)嵌字體數(shù)據(jù)偏移量和待讀取內(nèi)嵌字體數(shù)據(jù)大??;讀取模塊用于對待讀取內(nèi)嵌字體數(shù)據(jù)進行讀取操作。
13.如權(quán)利要求9所述的裝置,其特征在于,還包括第二查找模塊用于根據(jù)待讀取內(nèi)嵌字體數(shù)據(jù)的編號,以及第二綁定關(guān)系查找待讀取 內(nèi)嵌字體數(shù)據(jù)對應(yīng)的編碼_字形索引號映射數(shù)據(jù);讀取模塊還用于對待讀取內(nèi)嵌字體數(shù)據(jù)對應(yīng)的編碼_字形索引號映射數(shù)據(jù)進行讀取 操作。
14.如權(quán)利要求9所述的裝置,其特征在于,還包括解壓模塊用于對壓縮處理后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行解壓 處理;讀取模塊還用于對解壓后的編碼_字形索引號映射數(shù)據(jù)和內(nèi)嵌字體數(shù)據(jù)進行讀取操作。
15.如權(quán)利要求9所述的裝置,其特征在于,還包括調(diào)整模塊用于在已存在的內(nèi)嵌字體文件包中添加新的內(nèi)嵌字體時,將新的內(nèi)嵌字體 數(shù)據(jù)緊鄰在第一綁定關(guān)系后存儲,并在第一綁定關(guān)系中對應(yīng)設(shè)置新的內(nèi)嵌字體數(shù)據(jù)偏移 量,將設(shè)置新的內(nèi)嵌字體數(shù)據(jù)偏移量的第一綁定關(guān)系,存儲于新的內(nèi)嵌字體數(shù)據(jù)后,內(nèi)嵌字 體文件包包括文件頭部信息、第一綁定關(guān)系和各內(nèi)嵌字體數(shù)據(jù),文件頭部信息包括標識第 一綁定關(guān)系存儲位置的信息,所述文件頭部信息位于內(nèi)嵌字體文件包開頭,所述第一綁定 關(guān)系位于內(nèi)嵌字體文件包尾。
全文摘要
本發(fā)明公開了內(nèi)嵌字體數(shù)據(jù)處理方法及裝置,為了解決一個包含內(nèi)嵌字體的文檔進行訪問操作時,訪問速度較慢的問題,本發(fā)明公開的方法包括獲取各內(nèi)嵌字體數(shù)據(jù);為各內(nèi)嵌字體數(shù)據(jù)分配對應(yīng)編號,并建立編號和內(nèi)嵌字體數(shù)據(jù)存儲位置信息相對應(yīng)的第一綁定關(guān)系,所述內(nèi)嵌字體數(shù)據(jù)存儲信息包括內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大??;根據(jù)各內(nèi)嵌字體數(shù)據(jù)偏移量和內(nèi)嵌字體數(shù)據(jù)大小得到各內(nèi)嵌字體數(shù)據(jù),將各內(nèi)嵌字體數(shù)據(jù)以及第一綁定關(guān)系集中存儲。利用索引結(jié)構(gòu)可以根據(jù)內(nèi)嵌字體數(shù)據(jù)編號直接得到內(nèi)嵌字體數(shù)據(jù)存儲信息,進而提高訪問效率。
文檔編號G06F17/22GK101894098SQ20091008462
公開日2010年11月24日 申請日期2009年5月18日 優(yōu)先權(quán)日2009年5月18日
發(fā)明者丁力, 仇睿恒, 王毅 申請人:北京大學(xué);北大方正集團有限公司;北京北大方正技術(shù)研究院有限公司