項目中要用到在線預覽word文檔,剛開始考慮是要將word轉成pdf文件,然后再直接在瀏覽器打開pdf文檔即可,
但是項目部署在Linux下,在網上搜了一下沒有找到合適的方法,
后來項目組討論用POI生成HTML文件,但是生成的HTML文檔是額外生成的,瀏覽器是無法直接訪問POI生成的html文件的,
Not allowed to load local resource: file:///D:/images/word/media/image1.png
這個錯誤給整的明明白白的。
后來嘗試
out=response.getOutputStream();
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("text/html;charset=UTF-8");
XHTMLConverter.getInstance().convert(document, out, options);
out.flush();
out.close();
HTML文件倒是能在頁面上顯示,但是里面的圖片還是顯示不出來。404又給我整明白了,因為部署的項目里是沒有這些圖片的,完全一廂情愿。
沒辦法了,咨詢項目大神,大神就是大神,腦袋都沒拍就想到一個方法。
————————————————————
在springmvc-servlet.xml配置文件中
mvc:resources 是加載靜態文件的
詳見
https://www.cnblogs.com/linnuo/p/7699401.html
在項目中pringmvc-servlet.xml文件里加入
將html文件放在固定的D:/POITransforms/里,文件夾可以有子集文件夾,子文件夾名可以是自定義的UUID,
我這邊點擊預覽按鈕是彈窗里面嵌入了一個iframe , iframe src路徑為:
Util.getPath()+\'/wordview/temp/5570c3fba83f464fa383e58cd394f860/transforms.html\'
另:_________________________________________________________________
//獲取項目名稱
getPath:function(){
return location.pathname.match(/\\/(.+?)(?=\\/)/g)[0];
}
temp/5570c3fba83f464fa383e58cd394f860/transforms.html 這一串是返回給前臺的生成的HTML文件路徑,是固定在D:/POITransforms/
這樣一寫齊活了,然后再刪除D:/POITransforms/? ?就可以了