我想用extjs打印PDF文件,任何幫助將不勝感激。我的想法是通過http://xmlgraphics.apache.org/fop/0.95/servlets.html#minimal-servlet的建議從服務器傳遞PDF文件。但問題是,我通過ajax提交表單數據,將它們保存到數據庫,使用FOP創建PDF以及...想將結果PDF傳回給客戶端。 我最後的想法是將PDF保存到服務器上的臨時文件,返回成功:'true'到extjs,然後使用iframe再次獲取臨時文件以進行打印:) 是否還有更正確的解決方案?或者可能有人已經準備好了這些東西的工作代碼?從extjs打印PDF - 最佳解決方案
3
A
回答
0
我不認爲這與Ext JS有什麼關係。您可能需要生成/存儲PDF並按照您提及的方式返回URL,或者您可以使用內容類型「application/pdf」直接將回復發送回瀏覽器,並且默認的瀏覽器行爲將處理它。任何一種方法都適用於任何前端代碼。
我已經成功完成了第二種方法,但在.NET環境中。原則應該是一樣的。
2
那麼,最後我來到了下一個解決方案:首先我們使用AJAX請求保存表單細節,並在服務器端生成PDF。
success : function(form, action) {
var result = Ext.decode(action.response.responseText)
if (result.success) {
this.openForPrint(result.tmpFileName);
}
},
比我們使用iframe來下載和打開文件
openForPrint : function(fileSrc) {
Ext.DomHelper.append(document.body, {
tag : 'iframe',
name : 'printIframe',
src : this.getPrintPalletTagUrl()+'?userAction=actionPrint&tmpFileName='+fileSrc
});
}
這種方法可以讓我們檢查保存操作響應並顯示有意義的對話,以用戶如果保存失敗。
+0
是的,我就是這麼做的。但請注意,在服務器端,確保您設置響應頭來強制下載(我認爲Content-Type和Content-Disposition),否則在某些設置(帶有PDF瀏覽器插件的Windows)中,最終會打開一個pdf一個隱形的iframe,而不是要求下載 – Ben 2010-03-12 00:23:41
相關問題
- 1. 最佳解決方案
- 2. 打印解決方案
- 3. 最佳解決方案
- 4. 最佳的解決方案
- 5. 最佳SQL解決方案?
- 6. WebSocket:後端最佳解決方案
- 7. 最佳體系結構解決方案
- 8. 網頁上的PDF:最佳解決方案
- 9. XML和MQ最佳解決方案
- 10. 解決方案結構/最佳實踐
- 11. 「Array chaining」的最佳解決方案
- 12. 網頁打印媒體 - 解決方案?
- 13. 打印解決方案(新的C)
- 14. 打印揹包解決方案的值
- 15. 基於Web的打印解決方案
- 16. 打印Visual Studio解決方案結構
- 17. SplitViewController presentedWithGesture解決方法 - 最佳解決方案?
- 18. 最佳解決方案架構
- 19. 最佳數據庫/解決方案
- 20. 最佳的NoSQL緩存解決方案
- 21. 解決方案的SharePoint最佳實踐
- 22. 最佳解決方案後Gurobi回調
- 23. 最佳實踐:解決方案參考
- 24. 最佳的asp.net crud解決方案?
- 25. 最佳解決方案:add或addu
- 26. 尋找最佳的解決方案
- 27. Null DateTime值的最佳解決方案
- 28. 最佳解決方案 - 規劃理論
- 29. 最佳ASP.NET MVC搜索解決方案
- 30. 以編程方式將Word文檔導出爲PDF的最佳解決方案(不使用「軟件打印機」)?
感謝您的回覆。當然原則是一樣的,但惡魔是在細節:)隨着extjs你可以發送一個Ajax請求來保存表單,但無法得到響應像我得到的流式PDF。所以在這種情況下,我們必須發送第二個請求到流文件。 – maxx 2010-03-11 23:55:44