2011-11-28 13 views
6

को MVC ActionResult भेजें मैं एक कार्रवाई के साथ एक नियंत्रक है:प्रिंटर

SomeController/ActionToBePrinted 

ActionToBePrinted() एक HTML दृश्य देता है।

बटन दबाते समय यह क्रिया सामान्य एमवीसी रेजर व्यू से कॉल की जाती है - बटन दबाए जाने पर मैं प्रिंटर को दृश्य की सामग्री भेजने के बारे में कैसे जाउंगा?

अलोहा, ह्यूगो

+0

अपने टेम्पलेट को संशोधित करें ताकि 'window.print()' शरीर में आग लग जाए। फिर, लोड पर, यह ब्राउज़र को बताएगा कि पृष्ठ मुद्रित होना चाहिए। –

+0

मैं आपकी युक्तियों के बाद खुलने लगा। एक नई विंडो में दृश्य खोलना और पेज में window.print() जोड़ना - त्वरित उत्तरों के लिए बहुत बहुत धन्यवाद! –

उत्तर

3

आप प्रिंटर को सीधे भेज नहीं सकते हैं।

  1. मैं आपको एक कस्टम एक्शन रिसेट बनाने का सुझाव देता हूं, जो पीडीएफ फ़ाइल या ऐसा कुछ देता है। ASP.NET MVC Action Results and PDF Content

  2. साथ ही आप एक html पृष्ठ दिखाने के लिए और इस

<a href="javascript:window.print()">Click to Print This Page</A>

लेकिन हमेशा उपयोगकर्ता है की तरह जावास्क्रिप्ट का उपयोग करते हुए प्रिंट प्रक्रिया शुरू करने के लिए प्रिंट संवाद खोल सकते हैं, आप यह कर सकते प्रोग्राम के रूप में।

+0

त्वरित उत्तर के लिए बहुत बहुत धन्यवाद! –

1

आप GET अनुरोध प्रदर्शन (जैसे उपयोग window.open() और URL में पास या AJAX का उपयोग करें) और एक नई विंडो में लौटे एचटीएमएल सामग्री डाल सकती है। फिर

Window.print() का उपयोग करें। फिर जब आप पूरा कर लें तो खिड़की को बंद करें।

आप शरीर में कुछ जोड़कर इसे सीधे एक ही दृश्य में जोड़ सकते हैं, लेकिन मैं इन मामलों में जावास्क्रिप्ट का उपयोग करना पसंद करता हूं। यह डिज़ाइन को फिर से उपयोग करने योग्य ऑब्जेक्ट या सेवा के रूप में कार्य करता है जिसे कई दृश्यों में उपयोग किया जा सकता है। दूसरे शब्दों में, आप नियंत्रक-मॉडल सेट अप करते हैं, लेकिन कोई दृश्य नहीं। इसके बजाय, जावास्क्रिप्ट दृश्य के रूप में कदम उठाता है।

ध्यान रखें कि HTML एक प्रिंट प्रारूप नहीं है। इसलिए यदि आपको लेआउट को नियंत्रित करने की आवश्यकता है, तो आपको पीडीएफ जैसी प्रिंट तकनीक का उपयोग करना चाहिए। एक्सएसएलटी एक ही डेटा का उपयोग करके एचटीएमएल और पीडीएफ आउटपुट दोनों बनाने के लिए एक उत्कृष्ट माध्यम प्रदान करता है, यद्यपि यह window.print

व्यक्तिगत रूप से, मेरे पास एक एमवीसी पृष्ठ है जो एक सेवा के रूप में कार्य करता है जो एक्सएसएलटी टेम्पलेट्स बनाने के लिए बहुत अधिक काम करता है। यूआरएल पैरामीटर लेता है। पृष्ठ एडोब एक्सएसएल-एफओ में हुक करता है और आउटपुट ड्राइव करने के लिए पैरा का उपयोग करता है।

+0

त्वरित उत्तर के लिए बहुत बहुत धन्यवाद! –

संबंधित मुद्दे