2011-03-07 8 views
6

क्या ब्राउज़र में जावास्क्रिप्ट के साथ प्रिंटर के साथ कुछ प्रिंट करना संभव है?फ्रंटेंड जावास्क्रिप्ट से प्रिंट करें?

मैं एक रसीद संख्या प्रिंट करना चाहते हैं, इसलिए यदि यह संभव है, क्या इसलिए जब उपयोगकर्ता एक बटन यह जैसे बाहर प्रिंट होगा पर क्लिक करता है सबसे तेजी से प्रिंटर है। एक छोटे पेपर पर "1234"।

धन्यवाद

उत्तर

11

आपको Javascript से सीधे प्रिंटर उपयोग नहीं कर सकते, लेकिन आप window.print() जो मानक ब्राउज़र प्रिंट व्यवहार आरंभ हो जाएगा कह सकते हैं। इसका उपयोग करके, आप जो हासिल कर रहे हैं उसे प्राप्त करने के लिए आप दो तकनीकों का प्रयास कर सकते हैं:

window.print() पर कॉल करने से पहले एक गतिशील प्रिंट स्टाइलशीट इंजेक्ट करें जो केवल उस पाठ के साथ तत्व दिखाता है जिसे आप प्रिंट करना चाहते हैं। आपको किसी भी पिछले प्रिंट स्टाइलशीट को साफ़ करने के लिए सावधान रहना होगा। या वास्तव में आप केवल एक तत्व <div id="printable"> का उपयोग कर सकते हैं जो आपके प्रिंट स्टाइलशीट में एकमात्र दृश्य तत्व है और उसमें मुद्रित करने के लिए कोई भी टेक्स्ट डालें। (केवल यह ध्यान रखें कि यह एक वेबसाइट है जो उपयोगकर्ता वास्तव में प्रिंट करना चाहते हैं)

print() पर सीधे एक आईफ्रेम विंडो पर कॉल करना भी संभव है, जिसे आप अपने वांछित पाठ के साथ पॉप्युलेट कर सकते हैं। उदाहरण के लिए:

var iframe = document.createElement('iframe'); 

iframe.onload = function() { 
    var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; 
    doc.getElementsByTagName('body')[0].innerHTML = "<p>1234</p>"; 

    iframe.contentWindow.focus(); // This is key, the iframe must have focus first 
    iframe.contentWindow.print(); 
} 

document.getElementsByTagName('body')[0].appendChild(iframe); 
4

आप ब्राउज़र के भीतर से प्रिंट सेटिंग्स तक नहीं पहुंच सकते हैं।

यह सुरक्षा विचारों के कारण है, अन्यथा दुनिया भर में प्रिंटर गैर-स्टॉप प्रिंटिंग करेंगे।

केवल एक चीज आप कॉल window.print(); में जावास्क्रिप्ट में मुद्रण के बारे में क्या कर सकते हैं।