2010-11-27 25 views
14

बिना जावास्क्रिप्ट प्रिंट नीचे ठीक काम कर रहा स्निपेट, लेकिन यह संवाद बॉक्स खिड़की खोलने,प्रिंट करें संवाद बॉक्स

लेकिन मुझे नहीं प्रिंट संवाद बॉक्स खोलने के लिए चाहते हैं,

सिर्फ प्रिंट करें संवाद बॉक्स के बिना किया जाना चाहिए,

क्या टुकड़ा मैं नीचे स्निपेट में जोड़ना चाहिए,

और यह भी एक संदेह, मैं डॉट मैट्रिक्स प्रिंटर में प्रिंट आउट लेना चाहते हैं, नीचे दिए गए स्निपेट पता काम करेगा?

var prtContent = document.getElementById(strid); 
var WinPrint = 
window.open('','','left=0,top=0'); 
WinPrint.document.write(prtContent.innerHTML); 
WinPrint.document.close(); 
WinPrint.focus(); 
WinPrint.print(); 
WinPrint.close(); 
prtContent.innerHTML=strOldOne; 

मैं बिलिंग आवेदन विकसित की है,

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

+2

आप उपयोगकर्ता को किस प्रिंटर को प्रिंट करने के लिए चुनने की उम्मीद करते हैं? –

+1

@Ignacio Vazquez-Abrams: अधिकांश प्रणालियों में "डिफ़ॉल्ट प्रिंटर" की धारणा होती है। हालांकि, ब्राउजर w/o उपयोगकर्ता पुष्टिकरण से प्रिंटिंग एक बहुत ही अच्छा विचार नहीं है ("लेकिन हमारी वेबसाइट के सभी आगंतुक हमारे नए विज्ञापन का प्रिंटआउट चाहते हैं!" - स्क्रीन पर पॉप-अप थे खराब खराब) – Piskvor

+0

फ़ायरफ़ॉक्स को संवाद दिखाए बिना सीधे प्रिंट करने के लिए कॉन्फ़िगर किया जा सकता है, किसी कंपनी इंट्रानेट पर होस्ट किए गए किसी वेब एप्लिकेशन के मामले में http://forums.mozillazine.org/viewtopic.php?t=48336 – Nelson

उत्तर

9

यह पूरी तरह से संभव है। मैं बैंकिंग में काम करता हूं और एक वेबपेज था जो एक लेनदेन पोस्ट किए जाने पर टेलर को ऑटो प्रिंट करने की आवश्यकता होती थी। चूंकि वे पूरे दिन लेन-देन करते हैं, इसलिए यदि उन्हें संवाद बॉक्स प्रदर्शित होता है तो यह उन्हें धीमा कर देगा। यह कोड आपके डिफ़ॉल्ट प्रिंटर का चयन करेगा और बिना किसी संवाद बॉक्स के सीधे प्रिंट करेगा।

<form> 
<input type="button" value="Print Page" onClick="window.print()"> 
</form> 


<script language="VBScript"> 
// THIS VB SCRIP REMOVES THE PRINT DIALOG BOX AND PRINTS TO YOUR DEFAULT PRINTER 
Sub window_onunload() 
On Error Resume Next 
Set WB = nothing 
On Error Goto 0 
End Sub 

Sub Print() 
OLECMDID_PRINT = 6 
OLECMDEXECOPT_DONTPROMPTUSER = 2 
OLECMDEXECOPT_PROMPTUSER = 1 


On Error Resume Next 

If DA Then 
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 

Else 
call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","") 

End If 

If Err.Number <> 0 Then 
If DA Then 
Alert("Nothing Printed :" & err.number & " : " & err.description) 
Else 
HandleError() 
End if 
End If 
On Error Goto 0 
End Sub 

If DA Then 
wbvers="8856F961-340A-11D0-A96B-00C04FD705A2" 
Else 
wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B" 
End If 

