我的需求是匯出doc復合檔案中嵌入的圖片或檔案。
也看了很多講office復合檔案的資料,但是好復雜,還是不太懂怎么找嵌入物件的位置,如下圖,感覺就在Ole10Native這里,看資料StartSect是資料偏移,Sizelow是資料大小,但是把這塊資料拷貝出來不太對呀。

上面說的StartSect是相對哪兒的偏移呢,我是相對DirectEntry Ole10Native算的,是不是不太對?大小感覺也不太對,是不是包含了什么物件結構頭?那么這個結構頭的大小在哪兒找呢~~好暈~~
像OpenXML就一目了然,在zip檔案夾下 有embeding和media目錄,所有插入物件都在這個里面,檔案名也很好獲取。
那么復合檔案結構究竟怎么獲取插入物件的檔案名和內容呢?(不知道復合檔案中有沒有存盤嵌入物件的名稱,能找到檔案名最好,找不到就自己起一個也行。)
求大神指教,多謝!
uj5u.com熱心網友回復:
在Word中開始記錄宏,手動完成所需功能,結束記錄宏,按Alt+F11鍵,查看剛才記錄的宏對應的VBA代碼。uj5u.com熱心網友回復:
是要用C語言實作呢,沒有很多可以用的類別庫uj5u.com熱心網友回復:
自力更生弄出來了,DirectEntry 中的嵌入物件都在目錄ObjectPool的子目錄下,有兩種物件,一種是Package型別(嵌入的word,excel屬于這種),這種型別直接偏移到StartSect取資料即可。還有一種型別是我遇到問題的這種Ole10Native(jpg圖片),這種型別StartSect指向的資料塊前面有個頭,頭里面攜帶檔案名,偏移過去頭就是資料部分啦~~希望可以對后面遇到相同問題的同學有幫助~uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
PPT、Word、Excel的內嵌檔案我已經全部取出來了,Word內嵌圖片搞不出來了,樓主弄出來了嗎?uj5u.com熱心網友回復:
Word內嵌圖片始終沒搞懂StyleSheet有什么用處,找不到圖片在Data Stream中的偏移位置uj5u.com熱心網友回復:
錄宏看看。.轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65474.html
標籤:基礎類
