專利名稱::向pdf文件內(nèi)嵌單字節(jié)字體的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及排版
技術(shù)領(lǐng)域:
,尤其涉及一種向PDF文件內(nèi)嵌單字節(jié)字體的方法及其系統(tǒng)。
背景技術(shù):
:PDF(PortableDocumentFormat,可攜帶文檔格式)是Adobe公司開(kāi)發(fā)的電子文件格式。這種文件格式與操作系統(tǒng)平臺(tái)無(wú)關(guān),即,PDF文件不管是在Windows,Unix還是在MacOS操作系統(tǒng)中都是通用的。這一特點(diǎn)使它成為在hternet上進(jìn)行電子文檔發(fā)行和數(shù)字化信息傳播的理想文檔格式。越來(lái)越多的電子圖書(shū)、產(chǎn)品說(shuō)明、公司文告、網(wǎng)絡(luò)資料、電子郵件開(kāi)始使用PDF文件。PDF文件目前已成為數(shù)字化信息事實(shí)上的一個(gè)工業(yè)標(biāo)準(zhǔn)。PDF文件是為了支持跨平臺(tái)上的多媒體集成的信息出版和發(fā)布,為了達(dá)到此目的,PDF具有許多其他電子文檔格式無(wú)法相比的優(yōu)點(diǎn)。PDF文件可將文字、字型、格式、顏色及獨(dú)立于設(shè)備和分辨率的圖形圖像等封裝在一個(gè)文件中。PDF文件還可以包含超文本鏈接、聲音和動(dòng)態(tài)影像等電子信息,支持特長(zhǎng)文件,集成度和安全可靠性都較高。字體內(nèi)嵌是PDF技術(shù)中一個(gè)重要的分支,內(nèi)嵌了字體的PDF文件在呈現(xiàn)時(shí)不依賴呈現(xiàn)程序字體環(huán)境的特性,對(duì)保持呈現(xiàn)內(nèi)容的穩(wěn)定極其重要。因此,大量針對(duì)PDF的應(yīng)用將字體完全或部分內(nèi)嵌的PDF文件作為推薦甚至是強(qiáng)制的要求。目前,實(shí)現(xiàn)PDF字體內(nèi)嵌的方法將產(chǎn)生PS(P0StScript)數(shù)據(jù)流作為中間步驟,即,先將待內(nèi)嵌的PDF文件轉(zhuǎn)換為PS流,之后把PS流轉(zhuǎn)再換為內(nèi)嵌了字體的PDF文件,也就是說(shuō),在將PS流轉(zhuǎn)換為PDF文件的過(guò)程中,實(shí)現(xiàn)字體內(nèi)嵌功能。此方法的主要問(wèn)題在于PDF和PS相互轉(zhuǎn)換的過(guò)程相當(dāng)復(fù)雜,容易引入錯(cuò)誤,造成最終得到的PDF與原始的待內(nèi)嵌的PDF在內(nèi)容上出現(xiàn)差異;同時(shí)這個(gè)兩步轉(zhuǎn)換的過(guò)程在效率上也比較低。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供了一種向PDF文件內(nèi)嵌單字節(jié)字體的方法及其系統(tǒng),用以解決現(xiàn)有技術(shù)中由于將產(chǎn)生PS數(shù)據(jù)流作為向PDF文件內(nèi)嵌字體的中間步驟所導(dǎo)致的易出錯(cuò)和效率低的問(wèn)題。為實(shí)現(xiàn)上述目標(biāo),本發(fā)明實(shí)施例提供如下的技術(shù)方案一種向PDF文件內(nèi)嵌單字節(jié)字體的方法,包括確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述字符名字或字形標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。一種向PDF文件內(nèi)嵌單字節(jié)字體的系統(tǒng),包括字體描述信息確定模塊,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;字形描述信息獲取模塊,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;PDF文件生成模塊,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。本發(fā)明的上述實(shí)施例中,根據(jù)待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,確定待嵌入的單字節(jié)字體,并獲取待嵌入的單字節(jié)字體的字體描述信息;以及,確定出所述待內(nèi)嵌字體的PDF文件中,使用所述待嵌入單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),然后從待嵌入單字節(jié)字體的字體文件中獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;最后根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。由于上述確定待嵌入單字節(jié)字體的過(guò)程、獲取字體描述信息的過(guò)程,以及獲取字形描述信息的過(guò)程,都可通過(guò)解析待嵌入字體的PDF文件實(shí)現(xiàn),因此與現(xiàn)有技術(shù)相比,省去了PS數(shù)據(jù)流的轉(zhuǎn)換過(guò)程,從而簡(jiǎn)化了PDF文件內(nèi)嵌字體的流程,減少了由于PS數(shù)據(jù)流轉(zhuǎn)換所導(dǎo)致的錯(cuò)誤幾率,并提高了字體內(nèi)嵌的效率。圖1為本發(fā)明實(shí)施例向PDF文件內(nèi)嵌單字節(jié)字體的流程示意圖之一;圖2為本發(fā)明實(shí)施例向PDF文件內(nèi)嵌單字節(jié)字體的流程示意圖之二;圖3為本發(fā)明實(shí)施例向PDF文件內(nèi)嵌單字節(jié)字體的系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施例方式為解決上述現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明實(shí)施例提供了一種向PDF文件內(nèi)嵌單字節(jié)字體的方法及其系統(tǒng),使在解析待內(nèi)嵌字體的PDF文件的同時(shí),直接生成目標(biāo)PDF文件(即內(nèi)嵌了字體的PDF文件),在生成目標(biāo)文件的過(guò)程中內(nèi)嵌單字節(jié)字體的字形描述。與現(xiàn)有技術(shù)相比,由于避免了中間格式的使用,從而能更好地保證目標(biāo)文件的正確性,提高內(nèi)嵌操作的效率。下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。對(duì)于一個(gè)作為輸入的待內(nèi)嵌字體的原始PDF文件(以下稱原始文件),為了在其基礎(chǔ)上生成一個(gè)作為輸出的、內(nèi)嵌字體的PDF文件(以下稱目標(biāo)文件),在本發(fā)明實(shí)施例中,根據(jù)如圖1所示的步驟生成目標(biāo)文件步驟101、解析原始PDF文件,確定出該P(yáng)DF文件所使用、但未嵌入到該P(yáng)DF文件的字體,從中確定出待嵌入的單字節(jié)字體(如英文字體);根據(jù)確定出的待嵌入的單字節(jié)字體,獲取待嵌入單字節(jié)字體的字體描述信息,其中可包括字體編碼方式信息和字體名稱;步驟102、通過(guò)解析原始PDF文件的內(nèi)容流,確定出該原始PDF文件中使用待嵌入單字節(jié)字體進(jìn)行文字輸出的所有字符,并根據(jù)這些字符所屬的字體類型和編碼方式,將字符經(jīng)編碼映射得到這些字符對(duì)應(yīng)的標(biāo)識(shí)(如字符名字或字形標(biāo)識(shí)),并從待嵌入單字節(jié)字體的字體文件中獲取與這些字符的標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;步驟103、將到的字形描述信息組織成符合PDF文件規(guī)范的字體程序(fontprogram)數(shù)據(jù)流,將該字體程序數(shù)據(jù)流與獲取到的字體描述對(duì)象作為內(nèi)嵌到PDF文件中的字體文件數(shù)據(jù),從而生成目標(biāo)PDF文件。上述流程中,確定出的待嵌入的單字節(jié)字體,可以是該原始PDF文件所使用但未內(nèi)嵌的所有單字節(jié)字體,或是其中的一部分單字節(jié)字體。上述流程可通過(guò)相應(yīng)的軟件系統(tǒng)實(shí)現(xiàn)。下面通過(guò)圖2,描述利用本發(fā)明實(shí)施例的軟件系統(tǒng),在PDF文件中嵌入該P(yáng)DF文件所使用的、但未內(nèi)嵌到該P(yáng)DF文件中的所有單字節(jié)字體的詳細(xì)流程。為了方便實(shí)現(xiàn)本發(fā)明實(shí)施例,可使用如下集合作為實(shí)現(xiàn)該流程時(shí)用于存儲(chǔ)中間數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)模塊待嵌入字體集合是一個(gè)包含所有待嵌入單字節(jié)字體的字體對(duì)象的簡(jiǎn)單集合。解析原始文件時(shí),每發(fā)現(xiàn)一個(gè)待嵌入單字節(jié)字體(以字體對(duì)象的形式存在),就在集合中增加一條記錄,不計(jì)重復(fù)(即對(duì)于同一個(gè)字體對(duì)象被使用多次的情況僅保存對(duì)應(yīng)的一條記錄);待嵌入字體描述集合是一個(gè)包含所有待嵌入單字節(jié)字體的字體描述對(duì)象的簡(jiǎn)單集合。不計(jì)重復(fù)(即對(duì)于同一個(gè)字體描述對(duì)象被引用多次的情況僅保存對(duì)應(yīng)的一條記錄;待嵌入字符集合是一個(gè)以字體對(duì)象為索引的、包含該字體在原始文件中被使用的所有字符的集合。在此集合中,字符以字符名字(CharacterName)或字形標(biāo)識(shí)(GlyphID)的形式被記錄,不計(jì)重復(fù)(即對(duì)于同一個(gè)字符被使用多次的情況僅保存一條對(duì)應(yīng)的記錄)。如圖2所示,通過(guò)本發(fā)明實(shí)施例的軟件系統(tǒng),在PDF文件中嵌入單字節(jié)字體的過(guò)程,包括步驟201、解析原始文件,獲取其使用的所有未內(nèi)嵌的單字節(jié)字體的字體對(duì)象(Font對(duì)象),并將這些對(duì)象保存在待嵌入字體集合中。通常,PDF中的Rmt對(duì)象是以PDF字典對(duì)象的形式存在于PDF文件,通過(guò)查找原始PDF文件的PDF字典對(duì)象可確定出該P(yáng)DF文件所使用的但未內(nèi)嵌的單字節(jié)字體。Font對(duì)象中包含字體名、編碼方式或字體描述等有關(guān)字體的重要信息。步驟202、對(duì)于待嵌入字體集合中的所有單字節(jié)字體的字體對(duì)象,查找其對(duì)應(yīng)的字體描述對(duì)象(FontDescriptor),并將查找到的字體描述對(duì)象保存在待嵌入字體描述集合中。通常,F(xiàn)ontDescriptor對(duì)象以字典對(duì)象的形式存在于PDF文件。步驟203、解析原始PDF文件中所有的內(nèi)容流,對(duì)于其中所有涉及文字輸出的指令,獲取其使用的字體以及輸出的字符的編碼,對(duì)于其中使用了待嵌入的單字節(jié)字體的每個(gè)輸出字符,根據(jù)其字體類型和編碼方式,采用相應(yīng)的方式獲取這些字符的字符名字或字形標(biāo)識(shí),并將獲取到的字符名字或字形標(biāo)識(shí)保存到以字體描述為索引的待嵌入字符集合中。該步驟中,對(duì)于Typel(CID)類型的字體,將字符經(jīng)編碼映射后得到字符名字(CharacterName);對(duì)于TrueType(CID)類型的字體,將字符經(jīng)編碼映射后得到字符名字,之后,再通過(guò)查詢TrueType字體文件中的字形標(biāo)識(shí)表得到對(duì)應(yīng)的字符名字(Glyph)。編碼映射的方法是通過(guò)查找編碼映射表找到與字符編碼對(duì)應(yīng)的字符名字,編碼映射表是每個(gè)字體描述對(duì)象包含的一個(gè)屬性。步驟204、構(gòu)造字體程序數(shù)據(jù)流。如果待嵌入的單字節(jié)字體是Typel(CID)類型,則構(gòu)造CFF字體程序數(shù)據(jù)流;如果待嵌入的單字節(jié)字體是TrueType(CID)類型,則構(gòu)造TrueType(CID)字體程序數(shù)據(jù)流;如果待嵌入的單字節(jié)字體既包括Typel(CID)類型又包括TrueType(CID)類型,則構(gòu)造CFF字體程序數(shù)據(jù)流和TrueType(CID)字體程序數(shù)據(jù)流。步驟205、在待嵌入字體描述集合中,通過(guò)由字體描述構(gòu)成的索引定位到其中的一個(gè)字體描述,讀取該字體描述所對(duì)應(yīng)的所有字符名字或字形標(biāo)識(shí),在字體文件中分別查找對(duì)應(yīng)的字形描述信息,將查找到的字形描述信息寫(xiě)入對(duì)應(yīng)的字體程序數(shù)據(jù)流。該步驟中,如果當(dāng)前字體描述所對(duì)應(yīng)的字體是Typel(CID)類型,則執(zhí)行以下步驟在待嵌入字符集合中,以當(dāng)前字體描述作為索弓丨,遍歷其下的各字符名字(CharacterName),根據(jù)各字符名字(CharacterName)在Typel(CID)字體文件中查找對(duì)應(yīng)的字形描述信息,如果字符名字中包含子字符名字,則還需要查找子字符名字對(duì)應(yīng)的子字符的字形描述信息;然后將查找到的字形描述信息按照CFF字體程序規(guī)范存入之前構(gòu)造的CFF數(shù)據(jù)流中;如果當(dāng)前字體描述對(duì)應(yīng)的字體是TrueType(CID)類型,則執(zhí)行以下步驟在待嵌入字符集合中,以當(dāng)前字體描述作為索引,遍歷其下的各字形標(biāo)識(shí)(GlyphID),根據(jù)各字形標(biāo)識(shí)在TrueType(CID)字體文件中查找對(duì)應(yīng)的字形描述信息,如果字形標(biāo)識(shí)中包含子字符的字形標(biāo)識(shí),則還需要查找子字符的字形標(biāo)識(shí)對(duì)應(yīng)的子字符字形描述信息;然后,將獲取到的字形描述信息按照TrueType(CID)字體程序規(guī)范存入之前構(gòu)造的TrueType(CID)數(shù)據(jù)流中。步驟206、針對(duì)待嵌入字符集合中的所有字體描述所對(duì)應(yīng)的字符名字和字形標(biāo)識(shí),是否都已將對(duì)應(yīng)的字形描述信息寫(xiě)入字體程序數(shù)據(jù)流,即,是否將待內(nèi)嵌字符集合中的字符名字和字形標(biāo)識(shí)所對(duì)應(yīng)的字形描述信息都寫(xiě)入字體程7序數(shù)據(jù)流,若是,則執(zhí)行步驟207;否則,返回步驟205。步驟207、將字體程序數(shù)據(jù)流寫(xiě)入目標(biāo)PDF文件,將待內(nèi)嵌字體描述集合中所記錄的字體描述對(duì)象按照PDF規(guī)范寫(xiě)入目標(biāo)PDF文件。其中,將Typel(CID)類型字體的字體描述對(duì)象,按照PDF規(guī)范中關(guān)于CFF字體內(nèi)嵌的規(guī)范進(jìn)行必要的修改后(主要是引用生成的CFF數(shù)據(jù)流),寫(xiě)入目標(biāo)PDF文件;將TrueType(CID)類型字體的字體描述對(duì)象,按照PDF規(guī)范中關(guān)于TrueType(CID)字體內(nèi)嵌的規(guī)范進(jìn)行必要的修改后(主要是引用生成的TrueType(CID)數(shù)據(jù)流),寫(xiě)入目標(biāo)PDF文件。步驟208、遍歷原始PDF文件中的對(duì)象,除了那些已經(jīng)通過(guò)上述步驟寫(xiě)入目標(biāo)PDF文件中的字體描述對(duì)象以外,將其它所有對(duì)象不做修改,存入目標(biāo)PDF文件。上述流程的步驟202中,獲取到的待嵌入字體的字體描述信息可以選擇性地包含該字體在原始PDF文件中使用過(guò)的字符的集合(如字符集的標(biāo)識(shí)或名稱等信息),以便在后續(xù)嵌入字體的過(guò)程中獲取字形描述信息時(shí),僅需根據(jù)相應(yīng)字體文件中包含的該字符集合,從該字符集合中獲取對(duì)應(yīng)的字形描述信息寫(xiě)入目標(biāo)PDF文件,這樣,在內(nèi)嵌字體時(shí)只內(nèi)嵌字體的一個(gè)最小化子集,該子集只包含字體中被原始PDF文件使用過(guò)的字符,從而減小目標(biāo)PDF文件的數(shù)據(jù)量?;谙嗤募夹g(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了能夠?qū)崿F(xiàn)向PDF文件內(nèi)嵌單字節(jié)字體的系統(tǒng),如圖3所示,該系統(tǒng)包括字體描述信息確定模塊301、字形描述信息獲取模塊302,以及PDF文件生成模塊303;其中,字體描述信息確定模塊301,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;字形描述信息獲取模塊302,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;PDF文件生成模塊303,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。上述的字體描述信息確定模塊301可包括文件解析子模塊3011,用于解析待內(nèi)嵌字體的PDF文件;待嵌入字體及其描述確定子模塊3012,用于根據(jù)文件解析子模塊3011解析出的PDF文件的PDF字典對(duì)象確定出該P(yáng)DF文件所使用的但未內(nèi)嵌的單字節(jié)字體,以及該單字節(jié)字體的字體描述信息。上述字形描述信息獲取模塊302可包括內(nèi)容流解析子模塊3021,用于解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令;字符及其標(biāo)識(shí)獲取子模塊3022,用于根據(jù)內(nèi)容流解析子模塊3021解析出的所述指令確定出使用所述待嵌入單字節(jié)字體進(jìn)行文字輸出的字符;以及,根據(jù)確定出的輸出字符所屬的字體類型和對(duì)應(yīng)的編碼方式,獲取所述輸出字符的字符名字或字形標(biāo)識(shí)。如果輸出字符所屬的字體類型是Typel類型,則獲取到的是字符名字,如果輸出字符所屬的字體類型是TrueType類型,則獲取到的是字形標(biāo)識(shí),其根據(jù)字體類型以及進(jìn)一步根據(jù)編碼方式獲取字符名字或字形標(biāo)識(shí)的過(guò)程如前所述;字形描述信息獲取子模塊3023,用于根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息。字形描述信息獲取模塊302還包括字體文件加載子模塊30M,用于根據(jù)待嵌入字體及其描述確定子模塊3012確定出的單字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件。字形描述信息獲取子模塊3023獲取字形描述信息時(shí),從加載的字體文件中獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息。上述PDF文件生成模塊303可包括字體程序數(shù)據(jù)流構(gòu)造子模塊3031,用于根據(jù)待嵌入的單字節(jié)字體所屬的字體類型,構(gòu)造對(duì)應(yīng)的字體程序數(shù)據(jù)流;字體程序數(shù)據(jù)流寫(xiě)入子模塊3032,用于將獲取到的字形描述信息存入對(duì)應(yīng)的字體程序數(shù)據(jù)流;PDF文件寫(xiě)入子模塊3033,用于將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入單字節(jié)字體的字體描述信息寫(xiě)入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入單字節(jié)字體后的PDF文件。顯然,本領(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.一種向PDF文件內(nèi)嵌單字節(jié)字體的方法,其特征在于,包括以下步驟確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述字符名字或字形標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。2.如權(quán)利要求1所述的方法,其特征在于,確定所述待內(nèi)嵌字體的PDF文件中,使用所述待嵌入單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),包括通過(guò)解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令,根據(jù)所述指令確定出使用所述待嵌入單字節(jié)字體進(jìn)行文字輸出的字符的編碼;根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符名字或字形標(biāo)識(shí)。3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)確定出的輸出字符所屬的字體類型輸出字符的編碼,獲取所述輸出字符的字符名字或字形標(biāo)識(shí),包括若所述輸出字符所屬的字體類型是Typel類型,則根據(jù)字符編碼與字符名字的映射關(guān)系,得到所述輸出字符的編碼所對(duì)應(yīng)的字符名字;若所述輸出字符所屬的字體類型是TrueType類型,則根據(jù)字符編碼與字符名字的映射關(guān)系,得到所述輸出字符的編碼所對(duì)應(yīng)的字符名字,再根據(jù)TrueType字體文件中字符名字與字形標(biāo)識(shí)的映射關(guān)系,得到對(duì)應(yīng)的字形標(biāo)識(shí)。4.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息,包括根據(jù)所述單字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件;從加載的字體文件中獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息。5.如權(quán)利要求4所述的方法,其特征在于,所述單字節(jié)字體的字體描述信息中包括該字體在所述待內(nèi)嵌字體的PDF文件中所使用的字符集信息;從加載的字體文件中獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息時(shí),僅根據(jù)所述單字節(jié)字體的字體描述信息中攜帶的字符集信息,從加載的單字節(jié)字體文件中的相應(yīng)字符集獲取字形描述信息。6.如權(quán)利要求1所述的方法,其特征在于,根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件,包括根據(jù)待嵌入的單字節(jié)字體所屬的字體類型,構(gòu)造對(duì)應(yīng)的字體程序數(shù)據(jù)流;將獲取到的字形描述信息存入對(duì)應(yīng)的字體程序數(shù)據(jù)流;將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入單字節(jié)字體的字體描述信息寫(xiě)入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入單字節(jié)字體后的PDF文件。7.如權(quán)利要求6所述的方法,其特征在于,如果所述字符的標(biāo)識(shí)中包括子字符的字符名字或字形標(biāo)識(shí),則在獲取字形描述信息時(shí)還包括從所述待嵌入單字節(jié)字體的字體文件中獲取與所述子字符的字符名字或字形標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;以及,在將字形描述信息存入對(duì)應(yīng)的字體程序數(shù)據(jù)流時(shí),還包括將所述子字符的字形描述信息存入對(duì)應(yīng)的字體程序數(shù)據(jù)流。8.—種向PDF文件內(nèi)嵌單字節(jié)字體的系統(tǒng),其特征在于,包括字體描述信息確定模塊,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;字形描述信息獲取模塊,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;PDF文件生成模塊,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述字形描述信息獲取模塊,包括內(nèi)容流解析子模塊,用于解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令;字符及其標(biāo)識(shí)獲取子模塊,用于根據(jù)所述指令確定出使用所述待嵌入單字節(jié)字體進(jìn)行文字輸出的字符的編碼;以及,根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符名字或字形標(biāo)識(shí);字形描述信息獲取子模塊,用于根據(jù)所述單字節(jié)字體的字體文件獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息。10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述字符及其標(biāo)識(shí)獲取子模塊根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符名字或字形標(biāo)識(shí),包括若所述輸出字符所屬的字體類型是Typel類型,則根據(jù)字符編碼與字符名字的映射關(guān)系,得到所述輸出字符的編碼所對(duì)應(yīng)的字符名字;若所述輸出字符所屬的字體類型是TrueType類型,則根據(jù)字符編碼與字符名字的映射關(guān)系,得到所述輸出字符的編碼所對(duì)應(yīng)的字符名字,再根據(jù)TrueType字體文件中字符名字與字形標(biāo)識(shí)的映射關(guān)系,得到對(duì)應(yīng)的字形標(biāo)識(shí)。11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述字形描述信息獲取模塊還包括字體文件加載子模塊,用于根據(jù)所述單字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件;所述字形描述信息獲取子模塊獲取字形描述信息時(shí),從加載的字體文件中獲取與所述標(biāo)識(shí)對(duì)應(yīng)的字形描述信息。12.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述PDF文件生成模塊,包括字體程序數(shù)據(jù)流構(gòu)造子模塊,用于根據(jù)待嵌入的單字節(jié)字體所屬的字體類型,構(gòu)造對(duì)應(yīng)的字體程序數(shù)據(jù)流;字體程序數(shù)據(jù)流寫(xiě)入子模塊,用于將獲取到的字形描述信息存入對(duì)應(yīng)的字體程序數(shù)據(jù)流;PDF文件寫(xiě)入子模塊,用于將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入單字節(jié)字體的字體描述信息寫(xiě)入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入單字節(jié)字體后的PDF文件。全文摘要本發(fā)明公開(kāi)了一種向PDF文件內(nèi)嵌單字節(jié)字體的方法及其系統(tǒng),本發(fā)明方法包括確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該P(yáng)DF文件中的單字節(jié)字體,以及所述單字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述單字節(jié)字體進(jìn)行文字輸出的所有字符及其字符名字或字形標(biāo)識(shí),根據(jù)所述單字節(jié)字體的字體文件獲取與所述字符名字或字形標(biāo)識(shí)對(duì)應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入單字節(jié)字體后的PDF文件。采用本發(fā)明,可解決現(xiàn)有技術(shù)中由于將產(chǎn)生PS數(shù)據(jù)流作為向PDF文件內(nèi)嵌單字節(jié)字體的中間步驟所導(dǎo)致的易出錯(cuò)和效率低的問(wèn)題。文檔編號(hào)G06F17/22GK102063415SQ20091023813公開(kāi)日2011年5月18日申請(qǐng)日期2009年11月16日優(yōu)先權(quán)日2009年11月16日發(fā)明者劉佳峰,姚磊申請(qǐng)人:北京北大方正電子有限公司,北大方正集團(tuán)有限公司