資源id沖突處理
word07之后為xml,對于公式和圖片word存儲的是external資源:
公式為bin文件帜平,同時存儲一份圖片梅鹦,如果公式損壞裆甩,或者word無法解析bin文件齐唆,則word展示的就只是一個圖片
圖片存儲的是wmf,或者png
每個圖片茉帅、公式都有一個唯一的編碼叨叙,xml中引用這些資源的編碼
Docx其實就是一個壓縮包堪澎,將這些圖片、bin马昙、xml打包。
所以多個文件合并行楞,會出現(xiàn)不同word中的資源id如果有一樣的土匀,則生成的壓縮包docx,打開之后會報錯就轧,因為同一個資源id對應(yīng)兩個資源,需要對資源重新編號妒御,包括資源id和圖片名稱。
通過解析xml文件送讲,對要合并的word文件涉及的資源id和資源名稱惋啃,統(tǒng)一進行重新編碼哼鬓,解決沖突問題边灭。
Docx4j本身是半開源的,word的拆分合并是收費服務(wù)称簿,通過我們自己去解析惰帽,重新編碼也能夠做到拆分合并憨降。