2010-05-25 14 views
12

मैं जानना चाहता हूं कि एक छवि युक्त पॉपअप विंडो खोलने के लिए जावास्क्रिप्ट का उपयोग करना संभव है, और साथ ही प्रिंट संवाद शो भी है। एक बार जब कोई प्रिंट पर क्लिक करता है, तो पॉपअप बंद हो जाता है।छवियों को मुद्रित करने के लिए जावास्क्रिप्ट का उपयोग

क्या यह आसानी से प्राप्त हो सकता है?

उत्तर

1

हाँ, बस स्क्रीन पर छवि डालें, और फिर जावास्क्रिप्ट में window.print(); पर कॉल करें और इसे पॉपअप करना चाहिए।

(इस तरह गूगल मैप्स/गूगल कैलेंडर मुद्रण करना)

+1

कूल। लेकिन क्या होगा यदि मैं एक अलग छवि दिखाना चाहता हूं जो पॉपअप विंडो शुरू करता है? – andrew

+0

मुद्रण के लिए सीएसएस शैलियों की जांच करें। आप मूल रूप से स्क्रीन दृश्य पर छिपी हुई एक छवि कर सकते हैं, और उसके बाद प्रिंट दृश्य के लिए दृश्यमान हो सकते हैं। –

21
popup = window.open(); 
popup.document.write("imagehtml"); 
popup.focus(); //required for IE 
popup.print(); 
+0

यह बटन का उपयोग कैसे करेगा? बटन इस क्रिया को शुरू करेगा, लेकिन वास्तव में एक अलग छवि प्रिंट करता है। – andrew

+2

मैं आपके लिए सभी कोड लिखने वाला नहीं हूं, इस जगह का बिंदु सीखना है। ;) आप इसे बटन पर ऑन-हाउसअप ईवेंट का उपयोग करके करेंगे: http://www.w3schools.com/jsref/event_onmouseup.asp –

+2

मैं नहीं चाहता कि आप इसे मेरे लिए लिखें ... बस चाहते हैं सही संसाधनों की ओर इशारा किया जाना चाहिए। मुझे शुरू करने के लिए एक जगह चाहिए। धन्यवाद। – andrew

8

उपयोग इस सिर ब्लॉक में

<script type="text/javascript"> 
function printImg() { 
    pwin = window.open(document.getElementById("mainImg").src,"_blank"); 
    pwin.onload = function() {window.print();} 
} 
</script> 

शरीर ब्लॉक

<img src="images.jpg" id="mainImg" /> 
<input type="button" value="Print Image" onclick="printImg()" /> 
+0

कॉल करने की आवश्यकता है यह क्रोम कंसोल में काम नहीं करता है। – Flea777

0

इस में इस प्रयोग क्रोम में काम करता है:

<body ><img src="image.jpg" alt="" style="display: block; width: 100%; height: 100%;"> 

      <script type="text/javascript"> 
       window.onload = function() { 
        window.print(); 
        setTimeout(function() { 
         window.close(); 
        }, 1); 
       }; 
      </script> 
    </body> 
4

यह कोड पॉपअप विंडो में YOUR_IMAGE_URL खोल देगा, प्रिंट संवाद दिखाएं और प्रिंट के बाद बंद पॉपअप विंडो दिखाएगा।

var popup; 

function closePrint() { 
    if (popup) { 
     popup.close(); 
    } 
} 

popup = window.open(YOUR_IMAGE_URL); 
popup.onbeforeunload = closePrint; 
popup.onafterprint = closePrint; 
popup.focus(); // Required for IE 
popup.print(); 

MDN Reference code

12

एक और महान समाधान !! सभी क्रेडिट Codescratcher

को
<script type="text/javascript"> 
function ImagetoPrint(source) { 
    return "<html><head><script>function step1(){\n" + 
      "setTimeout('step2()', 10);}\n" + 
      "function step2(){window.print();window.close()}\n" + 
      "</scri" + "pt></head><body onload='step1()'>\n" + 
      "<img src='" + source + "' /></body></html>"; 
} 
function PrintImage(source) { 
    Pagelink = "about:blank"; 
    var pwa = window.open(Pagelink, "_new"); 
    pwa.document.open(); 
    pwa.document.write(ImagetoPrint(source)); 
    pwa.document.close(); 
} 

<a href="#" onclick="PrintImage('YOUR_IMAGE_PATH_HERE.JPG'); return false;">PRINT</a> 

पूर्ण उदाहरण यहाँ देखें जाता है: http://www.codescratcher.com/javascript/print-image-using-javascript/#comment-762

+0

10 एमएस टाइमआउट क्यों है? क्यों नहीं ' ' – Shasak

+0

वह कोडक्रैचर साइट थोड़ा उलझन में है, मैंने इस कोड को अपने github खाते में अपलोड किया है: यहां काम करने वाले डेमो देखें https://rawgit.com/orellabac/printFromJavascript/master/Print_Image.htm कोड यहां है: https: //github.com/orellabac/printFromJavascript/ – orellabac

0

मैं सिर्फ यह "सरल" समस्या पर 45 मिनट खर्च, यह जिस तरह से मैं प्राप्त करने की कोशिश इसे संचालित करना चाहता था।

मेरे पास एक आईएमजी टैग के अंदर एक छवि थी, जो jQuery Barcode प्लगइन द्वारा गतिशील रूप से जेनरेट की गई थी जिसे मुझे प्रिंट करना था। मैं चाहता था कि यह दूसरी विंडो में प्रिंट करे और बाद में विंडो बंद करें। यह jQuery-UI डायलॉग के अंदर jQuery-UI डायलॉग विस्तारक के साथ jQuery Grid प्लगइन के अंदर एक बटन पर क्लिक करने के बाद हुआ था।

मैंने अंततः सभी उत्तरों को समायोजित किया जब तक कि मैं अंततः इसके साथ नहीं आया, शायद यह किसी की मदद कर सकता है।

w = window.open(document.getElementById("UB-canvas").src); 
w.onload = function() { w.print(); } 
w.onbeforeunload = setTimeout(function() { w.close(); },500); 
w.onafterprint = setTimeout(function() { w.close(); },500); 

setTimeout यह एक ही रास्ता मैं Firefox 42 पाए जाने वाले कार्यों पर मारते थे है, न सिर्फ shits और गिगल्स के लिए है। यह केवल .close() फ़ंक्शंस को तब तक छोड़ देगा जब तक कि मैंने इसे ब्रेकपॉइंट नहीं जोड़ा, फिर यह पूरी तरह से काम करता था। तो मुझे लगता है कि यह उन विंडो उदाहरणों को बनाया गया है इससे पहले कि यह ऑनबॉर्लोड लोड फ़ंक्शन और उसके बाद के ईवेंट फ़ंक्शंस या कुछ लागू कर सके।

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

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