首先樓主遇到的問題是這樣的: http://www.iteye.com/problems/95607
這種方式的問題就是 你的項目如果打包部署到雲服務上面 那就直接gg了
樓主的問題環境是:pdf內容已經在後臺用itextpdf已經畫好了,所以我想要達到的目的僅僅就是在瀏覽器端調用打印機直接打印就好了
在這中間嘗試了一些js插件 但是都需要在頁面重新畫,但是我已經在後臺畫了一遍的好嗎,再讓我在頁面重新畫一遍,心裏是拒絕的,當然,最簡單的辦法就是,修改後臺,在後臺查詢數據返回到頁面,然後在頁面畫出來在打印,這是一種思路。
我的解決思路是:
後臺畫好的pdf,先把它在到服務器指定目錄,然後頁面通過iiframe訪問存在服務器剛剛保存的這個文件,然後js調用打印機打印;
這裏會用兩個問題:
1.文件存到服務器指定目錄後 怎麼訪問:可以在配置文件裏面設置spring.resources.static-locations=file:/home
file後面是你係統指定的目錄,這樣就相當於將該目錄設置爲項目的根目錄了,然後後臺直接將文件存到這個目錄,然後iframe直接訪問系統根目錄就可以了找到這個文件(因爲項目打包jar後,沒法吧項目存到項目根目錄下面)
2.頁面直接調用打印機,不顯示打印預覽:
頁面寫入 <iframe style="display:none" id="printIframe"></iframe>
js: $("#printIframe").attr("src",src);(src是項目訪問文件的路徑比如 localhost:8080/temp.pdf)
$("#printIframe")[0].contentWindow.print();
這樣要打印的內容不用顯示出來就可以打印,
描述不是很到位,有問題可以加羣交流:790537003