欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

向pdf文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng)的制作方法

文檔序號:6584713閱讀:581來源:國知局

專利名稱::向pdf文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及排版
技術(shù)領(lǐng)域
,尤其涉及一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng)。
背景技術(shù)
:PDF(PortableDocumentFormat,可攜帶文檔格式)是Adobe公司開發(fā)的電子文件格式。這種文件格式與操作系統(tǒng)平臺無關(guān),即,PDF文件不管是在Windows,Unix還是在MacOS操作系統(tǒng)中都是通用的。這一特點使它成為在hternet上進行電子文檔發(fā)行和數(shù)字化信息傳播的理想文檔格式。越來越多的電子圖書、產(chǎn)品說明、公司文告、網(wǎng)絡(luò)資料、電子郵件開始使用PDF文件。PDF文件目前已成為數(shù)字化信息事實上的一個工業(yè)標(biāo)準(zhǔn)。PDF文件是為了支持跨平臺上的多媒體集成的信息出版和發(fā)布,為了達到此目的,PDF具有許多其他電子文檔格式無法相比的優(yōu)點。PDF文件可將文字、字型、格式、顏色及獨立于設(shè)備和分辨率的圖形圖像等封裝在一個文件中。PDF文件還可以包含超文本鏈接、聲音和動態(tài)影像等電子信息,支持特長文件,集成度和安全可靠性都較高。字體內(nèi)嵌是PDF技術(shù)中一個重要的分支,內(nèi)嵌了字體的PDF文件在呈現(xiàn)時不依賴呈現(xiàn)程序字體環(huán)境的特性,對保持呈現(xiàn)內(nèi)容的穩(wěn)定極其重要。因此,大量針對PDF的應(yīng)用將字體完全或部分內(nèi)嵌的PDF文件作為推薦甚至是強制的要求。目前,實現(xiàn)PDF字體內(nèi)嵌的方法將產(chǎn)生PS(P0StScript)數(shù)據(jù)流作為中間步驟,即,先將待內(nèi)嵌的PDF文件轉(zhuǎn)換為PS流,之后把PS流轉(zhuǎn)再換為內(nèi)嵌了字體的PDF文件,也就是說,在將PS流轉(zhuǎn)換為PDF文件的過程中,實現(xiàn)字體內(nèi)嵌功能。此方法的主要問題在于PDF和PS相互轉(zhuǎn)換的過程相當(dāng)復(fù)雜,容易引入錯誤,造成最終得到的PDF與原始的待內(nèi)嵌的PDF在內(nèi)容上出現(xiàn)差異;同時這個兩步轉(zhuǎn)換的過程在效率上也比較低。
發(fā)明內(nèi)容本發(fā)明實施例提供了一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng),用以解決現(xiàn)有技術(shù)中由于將產(chǎn)生PS數(shù)據(jù)流作為向PDF文件內(nèi)嵌字體的中間步驟所導(dǎo)致的易出錯和效率低的問題。為實現(xiàn)上述目標(biāo),本發(fā)明實施例提供如下的技術(shù)方案一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法,包括確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。一種向PDF文件內(nèi)嵌雙字節(jié)字體的系統(tǒng),包括字體描述信息確定模塊,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;字形描述信息獲取模塊,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;PDF文件生成模塊,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。本發(fā)明的上述實施例中,根據(jù)待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,確定待嵌入的雙字節(jié)字體,并獲取待嵌入的雙字節(jié)字體的字體描述信息;以及,確定出所述待內(nèi)嵌字體的PDF文件中,使用所述待嵌入雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,然后從待嵌入雙字節(jié)字體的字體文件中獲取與所述標(biāo)識對應(yīng)的字形描述信息;最后根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。由于上述確定待嵌入雙字節(jié)字體的過程、獲取字體描述信息的過程,以及獲取字形描述信息的過程,都可通過解析待嵌入字體的PDF文件實現(xiàn),因此與現(xiàn)有技術(shù)相比,省去了PS數(shù)據(jù)流的轉(zhuǎn)換過程,從而簡化了PDF文件內(nèi)嵌字體的流程,減少了由于PS數(shù)據(jù)流轉(zhuǎn)換所導(dǎo)致的錯誤幾率,并提高了字體內(nèi)嵌的效率。圖1為本發(fā)明實施例向PDF文件內(nèi)嵌雙字節(jié)字體的流程示意圖之一;圖2為本發(fā)明實施例向PDF文件內(nèi)嵌雙字節(jié)字體的流程示意圖之二;圖3為本發(fā)明實施例中Typel(CID)字體的編碼映射流程圖;圖4為本發(fā)明實施例中TrueType(CID)字體的編碼映射流程圖;圖5為本發(fā)明實施例向PDF文件內(nèi)嵌雙字節(jié)字體的系統(tǒng)的結(jié)構(gòu)示意圖。具體實施例方式為解決上述現(xiàn)有技術(shù)存在的問題,本發(fā)明實施例提供了一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng),使在解析待內(nèi)嵌字體的PDF文件的同時,直接生成目標(biāo)PDF文件(即內(nèi)嵌了字體的PDF文件),在生成目標(biāo)文件的過程中內(nèi)嵌雙字節(jié)字體的字形描述。與現(xiàn)有技術(shù)相比,由于避免了中間格式的使用,從而能更好地保證目標(biāo)文件的正確性,提高內(nèi)嵌操作的效率。下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。對于一個作為輸入的待內(nèi)嵌字體的原始PDF文件(以下稱原始文件),為了在其基礎(chǔ)上生成一個作為輸出的、內(nèi)嵌字體的PDF文件(以下稱目標(biāo)文件),在本發(fā)明實施例中,根據(jù)如圖1所示的步驟生成目標(biāo)文件步驟101、解析原始PDF文件,確定出該PDF文件所使用、但未嵌入到該PDF文件的字體,從中確定出待嵌入的雙字節(jié)字體(如中文簡體、中文繁體、日文、韓文);根據(jù)確定出的待嵌入的雙字節(jié)字體,獲取待嵌入雙字節(jié)字體的字體描述信息,其中可包括字體編碼方式信息和字體名稱;步驟102、通過解析原始PDF文件的內(nèi)容流,確定出該原始PDF文件中使用待嵌入雙字節(jié)字體進行文字輸出的所有字符,并根據(jù)這些字符所屬的字體類型和對應(yīng)的編碼方式,將字符經(jīng)編碼映射得到這些字符對應(yīng)的標(biāo)識(如字符標(biāo)識或字形標(biāo)識),并從待嵌入雙字節(jié)字體的字體文件中獲取與這些字符的標(biāo)識對應(yīng)的字形描述信息;步驟103、將到的字形描述信息組織成符合PDF文件規(guī)范的字體程序(fontprogram)數(shù)據(jù)流,將該字體程序數(shù)據(jù)流與獲取到的字體描述對象作為內(nèi)嵌到PDF文件中的字體文件數(shù)據(jù),從而生成目標(biāo)PDF文件。上述流程中,確定出的待嵌入的雙字節(jié)字體,可以是該原始PDF文件所使用但未內(nèi)嵌的所有雙字節(jié)字體,或是其中的一部分雙字節(jié)字體。上述流程可通過相應(yīng)的軟件系統(tǒng)實現(xiàn)。下面通過圖2,描述利用本發(fā)明實施例的軟件系統(tǒng),在PDF文件中嵌入該PDF文件所使用的、但未內(nèi)嵌到該PDF文件中的所有雙字節(jié)字體的詳細流程。為了方便實現(xiàn)本發(fā)明實施例,可使用如下集合作為實現(xiàn)該流程時用于存儲中間數(shù)據(jù)的數(shù)據(jù)存儲模塊待嵌入字體集合是一個包含所有待嵌入雙字節(jié)字體的字體對象的簡單集合。解析原始文件時,每發(fā)現(xiàn)一個待嵌入雙字節(jié)字體(以字體對象的形式存在),就在集合中增加一條記錄,不計重復(fù)(即對于同一個字體對象被使用多次的情況僅保存對應(yīng)的一條記錄);待嵌入字體描述集合是一個包含所有待嵌入雙字節(jié)字體的字體描述對象的簡單集合。不計重復(fù)(即對于同一個字體描述對象被引用多次的情況僅保存對應(yīng)的一條記錄;待嵌入字符集合是一個以字體對象為索引的、包含該字體在原始文件中被使用的所有字符的集合。在此集合中,字符以字符編碼(CharCode)或字符標(biāo)識(CID)或字形標(biāo)識(GlyphID)的形式被記錄,不計重復(fù)(即對于同一個字符被使用多次的情況僅保存一條對應(yīng)的記錄)。如圖2所示,通過本發(fā)明實施例的軟件系統(tǒng),在PDF文件中嵌入雙字節(jié)字體的過程,包括步驟201、解析原始文件,獲取其使用的所有未內(nèi)嵌的雙字節(jié)字體的字體對象(Font對象),并將這些對象保存在待嵌入字體集合中。通常,PDF中的Rmt對象是以PDF字典對象的形式存在于PDF文件,通過查找原始PDF文件的PDF字典對象可確定出該PDF文件所使用的但未內(nèi)嵌的雙字節(jié)字體。Font對象中包含字體名、編碼方式等有關(guān)字體的重要信息。步驟202、對于待嵌入字體集合中的所有雙字節(jié)字體的字體對象,查找其對應(yīng)的子代字體(DescendantFonts),從子代字體中查找于該待內(nèi)嵌的雙字節(jié)字體對應(yīng)的字體描述對象(RmtDescriptor),并將查找到的字體描述對象保存在待嵌入字體描述集合中。通常,子代字體是以PDF字典對象的形式存在于PDF文件,子代字體中包含相應(yīng)字體的RmtDescriptor對象,F(xiàn)ontDescriptor對象以字典對象的形式存在于PDF文件。步驟203、解析原始PDF文件中所有的內(nèi)容流,對于其中所有涉及文字輸出的指令,獲取其使用的字體以及輸出的字符的編碼,對于其中使用了待嵌入的雙字節(jié)字體的每個輸出字符,根據(jù)其字體類型和編碼方式,采用相應(yīng)的方式獲取這些字符的字符標(biāo)識或字形標(biāo)識,并將獲取到的字符標(biāo)識或字形標(biāo)識保存到以字體描述為索引的待嵌入字符集合中。該步驟中,對于Typel(CID)類型的字體,可將字符經(jīng)編碼映射得到字符標(biāo)識(CID);對于TrueType(CID)類型的字體,將字符經(jīng)編碼映射得到字符Unicode,之后,再通過查詢TrueType字體文件中的字形標(biāo)識表得到對應(yīng)的字符標(biāo)識(Glyph),其中,編碼映射的方法是通過查找編碼映射表找到與字符編碼對應(yīng)的字符名字,編碼映射表是每個字體描述對象包含的一個屬性。具體如下如圖3所示,對于Typel(CID)類型的字體,如果編碼方式是Identity-Η或Identity-V,則從內(nèi)容流中可解析出所述字符的字符標(biāo)識(CID)(見步驟301302);對于其他編碼方式,從內(nèi)容流中解析出所述字符的字符編碼(CharCode),然后根據(jù)該字符編碼將字符經(jīng)編碼映射得到對應(yīng)的字符標(biāo)識(CID)(見步驟301、步驟303、步驟304);獲取到字符標(biāo)識(CID)后,就可依據(jù)字符標(biāo)識從相應(yīng)的字體文件中找到該字符對應(yīng)的字形描述。如果字符還包含子字符,則需要按照上述方式一并獲取子字符對應(yīng)的字符標(biāo)識。如圖4所示,對于1TrueType(CID)類型的字體,如果編碼方式是Identity-Η或Identity-V,則從內(nèi)容流中解析出所述字符的字符標(biāo)識(CID),再根據(jù)字符標(biāo)識到字符統(tǒng)一代碼的映射表,獲得與該字符標(biāo)識對應(yīng)的字符統(tǒng)一代碼(Unicode),再根據(jù)字符統(tǒng)一代碼到字形標(biāo)識的映射表,得到與該字符Unicode對應(yīng)的字形標(biāo)識(GlyphID)(見步驟401、步驟402、步驟406、步驟407);對于Unicode編碼方式,從內(nèi)容流中解析出所述字符的字符Unicode,然后根據(jù)字符Unicode到字形標(biāo)識(GlyphID)的映射表,得到與該字符Unicode對應(yīng)的字形標(biāo)識(GlyphID)(見步驟401、步驟403、步驟407);對于其他編碼方式,從內(nèi)容流中解析出所述字符的字符編碼(CharCode),通過該字體描述對象的中映射表獲取與字符編碼(CharCode)對應(yīng)的字符標(biāo)識(CID),用查詢得到的字符標(biāo)識(CID),再查詢CID到Unicode的映射表獲得對應(yīng)的Unicode,以及對應(yīng)的字形標(biāo)識(GlyphID)(見步驟401、步驟404、步驟405、步驟406、步驟407);獲取到字形標(biāo)識(GlyphID)后,就可依據(jù)字形標(biāo)識(GlyphID)從相應(yīng)的字體文件中找到對應(yīng)的字形描述。如果字符還包含子字符,則需要按照上述方式一并獲取子字符對應(yīng)的字形標(biāo)識。步驟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、在待嵌入字體描述集合中,通過由字體描述構(gòu)成的索引定位到其中的一個字體描述,讀取該字體描述所對應(yīng)的所有字符標(biāo)識或字形標(biāo)識,在字體文件中分別查找對應(yīng)的字形描述信息,將查找到的字形描述信息寫入對應(yīng)的字體程序數(shù)據(jù)流。該步驟中,如果當(dāng)前字體描述所對應(yīng)的字體是Typel(CID)類型,則執(zhí)行以下步驟在待嵌入字符集合中,以當(dāng)前字體描述作為索引,遍歷其下的各字符標(biāo)識(CID),根據(jù)各字符標(biāo)識(CID)在Typel(CID)字體文件中查找對應(yīng)的字形描述信息,如果字符標(biāo)識(CID)中包含子字符標(biāo)識,則還需要查找子字符標(biāo)識對應(yīng)的子字符字形描述信息;然后將查找到的字形描述信息按照CFF字體程序規(guī)范存入之前構(gòu)造的CFF數(shù)據(jù)流中;如果當(dāng)前字體描述對應(yīng)的字體是TrueType(CID)類型,則執(zhí)行以下步驟在待嵌入字符集合中,以當(dāng)前字體描述作為索引,遍歷其下的各字形標(biāo)識(GlyphID),根據(jù)各字形標(biāo)識在TrueType(CID)字體文件中查找對應(yīng)的字形描述信息,如果字形標(biāo)識中包含子字符的字形標(biāo)識,則還需要查找子字符的字形標(biāo)識對應(yīng)的子字符字形描述信息;然后,將獲取到的字形描述信息按照TrueType(CID)字體程序規(guī)范存入之前構(gòu)造的TrueType(CID)數(shù)據(jù)流中。步驟206、針對待嵌入字符集合中的所有字體描述所對應(yīng)的字符標(biāo)識和字形標(biāo)識,是否都已將對應(yīng)的字形描述信息寫入字體程序數(shù)據(jù)流,即,是否將待內(nèi)嵌字符集合中的字符標(biāo)識和字形標(biāo)識所對應(yīng)的字形描述信息都寫入字體程序數(shù)據(jù)流,若是,則執(zhí)行步驟207;否則,返回步驟205。步驟207、將字體程序數(shù)據(jù)流寫入目標(biāo)PDF文件,將待內(nèi)嵌字體描述集合中所記錄的字體描述對象按照PDF規(guī)范寫入目標(biāo)PDF文件。其中,將Typel(CID)類型字體的字體描述對象,按照PDF規(guī)范中關(guān)于CFF字體內(nèi)嵌的規(guī)范進行必要的修改后(主要是引用生成的CFF數(shù)據(jù)流),寫入目標(biāo)PDF文件;將TrueType(CID)類型字體的字體描述對象,按照PDF規(guī)范中關(guān)于TrueType(CID)字體內(nèi)嵌的規(guī)范進行必要的修改后(主要是引用生成的TrueType(CID)數(shù)據(jù)流),寫入目標(biāo)PDF文件。步驟208、遍歷原始PDF文件中的對象,除了那些已經(jīng)通過上述步驟寫入目標(biāo)PDF文件中的字體描述對象以外,將其它所有對象不做修改,存入目標(biāo)PDF文件。上述流程的步驟202中,獲取到的待嵌入字體的字體描述信息可以選擇性地包含該字體在原始PDF文件中使用過的字符的集合(如字符集的標(biāo)識或名稱等信息),以便在后續(xù)嵌入字體的過程中獲取字形描述信息時,僅需根據(jù)相應(yīng)字體文件中包含的該字符集合,從該字符集合中獲取對應(yīng)的字形描述信息寫入目標(biāo)PDF文件,這樣,在內(nèi)嵌字體時只內(nèi)嵌字體的一個最小化子集,該子集只包含字體中被原始PDF文件使用過的字符,從而減小目標(biāo)PDF文件的數(shù)據(jù)量?;谙嗤募夹g(shù)構(gòu)思,本發(fā)明實施例還提供了能夠?qū)崿F(xiàn)向PDF文件內(nèi)嵌雙字節(jié)字體的系統(tǒng),如圖5所示,該系統(tǒng)包括字體描述信息確定模塊501、字形描述信息獲取模塊502,以及PDF文件生成模塊503;其中,字體描述信息確定模塊501,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;字形描述信息獲取模塊502,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;PDF文件生成模塊503,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。上述的字體描述信息確定模塊501可包括文件解析子模塊5011,用于解析待內(nèi)嵌字體的PDF文件;待嵌入字體及其描述確定子模塊5012,用于根據(jù)文件解析子模塊5011解析出的PDF文件的PDF字典對象確定出該PDF文件所使用的但未內(nèi)嵌的雙字節(jié)字體,以及該雙字節(jié)字體的字體描述信息。上述字形描述信息獲取模塊502可包括內(nèi)容流解析子模塊5021,用于解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令;字符及其標(biāo)識獲取子模塊5022,用于根據(jù)內(nèi)容流解析子模塊5021解析出的所述指令確定出使用所述待嵌入雙字節(jié)字體進行文字輸出的字符;以及,根據(jù)確定出的輸出字符所屬的字體類型和對應(yīng)的編碼方式,獲取所述輸出字符的字符標(biāo)識或字形標(biāo)識。如果輸出字符所屬的字體類型是Typel類型,則獲取到的是字符標(biāo)識,如果輸出字符所屬的字體類型是TrueType類型,則獲取到的是字形標(biāo)識,其根據(jù)字體類型以及進一步根據(jù)編碼方式獲取字符標(biāo)識或字形標(biāo)識的過程如前所述;字形描述信息獲取子模塊5023,用于根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息。字形描述信息獲取模塊502還包括字體文件加載子模塊50M,用于根據(jù)待嵌入字體及其描述確定子模塊5012確定出的雙字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件。字形描述信息獲取子模塊5023獲取字形描述信息時,從加載的字體文件中獲取與所述標(biāo)識對應(yīng)的字形描述信息。上述PDF文件生成模塊503可包括字體程序數(shù)據(jù)流構(gòu)造子模塊5031,用于根據(jù)待嵌入的雙字節(jié)字體所屬的字體類型,構(gòu)造對應(yīng)的字體程序數(shù)據(jù)流;字體程序數(shù)據(jù)流寫入子模塊5032,用于將獲取到的字形描述信息存入對應(yīng)的字體程序數(shù)據(jù)流;PDF文件寫入子模塊5033,用于將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入雙字節(jié)字體的字體描述信息寫入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入雙字節(jié)字體后的PDF文件。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。權(quán)利要求1.一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法,其特征在于,包括以下步驟確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。2.如權(quán)利要求1所述的方法,其特征在于,確定所述待內(nèi)嵌字體的PDF文件中,使用所述待嵌入雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,包括通過解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令,根據(jù)所述指令確定出使用所述待嵌入雙字節(jié)字體進行文字輸出的字符的編碼;根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符標(biāo)識或字形標(biāo)識。3.如權(quán)利要求2所述的方法,其特征在于,所述輸出字符所屬的字體類型是Typel類型,且對應(yīng)的編碼是Identity-Η或Identity-V編碼時,獲取所述輸出字符的字符標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符標(biāo)識;所述輸出字符所屬的字體類型是Typel類型,且對應(yīng)的編碼是除Identity-Η和Identity-V以外的編碼時,獲取所述輸出字符的字符標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符編碼,根據(jù)字符編碼與字符標(biāo)識的映射關(guān)系,得到所述輸出字符的編碼對應(yīng)的字符標(biāo)識;所述輸出字符所屬的字體類型是TrueType類型,且對應(yīng)的編碼是Identity-Η和Identity-V編碼時,獲取所述輸出的字符的字形標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符標(biāo)識,根據(jù)字符標(biāo)識與統(tǒng)一代碼的映射關(guān)系得到所述輸出字符的編碼對應(yīng)的統(tǒng)一代碼,根據(jù)統(tǒng)一代碼與字形標(biāo)識的映射關(guān)系得到與該統(tǒng)一代碼對應(yīng)的字形標(biāo)識;所述輸出字符所屬的字體類型是TrueType類型,且對應(yīng)的編碼是除Identity-Η和Identity-V以外的編碼時,獲取所述輸出的字符的字形標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符標(biāo)識或字符編碼,根據(jù)字符標(biāo)識或字符編碼與字形標(biāo)識的映射關(guān)系,得到所述輸出字符的字符標(biāo)識或字符編碼對應(yīng)的字形標(biāo)識。4.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息,包括根據(jù)所述雙字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件;從加載的字體文件中獲取與所述標(biāo)識對應(yīng)的字形描述信息。5.如權(quán)利要求4所述的方法,其特征在于,所述雙字節(jié)字體的字體描述信息中包括該字體在所述待內(nèi)嵌字體的PDF文件中所使用的字符集信息;從加載的字體文件中獲取與所述標(biāo)識對應(yīng)的字形描述信息時,僅根據(jù)所述雙字節(jié)字體的字體描述信息中攜帶的字符集信息,從加載的雙字節(jié)字體文件中的相應(yīng)字符集獲取字形描述信息。6.如權(quán)利要求1所述的方法,其特征在于,根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件,包括根據(jù)待嵌入的雙字節(jié)字體所屬的字體類型,構(gòu)造對應(yīng)的字體程序數(shù)據(jù)流;將獲取到的字形描述信息存入對應(yīng)的字體程序數(shù)據(jù)流;將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入雙字節(jié)字體的字體描述信息寫入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入雙字節(jié)字體后的PDF文件。7.如權(quán)利要求6所述的方法,其特征在于,如果所述字符的標(biāo)識中包括子字符的字符標(biāo)識或字形標(biāo)識,則在獲取字形描述信息時還包括從所述待嵌入雙字節(jié)字體的字體文件中獲取與所述子字符的字符標(biāo)識或字形標(biāo)識對應(yīng)的字形描述信息;以及,在將字形描述信息存入對應(yīng)的字體程序數(shù)據(jù)流時,還包括將所述子字符的字形描述信息存入對應(yīng)的字體程序數(shù)據(jù)流。8.—種向PDF文件內(nèi)嵌雙字節(jié)字體的系統(tǒng),其特征在于,包括字體描述信息確定模塊,用于確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;字形描述信息獲取模塊,用于確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;PDF文件生成模塊,用于根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述字形描述信息獲取模塊,包括內(nèi)容流解析子模塊,用于解析所述待嵌入字體的PDF文件的內(nèi)容流,得到所有涉及文字輸出的指令;字符及其標(biāo)識獲取子模塊,用于根據(jù)所述指令確定出使用所述待嵌入雙字節(jié)字體進行文字輸出的字符的編碼;以及,根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符標(biāo)識或字形標(biāo)識;字形描述信息獲取子模塊,用于根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息。10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述字符及其標(biāo)識獲取子模塊根據(jù)確定出的輸出字符所屬的字體類型和輸出字符的編碼,獲取所述輸出字符的字符標(biāo)識或字形標(biāo)識,包括所述輸出字符所屬的字體類型是Typel類型,且對應(yīng)的編碼是除Identity-Η和Identity-V以外的編碼時,獲取所述輸出字符的字符標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符編碼,根據(jù)字符編碼與字符標(biāo)識的映射關(guān)系,得到所述輸出字符的編碼對應(yīng)的字符標(biāo)識;所述輸出字符所屬的字體類型是TrueType類型,且對應(yīng)的編碼是Identity-Η和Identity-V編碼時,獲取所述輸出的字符的字形標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符標(biāo)識,根據(jù)字符標(biāo)識與統(tǒng)一代碼的映射關(guān)系得到所述輸出字符的編碼對應(yīng)的統(tǒng)一代碼,根據(jù)統(tǒng)一代碼與字形標(biāo)識的映射關(guān)系得到與該統(tǒng)一代碼對應(yīng)的字形標(biāo)識;所述輸出字符所屬的字體類型是TrueType類型,且對應(yīng)的編碼是除Identity-Η和Identity-V以外的編碼時,獲取所述輸出的字符的字形標(biāo)識,具體為從所述待嵌入字體的PDF文件的內(nèi)容流中解析出所述輸出字符的字符標(biāo)識或字符編碼,根據(jù)字符標(biāo)識或字符編碼與字形標(biāo)識的映射關(guān)系,得到所述輸出字符的字符標(biāo)識或字符編碼對應(yīng)的字形標(biāo)識。11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述字形描述信息獲取模塊還包括字體文件加載子模塊,用于根據(jù)所述雙字節(jié)字體的字體描述信息,加載相應(yīng)的字體文件;所述字形描述信息獲取子模塊獲取字形描述信息時,從加載的字體文件中獲取與所述標(biāo)識對應(yīng)的字形描述信息。12.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述PDF文件生成模塊,包括字體程序數(shù)據(jù)流構(gòu)造子模塊,用于根據(jù)待嵌入的雙字節(jié)字體所屬的字體類型,構(gòu)造對應(yīng)的字體程序數(shù)據(jù)流;字體程序數(shù)據(jù)流寫入子模塊,用于將獲取到的字形描述信息存入對應(yīng)的字體程序數(shù)據(jù)流;PDF文件寫入子模塊,用于將保存有字形描述信息的字體程序數(shù)據(jù)流,以及待嵌入雙字節(jié)字體的字體描述信息寫入目標(biāo)PDF文件,所述目標(biāo)PDF文件為嵌入所述待嵌入雙字節(jié)字體后的PDF文件。全文摘要本發(fā)明公開了一種向PDF文件內(nèi)嵌雙字節(jié)字體的方法及其系統(tǒng),本發(fā)明方法包括確定出待內(nèi)嵌字體的PDF文件所使用的但未嵌入到該PDF文件中的雙字節(jié)字體,以及所述雙字節(jié)字體的字體描述信息;確定出所述待內(nèi)嵌字體的PDF文件中,使用所述雙字節(jié)字體進行文字輸出的所有字符及其字符標(biāo)識或字形標(biāo)識,根據(jù)所述雙字節(jié)字體的字體文件獲取與所述標(biāo)識對應(yīng)的字形描述信息;根據(jù)獲取到的字體描述信息,以及獲取到的字形描述信息,生成嵌入所述待嵌入雙字節(jié)字體后的PDF文件。采用本發(fā)明,可解決現(xiàn)有技術(shù)中由于將產(chǎn)生PS數(shù)據(jù)流作為向PDF文件內(nèi)嵌雙字節(jié)字體的中間步驟所導(dǎo)致的易出錯和效率低的問題。文檔編號G06F17/22GK102063416SQ20091023813公開日2011年5月18日申請日期2009年11月16日優(yōu)先權(quán)日2009年11月16日發(fā)明者劉佳峰,姚磊申請人:北京北大方正電子有限公司,北大方正集團有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
喀喇沁旗| 新泰市| 云林县| 日土县| 甘泉县| 大悟县| 读书| 正定县| 磐石市| 郎溪县| 嘉荫县| 托克托县| 德安县| 固阳县| 红桥区| 湖北省| 隆回县| 龙游县| 镇安县| 汝南县| 安泽县| 望谟县| 永德县| 大洼县| 开鲁县| 平定县| 临武县| 鹤峰县| 南川市| 石屏县| 章丘市| 吴桥县| 贵州省| 北安市| 靖安县| 周至县| 许昌市| 邳州市| 鹰潭市| 阳泉市| 玉门市|