本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種加載ocx控件的方法及系統(tǒng)。
背景技術(shù):
通過(guò)ocx控件可在幻燈片中播放flash或html5資源,豐富了幻燈片的播放內(nèi)容。現(xiàn)有的ppt制作工具,如microsoftofficepowerpoint2007,使用ocx控件的絕對(duì)路徑作為鏈接地址。當(dāng)制作好的pptx格式文件轉(zhuǎn)移至其他路徑下時(shí),幻燈片包含的ocx控件的絕對(duì)路徑發(fā)生變化,根據(jù)在制作過(guò)程中添加的ocx控件的鏈接地址找不到對(duì)應(yīng)的資源,導(dǎo)致無(wú)法正確加載ocx控件,從而無(wú)法自動(dòng)播放該幻燈片中包含的flash或html5資源。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種加載ocx控件的方法及系統(tǒng),實(shí)現(xiàn)在使用ocx控件的絕對(duì)路徑作為鏈接地址制作幻燈片的情況下,pptx格式文件存儲(chǔ)于任一路徑下都能正確加載當(dāng)前放映的幻燈片包含的ocx控件。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
本發(fā)明提供一種加載ocx控件的方法,包括:
s1、解析pptx格式文件至預(yù)設(shè)的文件夾;
s2、獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片所包含的ocx控件的原始路徑;
s3、根據(jù)所述ocx控件的原始路徑和所述臨時(shí)文件夾的絕對(duì)路徑,得到所述ocx控件的當(dāng)前絕對(duì)路徑;
s4、根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
本發(fā)明還提供一種加載ocx控件的系統(tǒng),其特征在于,包括:
解析模塊,用于解析pptx格式文件至預(yù)設(shè)的文件夾;
第一獲取模塊,用于獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片所包含的ocx控件的原始路徑;
第二獲取模塊,用于根據(jù)所述ocx控件的原始路徑和所述臨時(shí)文件夾的絕對(duì)路徑,得到所述ocx控件的當(dāng)前絕對(duì)路徑;
加載模塊,用于根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
本發(fā)明的有益效果在于:通過(guò)在打開(kāi)pptx格式文件的過(guò)程中將ocx控件拷貝至特定的臨時(shí)文件夾下,并重新獲取臨時(shí)文件夾中ocx控件的鏈接地址為該ocx控件的當(dāng)前絕對(duì)路徑,使得在使用ocx控件的絕對(duì)路徑作為鏈接地址制作幻燈片的情況下,實(shí)現(xiàn)pptx格式文件存儲(chǔ)于任一路徑下都能根據(jù)ocx控件在特定的臨時(shí)文件夾中的絕對(duì)路徑正確加載對(duì)應(yīng)的ocx控件。
附圖說(shuō)明
圖1為本發(fā)明提供的一種加載ocx控件的方法的具體實(shí)施方式的流程框圖;
圖2為本發(fā)明提供的一種加載ocx控件的系統(tǒng)的具體實(shí)施方式的結(jié)構(gòu)框圖;
標(biāo)號(hào)說(shuō)明:
1、解析模塊;2、第一獲取模塊;3、第二獲取模塊;4、加載模塊。
具體實(shí)施方式
為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說(shuō)明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:通過(guò)在打開(kāi)pptx格式文件的過(guò)程中將ocx控件拷貝至特定的臨時(shí)文件夾下,實(shí)現(xiàn)在使用ocx控件的絕對(duì)路徑作為鏈接地址制作幻燈片的情況下,pptx格式文件存儲(chǔ)于任一路徑下都能正確加載當(dāng)前放映的幻燈片包含的ocx控件。
如圖1所示,本發(fā)明提供一種加載ocx控件的方法,包括:
s1、解析pptx格式文件至預(yù)設(shè)的文件夾;
s2、獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片所包含的ocx控件的原始路徑;
s3、根據(jù)所述ocx控件的原始路徑和所述臨時(shí)文件夾的絕對(duì)路徑,得到所述ocx控件的當(dāng)前絕對(duì)路徑;
s4、根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
進(jìn)一步地,所述s2具體為:
s21、獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片的頁(yè)碼;
s22、解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片序列化xml文檔,得到所述ocx控件的編號(hào);所述幻燈片序列化xml文檔記錄幻燈片中包含的對(duì)象;
s23、根據(jù)所述編號(hào)解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片鏈接xml文檔,得到所述ocx控件的原始路徑;所述幻燈片鏈接xml文檔存儲(chǔ)幻燈片中包含的對(duì)象的鏈接地址。
進(jìn)一步地,所述s22具體為:
在所述幻燈片序列化xml文檔中查找選擇框元素;
獲取所述選擇框元素包含的控件子元素;
獲取所述控件子元素的編號(hào)屬性值。
進(jìn)一步地,所述s23具體為:
匹配所述編號(hào)與所述幻燈片鏈接xml文檔中第一元素的編號(hào)屬性值,得到匹配結(jié)果;
若所述匹配結(jié)果為匹配成功,則獲取所述第一元素的路徑屬性值。
由上述描述可知,自動(dòng)解析當(dāng)前放映的幻燈片中包括的ocx控件鏈接地址,從而實(shí)現(xiàn)播放幻燈片時(shí)自動(dòng)播放幻燈片所包括的ocx控件。
進(jìn)一步地,所述s4具體為:
chromium嵌入式框架根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
由上述描述可知,chromium嵌入式框架為嵌入式形式,播放ocx控件時(shí)無(wú)需開(kāi)啟獨(dú)立窗口,用戶感知不到ocx控件的存在,像pptx格式文件的原生效果,提高用戶體驗(yàn)。
進(jìn)一步地,所述文件夾為臨時(shí)文件夾。
由上述描述可知,當(dāng)關(guān)閉pptx格式文件時(shí),系統(tǒng)會(huì)自動(dòng)刪除存儲(chǔ)于臨時(shí)文件夾中的文件,避免每次打開(kāi)pptx格式文件都會(huì)造成系統(tǒng)垃圾,占用系統(tǒng)的存儲(chǔ)單元。
如圖2所示,本發(fā)明還提供一種加載ocx控件的系統(tǒng),包括:
解析模塊1,用于解析pptx格式文件至預(yù)設(shè)的文件夾;
第一獲取模塊2,用于獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片所包含的ocx控件的原始路徑;
第二獲取模塊3,用于根據(jù)所述ocx控件的原始路徑和所述臨時(shí)文件夾的絕對(duì)路徑,得到所述ocx控件的當(dāng)前絕對(duì)路徑;
加載模塊4,用于根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
進(jìn)一步地,所述第一獲取模塊包括:
第一獲取單元,用于獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片的頁(yè)碼;
第一解析單元,用于解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片序列化xml文檔,得到所述ocx控件的編號(hào);所述幻燈片序列化xml文檔記錄幻燈片中包含的對(duì)象;
第二解析單元,用于根據(jù)所述編號(hào)解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片鏈接xml文檔,得到所述ocx控件的原始路徑;所述幻燈片鏈接xml文檔存儲(chǔ)幻燈片中包含的對(duì)象的鏈接地址。
進(jìn)一步地,所述第一解析單元包括:
查找單元,用于在所述幻燈片序列化xml文檔中查找選擇框元素;
第二獲取單元,用于獲取所述選擇框元素包含的控件子元素;
第三獲取單元,用于獲取所述控件子元素的編號(hào)屬性值。
進(jìn)一步地,所述第二解析單元包括:
匹配單元,用于匹配所述編號(hào)與所述幻燈片鏈接xml文檔中第一元素的編號(hào)屬性值,得到匹配結(jié)果;
第四獲取單元,用于若所述匹配結(jié)果為匹配成功,則獲取所述第一元素的路徑屬性值。
由上述描述可知,本發(fā)明提供的加載ocx控件的系統(tǒng)實(shí)現(xiàn)pptx格式文件存儲(chǔ)于任一路徑下都能正確加載當(dāng)前放映的幻燈片所包含的ocx控件。
實(shí)施例:
s1、解析pptx格式文件至預(yù)設(shè)的臨時(shí)文件夾;
其中,將pptx格式文件解壓至臨時(shí)文件夾temp下,當(dāng)pptx格式文件關(guān)閉時(shí)系統(tǒng)會(huì)自動(dòng)刪除臨時(shí)文件夾temp。
全屏狀態(tài)下獲取當(dāng)前放映幻燈片的頁(yè)碼“#”,解析第#頁(yè)幻燈片,得到第#頁(yè)幻燈片序列化文件和第#頁(yè)幻燈片鏈接文件。第#頁(yè)幻燈片序列化文件為xml文檔格式,存放該頁(yè)幻燈片所包含的所有對(duì)象數(shù)據(jù),如:第2頁(yè)幻燈片序列化文件保存為slide2.xml。第#頁(yè)幻燈片鏈接文件為rels格式文件,存放所有圖片、視頻、音頻、控件等對(duì)象數(shù)據(jù)的鏈接地址,如:第2頁(yè)幻燈片鏈接文件保存為slide2.xml.rels。
s2、獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片所包含的ocx控件的原始路徑;
s21、獲取所述pptx格式文件中處于放映狀態(tài)的幻燈片的頁(yè)碼“#”;
s22、解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片序列化xml文檔,得到所述ocx控件的編號(hào);
其中,讀取temp文件夾中的slide#.xml文件;在slide#.xml文件中通過(guò)查找標(biāo)簽mc:choice獲取選擇框元素;識(shí)別選擇框元素中標(biāo)簽p:control(控件)中r:id(標(biāo)識(shí)號(hào))項(xiàng)的值key;如key的值為rid2,表示第#頁(yè)幻燈片中包含編號(hào)為rid2的ocx控件;
s23、根據(jù)所述編號(hào)解析與所述頁(yè)碼對(duì)應(yīng)的幻燈片鏈接xml文檔,得到所述ocx控件的原始路徑;所述幻燈片鏈接xml文檔存儲(chǔ)幻燈片中包含的對(duì)象的鏈接地址;
其中,讀取temp文件夾中的slide#.xml.rels文件,從頭到尾匹配標(biāo)簽,找到id(標(biāo)識(shí)號(hào))項(xiàng)的值為key(rid2)的標(biāo)簽項(xiàng),然后獲取該標(biāo)簽的target(目標(biāo))項(xiàng)的值path;讀取path路徑的對(duì)應(yīng)文件,從頭到尾匹配標(biāo)簽,找到ax:name(名稱)項(xiàng)的值為“url”的標(biāo)簽項(xiàng),然后獲取該標(biāo)簽的ax:value項(xiàng)的值value,value的值即制作該pptx格式文件時(shí),該ocx控件的原始路徑。
s3、根據(jù)所述ocx控件的原始路徑和所述臨時(shí)文件夾的絕對(duì)路徑,得到所述ocx控件的當(dāng)前絕對(duì)路徑;
s4、chromium嵌入式框架根據(jù)所述當(dāng)前絕對(duì)路徑加載所述ocx控件。
綜上所述,本發(fā)明提供的一種加載ocx控件的方法及系統(tǒng),通過(guò)在打開(kāi)pptx格式文件的過(guò)程中將ocx控件拷貝至特定的臨時(shí)文件夾下,并重新獲取臨時(shí)文件夾中ocx控件的鏈接地址為該ocx控件的當(dāng)前絕對(duì)路徑,使得在使用ocx控件的絕對(duì)路徑作為鏈接地址制作幻燈片的情況下,實(shí)現(xiàn)pptx格式文件存儲(chǔ)于任一路徑下都能根據(jù)ocx控件在特定的臨時(shí)文件夾中的絕對(duì)路徑正確加載對(duì)應(yīng)的ocx控件。進(jìn)一步地,自動(dòng)解析當(dāng)前放映的幻燈片中包括的ocx控件鏈接地址,從而實(shí)現(xiàn)播放幻燈片時(shí)自動(dòng)播放幻燈片所包括的ocx控件。進(jìn)一步地,本發(fā)明提供的加載ocx控件的系統(tǒng)實(shí)現(xiàn)pptx格式文件存儲(chǔ)于任一路徑下都能正確加載當(dāng)前放映的幻燈片所包含的ocx控件。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。