document.write "<object ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:" 
document.write wbvers & """> </object>" 
</script> 
+0

त्वरित प्रश्न, यह सभी प्लेटफार्मों में काम करता है। (जीत, लिनक्स, मैक) – Bharanikumar

+0

सुनिश्चित नहीं है। मैं सिर्फ विंडोज पीसी पर आईई का उपयोग करता हूं। – JoBaxter

+12

यह आईई विशिष्ट है। – thejh

2

यह संभव नहीं है, और उसके लिए कुछ अच्छे कारण हैं:

  • उपयोगकर्ता खुद प्रिंटर चुनना चाह सकता है
  • उपयोगकर्ता अपने प्रिंटर को सक्रिय होने पर नियंत्रित करने में सक्षम होना चाहता है (बुरा ऑटो-सेल्फप्रिंटिंग विज्ञापन पॉपअप, ARRGH की कल्पना करें!)
  • उपयोगकर्ता प्रिंटर सेटिंग्स (ग्रेस्केल या रंग, संकल्प, आकार, ...)
+1

यह संभव है। कृपया मेरी टिप्पणी देखें। और मेरे उपयोगकर्ता ऐसे टेलर हैं जिन्हें लेनदेन पोस्ट होने पर ऑटो प्रिंट करने की आवश्यकता होती है। वे डिफ़ॉल्ट सेटिंग्स के साथ एक ही प्रिंटर पर प्रिंट करते हैं। टेलर विंडो तक चलने वाले अगले व्यक्ति को कुछ भी नहीं बदलता है। – JoBaxter

+4

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

+0

मैं इसे एक उत्तर के रूप में नहीं खरीदता हूं, "आपको ऐसा नहीं करना चाहिए" टिप्पणी। मुझे वही चाहिए जो ओपी पूछ रहा है क्योंकि मैं एक प्रोग्राम लिखने की कोशिश कर रहा हूं जो चेक प्रिंट करता है, और मैं उपयोगकर्ता को इसके लिए प्रिंट संवाद का उपयोग करने की अनुमति नहीं दे सकता। स्वीकृत उत्तर जो मैं ढूंढ रहा हूं उसके करीब है। –

8

ऐसा लगता है कि ज्यादातर लोगों को इस तरह के एक सुविधा के नकारात्मक पहलुओं पर ध्यान केंद्रित निर्दिष्ट करना चाहते हैं कर सकते हैं।

हां, ज्यादातर मामलों में यह वांछनीय नहीं होगा कि वेबसाइट डायलॉग बॉक्स को दबा दे।

लेकिन कुछ मामलों में, जैसे कि इस उदाहरण में वह ब्राउज़र से अपने व्यवसाय के लिए रसीद मुद्रित करने का प्रयास कर रहा है। जैसा कि मैं इस तरह के मामले में समझता हूं, हर सेकेंड प्रति दिन सैकड़ों रसीद की पुष्टि करने के लिए बर्बाद होने के लिए बहुत ही मूल्यवान है।

यह सब के बाद एक व्यवसाय है, जहां समय पैसा है!

अनगिनत अन्य मामले हैं जहां कोई संवाद बॉक्स को दबाना चाहेगा, जैसे ईबे विक्रेता शिपमेंट से पहले अपने लेबल प्रिंट कर रहे हैं।

तो आदर्श रूप से वेबसाइट डेवलपर प्रिंटर नाम, रंग/मोनोक्रोमैटिक, गुणवत्ता, कागज आकार जैसे कुछ बुनियादी मानकों को निर्दिष्ट करने में सक्षम होना चाहिए। और इस पैरामीटर को केवल एक बार कॉन्फ़िगर करने के अलावा, उपयोगकर्ता से किसी भी कार्रवाई की आवश्यकता के बिना पूरी तरह से स्रोत coude से प्रिंट को आदेश दें।

दुर्भाग्य से अधिकांश ब्राउज़र अभी तक नहीं हैं, क्योंकि उनके डेवलपर्स क्लाउड पर अनुप्रयोगों के सभी प्रकार की मेजबानी करने की पूर्ण क्षमता तक अभी तक जागृत नहीं हुए हैं, जिनमें पीओएस और लेबल प्रिंटिंग सॉफ्टवेयर जैसे प्रिंटर का उपयोग करने वाले अनुप्रयोग शामिल हैं! वैसे, सॉफ्टवेयर के रूप में सेवा के लिए यहां एक महान जगह है!

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

मुझे यकीन है कि आईई को ऐसा करने का कोई तरीका भी हो सकता है, लेकिन मुझे अभी तक यह नहीं मिला है।

कोई भी जानता है कि क्रोम और ओपेरा जैसे अन्य मुख्यधारा के ब्राउज़र द्वारा प्रस्तावित प्रिंटर और प्रिंटिंग सुविधाओं की स्थिति कैसी है?

0

मुझे लगता है कि सबसे अच्छा वैकल्पिक या तो फ़्लैश या जावा हो जाएगा ....

फ्लैश ओएस तत्वों को अनुकूलित करने के मामले में बहुत लचीला है ....

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob.html

इसलिए, उपयोगकर्ता प्रिंटर को प्रिंट करना चाहते हैं, इसके माध्यम से प्रिंट कर सकते हैं और आप प्रिंटर के नाम को फ़ंक्शन पर पास कर सकते हैं और प्रिंटर प्रिंटिंग शुरू कर देगा .....

2

डाउनलोड गूगल क्रोम संस्करण 18.xx.xx.xx और आप प्रिंटर संवाद बंद करना है कि फैशन की

--kiosk-noprint

कुछ झंडे का उपयोग कर सकते मैं काफी के ऊपर से याद नहीं कर सकते मेरा सिर लेकिन गूगल उस पर मदद करेगा। इससे संवाद करने की अनुमति मिल जाएगी जब आप जो भी प्रिंट करना चाहते हैं उसे चुनने के लिए।

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