freemarker生成word 用FreeMarker方法java生成word文檔出現(xiàn)異常?
用FreeMarker方法java生成word文檔出現(xiàn)異常?應(yīng)該是沒有成功生成,內(nèi)部代碼里還包含了word無法識別的代碼塊,所以無法打開,你可以用記事本查看源代碼,freenarker轉(zhuǎn)換的word源
用FreeMarker方法java生成word文檔出現(xiàn)異常?
應(yīng)該是沒有成功生成,內(nèi)部代碼里還包含了word無法識別的代碼塊,所以無法打開,你可以用記事本查看源代碼,freenarker轉(zhuǎn)換的word源代碼都是xml格式
word怎么生成freemarker?
首先,通過xml模板可以將基本上所有的格式都事先鎖定,包括頁碼和分頁,只要你事先預(yù)設(shè)好就能夠通過freemarker實現(xiàn)生成,接下來就是我這個問題了,目錄怎么解決,下面是解決思路:1:目錄的內(nèi)容可以根據(jù)之前其他的內(nèi)容一樣解決,通過XML模板預(yù)先設(shè)置好,2:目錄的頁碼已經(jīng)研究過是不能直接通過xml模板實現(xiàn)動態(tài)對應(yīng)了(至少我沒搞定0.0)3:由于不能夠一步到位,我采取了在模板中預(yù)留了一頁空白頁,只留了抬頭的目錄兩個字,然后通過查詢目錄二字進行目錄的生成,這個功能也是我剛剛折騰出來的0.0目前還沒測試能不能用模板生成目錄后再更新目錄0.0,不過想想可以直接生成目錄應(yīng)該就不用這么麻煩了,至于word生成后的修改0.0我覺得還是以后再說吧..整體來說應(yīng)該還算完美解決了,代碼我就不在這貼出來了~雖然中間折騰了半天走了半天彎路~講道理還是用的jacob來實現(xiàn)的。。
誰知道,用freemarker導(dǎo)出word時,如何使導(dǎo)出word的格式,默認為doc格式?
先說結(jié)論:沒有什么合適的方案。
附兩個替代方案供參考。
方案一:
放棄 Freemarker 方案,使用 POI 項目進行代碼寫 Word,這樣生成的docx文件是支持查看的。不過國產(chǎn)的 WPS 依然有兼容性問題。
Apache POI - the Java API for Microsoft Documents方案二:
加入 WPS 或者 微軟,讓他們移動端的App 也兼容OOXML 格式的文檔
Freemarker 生成的 Word 文件的主要原理是:
通過手動創(chuàng)建的 flt 模板 生成 OOXML(Open Office XML) 格式的文件,命名為 doc 或 docx ,即可使用 Word 打開。
這類文件在PC 上 MS-Word 和 WPS 以及 Open Office 和Liber Office 都是兼容的,是一種開源的 Office 文件格式。
而目前的主流的 App :Google文檔、WPS、Word 均不支持打開這個格式的 Word 文件。