我發送一個另存爲對話框時,我發送由iText生成的PDF文件在servlet中。我怎樣才能做到這一點?如何爲iText生成的PDF顯示另存爲對話框?
回答
好的,我解決了我的問題!我在本頁發現: http://www.geek-tutorials.com/java/itext/servlet_jsp_output_pdf.php
該方法直接使用getOutputStream()(不在文件路徑中)編寫併發送內容類型頭文件!
response.setContentType("application/pdf");
Document document = new Document();
try{
PdfWriter.getInstance(document,
response.getOutputStream());
//pdf generate code
它是如此簡單......
所以你根本沒有這樣做?!請注意,這不一定會顯示*另存爲*對話框。瀏覽器可以默認顯示它內聯,而不會詢問保存的位置。我明白這發生在你身上,而你想彈出一個*另存爲*。 – BalusC 2011-05-12 13:35:05
您需要讓servlet將Content-Disposition
標頭設置爲attachment
。
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
這將迫使另存爲對話,其中終端用戶可以選擇的位置。
請記住,最終用戶可能已經改變了其瀏覽器設置採取PDF文件的默認動作,例如總是顯示它在閱讀器或總是將它保存在某個固定位置。例如在Firefox中,您可以通過控制此工具>選項>應用程序。不,你不能從服務器端改變這個瀏覽器特定的行爲。
謝謝,但是當我必須發送標題,我怎麼能得到一個java var中選定的路徑? – FAjir 2011-05-12 13:03:51
在將任何位寫入響應主體之前,您必須發送它。所以在你調用'getOutputStream()'之前。由於安全限制,您無法將所選路徑返回到服務器端。無論如何,這些信息是毫無用處的。如果你真的需要得到它,唯一可以做到的是一個由你的網頁提供的簽名(!)Java applet。在那裏你可以自由地按你想要的方式編寫Swing代碼。 – BalusC 2011-05-12 13:07:32
oulala沒有時間去開發一個GUI,我無法想象有沒有簡單的方法讓用戶選擇PDF下載的地方。最初,我在我的用戶主目錄上創建pdf(因爲它在當前的localhost上工作),我只是想以用導航器試圖打開文件或要求保存的方式將用戶重定向到文件!肯定有一種方法。 – FAjir 2011-05-12 13:15:45
- 1. 加速顯示iText /飛碟生成的PDF打印對話框
- 2. 如何爲通過C#生成的Excel文件顯示「另存爲」對話框
- 3. 通過顯示另存爲對話框
- 4. 如何在Electron App中顯示另存爲對話框?
- 5. 如何在WPF中顯示另存爲對話框?
- 6. 如何解決重複對話框另存爲pdf?
- 7. 提示文件另存爲對話框
- 8. ASP.NET顯示PDF文件的用戶,而不是「另存爲」對話框
- 9. 使用Watin顯示IE「另存爲」對話框
- 10. 在Firefox中顯示另存爲對話框
- 11. 下載另存爲對話框的PDF文檔
- 12. 如何在文件下載時提示「另存爲」對話框
- 13. 使用itext打開pdf生成的對話問題
- 14. 另存爲JSP中的對話框
- 15. 的Javascript另存爲對話框
- 16. 如何使用PHP顯示「另存爲」對話框文本文件
- 17. 如何通過jQuery或Javascript在IE9和11中顯示「另存爲」對話框
- 18. iText生成的PDF在Chrome中未正確顯示
- 19. iText PDF動態生成
- 20. 從Itext生成inputStream pdf源
- 21. 另存爲對話框不彈出
- 22. ExtJS AJAX另存爲對話框
- 23. Excel API另存爲對話框問題
- 24. 打開另存爲對話框
- 25. Php圖像另存爲對話框
- 26. JSF 1.1另存爲對話框問題
- 27. 關閉主對話框並顯示另一個爲主對話框,MFC
- 28. 另存爲對話框IEXPLORER如何保存htm文件
- 29. 如何顯示對話框
- 30. Itext pageNumber在PDF中顯示
請編輯您的標題,它不是一個EE話題 – kostja 2011-05-12 12:47:33
的'JFileChooser'是一個Swing類,因此它完全誤導。我已經清除了這個問題。 – BalusC 2011-05-12 12:55:20