में दिखाई देने के लिए पीडीएफ सामग्री (स्प्रिंग एमवीसी नियंत्रक विधि से परोसा गया) कैसे प्राप्त करें मैं स्प्रिंग एमवीसी के साथ एक नौसिखिया हूं लेकिन क्षमताओं से काफी प्रभावित हूं।एक नई विंडो
मैं 3.1.0-रिलीज का उपयोग कर रहा हूं और मुझे फॉर्म के जवाब में पीडीएफ दिखाने की ज़रूरत है: फॉर्म सबमिशन।
@RequestMapping(value = "new_product", method = RequestMethod.POST, params = "print")
@ResponseBody
public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException {
saveProductChanges(map, requestInfo, request, httpServletResponse);
httpServletResponse.setContentType("application/pdf");
byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId());
httpServletResponse.getOutputStream().write(pdfImage);
}
इस कोड को पीडीएफ बाइट [] वापस मूल विंडो के भेजता है:
यहाँ (छोटे) कोड मैं नियंत्रक में लिखा है।
मैं एक अलग विंडो में दिखाया जाने वाला पीडीएफ कैसे प्राप्त करूं ताकि मेरे पास अभी भी मूल ब्राउज़र विंडो कुछ अन्य सामग्री दिखा सके? क्लाइंट पीडीएफ व्यू प्रोग्राम (एडोब रीडर, फॉक्सआईट इत्यादि ...) का उपयोग करके दिखाए गए पीडीएफ को सर्वश्रेष्ठ होगा, लेकिन मैं एक अलग ब्राउज़र विंडो में दिखाए गए पीडीएफ के साथ ठीक होगा।
संपादित मैं सामग्री-विन्यास सेट करने के लिए ऐसी है कि ब्राउज़र एक को बचाने/खुला जहां उपयोगकर्ता (मुख्य ब्राउज़र पेज खोने के साथ) एडोब खोल सकते हैं बॉक्स
httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
सभी को धन्यवाद लाता है का फैसला किया !
लक्ष्य = "_ खाली" (उम्मीद है) पीडीएफ को एक अलग विंडो में दिखाएगा। अगर मैं नियंत्रक विधि को एक स्ट्रिंग लौटाता हूं तो क्या मेरे पास मूल विंडो एक नया पृष्ठ प्रस्तुत कर सकती है (पीडीएफ के साथ एक नई विंडो में)? –
डर्न ... मैं लक्ष्य = "__ खाली" का उपयोग नहीं कर सकता क्योंकि फ़ॉर्म में एकाधिक प्रकार = "सबमिट" बटन हैं और मुझे केवल इस बटन को एक अलग विंडो में इसकी प्रतिक्रिया (पीडीएफ) की आवश्यकता है। मैंने एक सेव/ओपन बॉक्स लाने के लिए सामग्री-डिस्पोजिशन सेट करने का निर्णय लिया जहां उपयोगकर्ता एडोब खोल सकता है (मुख्य ब्राउजर पेज खोने के साथ) httpServletResponse.setHeader ("सामग्री-डिस्पोजिशन", "अटैचमेंट; filename = product.pdf "); –