我開發了一個JSF應用程序,該應用程序使用JasperReports在客戶端計算機的每個事務之後給出PDF文件作爲下載。我跟着這個tutorial.有沒有什麼辦法可以直接打印它,而不是下載它,因爲最終用戶必須打開它並給出打印命令。 (客戶說有很多交易,他們希望在獨立應用程序中以相同的方式打印收據,而不需要任何干預,如打開對話框。)直接打印PDF報告而不是下載,打開和打印它
1
A
回答
1
您不能強制瀏覽器在沒有打印對話框的情況下打印出現。
但是,您可以設置Content-Disposition,以便瀏覽器在可打印的瀏覽器中打開PDF。例如:
/**
* Sets the regular HTTP headers, regardless of whether this report is
* embedded in the browser window, or causes a "Save As" dialog prompt to
* download.
*/
protected void setHeaders() {
getServletResponse().setHeader("Cache-Control", getCacheControl());
}
/**
* Sets the HTTP headers required to indicate to the browser that the
* report is to be downloaded (rather than displayed in the current
* window).
*/
protected void setDownloadHeaders() {
HttpServletResponse response = getServletResponse();
response.setHeader("Content-Description", getContentDescription());
response.setHeader("Content-Disposition", "attachment, filename="
+ getFilename());
response.setHeader("Content-Type", getContentType());
response.setHeader("Content-Transfer-Encoding",
getContentTransferEncoding());
}
這會提示用戶保存PDF。如果更改Content-Disposition,瀏覽器將在不提示保存的情況下內聯顯示PDF。這將跳過必須打開PDF的步驟。
-1
您可以使用以下方法:
JasperPrintManager.printPage(jasperPrint, 0, true);//for Direct print
* True : It Shows "Printrer Dialog also"
JasperPrintManager.printPage(jasperPrint, 0, false);//for Direct print
* fasle : It can't Show "Printrer Dialog", it will print the report directly
+1
嗨,問題是關於一個Web應用程序,而不是桌面應用程序。這個答案假設一個桌面應用程序,因此是錯誤的。 – BalusC
相關問題
- 1. 直接向打印機打印報告
- 2. VBA代碼打印報告而不是打開它
- 3. PDF打印到客戶端打印機而不打開它們
- 4. 打印使用打印機中的PDF報告的情況下直接在Odoo
- 5. 直接打印水晶報表到打印機,而不是要求打印對話框(報告查看器)
- 6. 打印報告
- 7. 爲什麼報告收縮當RDLC報告直接打印到POS打印機
- 8. POS打印機的Flex報告打印
- 9. 如何使用jasper報告和grails直接打印到打印機?
- 10. ssrs打印報告
- 11. C#:打印報告
- 12. 如何使Crystal Report直接打印到打印機而不導出爲PDF?
- 13. Add2Any打印預覽而不是打印
- 14. 如何直接打印Fastreport而不顯示打印對話框
- 15. 打印PDF雙面打印
- 16. 如何打印而不是垂直打印?
- 17. 訪問報告,每組打印pdf
- 18. 在客戶端瀏覽器打印PDF而不打開PDF
- 19. 如何添加用於直接打印報告的打印按鈕,而不是在odoo中按ctrl + shift + p?
- 20. AirPrint:直接將PDF文件打印到打印機
- 21. 直接打印PDF到打印機窗口
- 22. Apex Office打印插件:下載PDF報告時出錯
- 23. 同步pdf打印和標準打印
- 24. 動態pdf需要直接打開打印盒
- 25. 在沒有打印預覽或打開報告的情況下從Access中的表單打印報告?
- 26. 如何將水晶報告直接打印到客戶的打印機上?
- 27. Elfinder打開PDF下載而
- 28. 在asp.net中打印水晶報告而不轉換爲pdf
- 29. 直接打印FastReport
- 30. PDFCreator將打印TIFF而不是PDF
由於鯪魚賈維斯已經說過了,你不能強制瀏覽器直接打印您的PDF,但你可以做的是你的PDF加載到一些隱藏的iframe。在此iFrame上加載調用.contentWindow.print()後,您將直接進入打印對話框。看看這裏:http://stackoverflow.com/questions/7430351/jsf-seam-how-to-download-and-print-a-dynmically-generated-pdf-file-without-user – stg