一種基于Mathtype的公式排版的方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及排版編輯技術(shù)領(lǐng)域,具體而言,涉及一種基于Mathtype的公式排版的方法及裝置。
背景技術(shù)
[0002] 在從XML文件生成PDF文件的排版系統(tǒng)中,排版人員有時(shí)需要在內(nèi)容中插入數(shù)學(xué)公式;該操作過(guò)程中面臨的問(wèn)題共有:如何在XML中表示這些公式,如何編輯這些公式,如何從XML在PDF中生成最后的公式。現(xiàn)有技術(shù)中,一般都是通過(guò)在XML文件中保留一個(gè)表示公式的XML標(biāo)簽,其內(nèi)容是Latex格式,用戶通過(guò)使用文本編輯器編輯XML中的Latex部分,在排版生成PDF文件時(shí)先預(yù)處理XML,將所有Latex代碼提取出來(lái),調(diào)用latex生成公式,然后排版時(shí)合并這些公式至PDF文件中,最后插入到PDF的相應(yīng)位置;該方案存在的問(wèn)題是:系統(tǒng)效率較低,排版時(shí)占用系統(tǒng)資源過(guò)高。并且沒(méi)有一個(gè)好的方法編輯這些Latex代碼,由于Latex的復(fù)雜性,出現(xiàn)Latex錯(cuò)誤時(shí)也不容易排除錯(cuò)誤;這樣就需要用戶具備良好的Latex使用技能,對(duì)用戶的要求較高。
發(fā)明內(nèi)容
[0003] 有鑒于此,本發(fā)明的目的在于提供一種基于Mathtype的公式排版的方法,以提高在從XML文件生成PDF文件的排版系統(tǒng)中對(duì)公式編輯和排版的效率。
[0004] 第一方面,本發(fā)明實(shí)施例提供了一種基于Mathtype的公式排版的方法,包括:
[0005] 在可擴(kuò)展標(biāo)記語(yǔ)言XML中嵌入數(shù)學(xué)標(biāo)記語(yǔ)言mathml與wmf圖片;
[0006] 調(diào)用公式編輯器Mathtype進(jìn)行公式編輯,并保存公式編輯結(jié)果;
[0007] 輸出所述公式編輯結(jié)果至待插入公式的PDF格式文件中。
[0008] 結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中,所述在可擴(kuò)展標(biāo)記語(yǔ)言XML中嵌入數(shù)學(xué)標(biāo)記語(yǔ)言mathml與wmf圖片,包括:
[0009] 在XML中定義表示公式的標(biāo)簽,所述標(biāo)簽的內(nèi)容包括:mathml格式內(nèi)容和wmf圖片格式內(nèi)容;
[0010] 通過(guò)Mathtype的軟件開(kāi)發(fā)工具包SDK,將Mathtype的對(duì)象連接與嵌入OLE格式數(shù)據(jù)以注釋的形式插入在所述公式的wmf圖片中。
[0011] 結(jié)合第一方面或者第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中,所述調(diào)用公式編輯器Mathtype進(jìn)行公式編輯,并保存公式編輯結(jié)果,包括:
[0012] 響應(yīng)于用戶的操作指令,獲取定義的標(biāo)簽的內(nèi)容,將所述標(biāo)簽的內(nèi)容傳遞至Mathtype編輯助手;
[0013] 通過(guò)所述Mathtype編輯助手對(duì)所述標(biāo)簽標(biāo)識(shí)公式中的公式內(nèi)容進(jìn)行處理,使所述公式內(nèi)容處于可編輯狀態(tài);
[0014] 響應(yīng)于用戶在Mathtype中保存公式的操作,通過(guò)Mathtype編輯助手調(diào)用Mathtype的軟件開(kāi)工具包SDK,將所述公式轉(zhuǎn)換成數(shù)字標(biāo)記語(yǔ)言,并生成包含OLE數(shù)據(jù)的wmf格式文件,將所述wmf格式文件回傳給XML出版系統(tǒng),更新相應(yīng)的XML標(biāo)簽。
[0015] 結(jié)合第一方面或者第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中,所述公式編輯結(jié)果包括:wmf圖片文件;
[0016] 所述輸出所述公式編輯結(jié)果至PDF格式文件中,包括:
[0017] 解析所述wmf圖片文件,提取公式大小數(shù)據(jù);
[0018] 在待插入公式的PDF文件中預(yù)排版出一個(gè)尺寸與所述公式大小數(shù)據(jù)相一致的區(qū)域;
[0019] 將解析所述wmf圖片文件得到的每一個(gè)WMF繪圖指令,轉(zhuǎn)換成PDF繪圖指令,執(zhí)行所述PDF繪圖指令,將XML標(biāo)簽中的公式標(biāo)簽按要求繪制在所述區(qū)域上;
[0020] 根據(jù)PDF繪圖指令生成png文件,用于反饋給用戶界面提供供圖示功能;進(jìn)而便于用戶的理解和操作。
[0021] 結(jié)合第一方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中,所述通過(guò)所述Mathtype編輯助手對(duì)所述標(biāo)簽標(biāo)識(shí)公式中的公式內(nèi)容進(jìn)行處理,使所述公式內(nèi)容處于可編輯狀態(tài),包括:
[0022] 通過(guò)Mathtype編輯助手檢查收到的標(biāo)簽數(shù)據(jù),判斷所述wmf圖片文件中是否存在OLE注釋;
[0023] 如果wmf圖片文件中存在OLE注釋,就提取出這些注釋,調(diào)用Mathtype打開(kāi)公式;
[0024] 如果wmf圖片文件中不存在OLE注釋,則利用mathml調(diào)用Mathtype打開(kāi)公式。
[0025] 第二方面,本發(fā)明實(shí)施例還提供了一種基于Mathtype的公式排版的裝置,包括:
[0026] 嵌入模塊,用于在可擴(kuò)展標(biāo)記語(yǔ)言XML中嵌入數(shù)學(xué)標(biāo)記語(yǔ)言mathml與wmf圖片;
[0027] 編輯模塊,用于調(diào)用公式編輯器Mathtype進(jìn)行公式編輯,并保存公式編輯結(jié)果;
[0028] 輸出模塊,用于輸出所述公式編輯結(jié)果至待插入公式的PDF格式文件中。