2009-07-08 20 views
21

जैसा कि इस विषय में कहा गया है कि मुझे एक वेब-आधारित एप्लिकेशन के लिए एक सुविधा बनाना है जो उपयोगकर्ताओं को किसी भी संवाद बॉक्स को संकेत दिए बिना सीधे प्रिंट भेजने की अनुमति देगा, केवल प्रिंट करें यानी क्लिक करें और प्रिंट, सरल! लेकिन नहीं मेरे लिए :(।सीधे प्रिंट पॉपअप विंडो के बिना ब्राउजर से प्रिंट करें

कृपया, सुझाव है कि क्या सबसे अच्छा विकल्प होगा और मैं इसे कैसे लिखना अप (प्रौद्योगिकी) चाहिए।

कृपया सुझाएँ!

धन्यवाद।

संपादित करें :।।। प्रिंट उपयोगकर्ता के डिफ़ॉल्ट प्रिंटर पर भेज दिया जाना चाहिए

+0

मैं पहले से ही preassumed था कि इस तरह के एक विकल्प के एक एक्टिव एक्स नियंत्रण बनाकर IE के लिए संभव हो जाएगा का उपयोग करें। लेकिन याद नहीं था कि यह vbscript के माध्यम से भी किया जा सकता है। भाग्यशाली हो गया और यह पाया: http://msdn.microsoft.com/en-us/library/ms976105.aspx मैंने अभी तक यह कोशिश नहीं की है, लेकिन यह मुझे एक सहायक अनुस्मारक देखो देता है जो मुझे बचाने के लिए बचा सकता है मेरा हाथ सक्रिय x –

+0

से गंदा है मुझे पता है कि यह धागा सुपर पुराना था। लेकिन शायद कोई पता लगाने का प्रयास करें, कृपया इसे जांचें: https://github.com/apinprastya/pulas – Apin

+0

कुछ अन्य ब्राउज़र प्रिंटिंग समाधान यहां उपलब्ध हैं: http://stackoverflow.com/a/28783269/3196753 – tresf

उत्तर

13

मुझे अन्य ब्राउज़र के लिए समाधान नहीं मिला। जब मैंने यह प्रश्न पोस्ट किया, तो आईई उच्च प्राथमिकता पर था और खुशी से मुझे एक मिला। यदि आपके पास अन्य ब्राउज़रों (फ़ायरफ़ॉक्स, सफारी, ओपेरा) के लिए समाधान है तो कृपया यहां साझा करें। धन्यवाद।

VBScript ज्यादा पर VB6 या सी #/VB.NET एक ActiveX बनाने से कहीं अधिक सुविधाजनक है:

<script language='VBScript'> 
Sub Print() 
     OLECMDID_PRINT = 6 
     OLECMDEXECOPT_DONTPROMPTUSER = 2 
     OLECMDEXECOPT_PROMPTUSER = 1 
     call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 
End Sub 
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>" 
</script> 

अब, बुला:

<a href="javascript:window.print();">Print</a> 

पॉपअप प्रिंट खिड़की के बिना प्रिंट भेज देंगे।

+0

मैंने जावास्क्रिप्ट में सटीक कोड को लागू करने का प्रयास किया और यह काम नहीं किया। केवल वीबीस्क्रिप्ट में। यह वीबीस्क्रिप्ट में क्यों काम करता है लेकिन जावास्क्रिप्ट में नहीं? –

+0

@ जोर्डो मुझे लगता है कि उपरोक्त कॉन्फ़िगरेशन चर केवल vbscript के सदस्य हैं। यहां, उपर्युक्त स्क्रिप्ट में हम मुख्य रूप से क्या कर रहे हैं कॉन्फ़िगरेशन चर को रीसेट कर रहा है। यह सिर्फ आपके प्रश्न का एक वृत्ति विचार है। –

+0

आपके द्वारा संदर्भित चर केवल स्थिरांक हैं। उन्हें जावास्क्रिप्ट में भी काम करना चाहिए। –

1

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

+0

ActiveX के बारे में कैसे आईई के लिए नियंत्रण जो उपयोगकर्ता के डिफ़ॉल्ट प्रिंटर पर एक प्रिंट भेज देगा। यह एक सुंदर काम करने योग्य लग रहा है। लेकिन, ऐसे सक्रिय उपयोगकर्ताओं को बनाने के लिए प्रयासों के घंटों का निवेश केवल आईई उपयोगकर्ताओं के लिए सुविधा प्रदान करने के लिए उचित नहीं है। –

+0

ज़ाचरी, उपरोक्त स्क्रिप्ट किसी भी पॉपअप विंडो को दिखाए बिना एक डिफ़ॉल्ट प्रिंटर मशीन पर प्रिंट कमांड भेजती है। लेकिन यह केवल आईई के लिए है। मुझे आशा है कि यह हमारे द्वारा किए गए संदेहों का उत्तर देगा :) –

+0

ओह वाह, मैंने वीबीस्क्रिप्ट का उपयोग करने के बारे में भी सोचा नहीं था। महान जा रहा है, रामिज। यदि आप केवल आईई का उपयोग कर रहे हैं, तो आप पूरी तरह से सेट हैं: डी –

-3

यह काम करना चाहिए, मैंने इसे स्वयं से कोशिश की और यह मेरे लिए काम किया। यदि आप गलत के बजाय सही पास करते हैं, तो प्रिंट संवाद दिखाई देगा।

this.print(false); 
+0

दिखाता है, बूलियन पैरामीटर के साथ जावा स्क्रिप्ट में कोई प्रिंट() विधि उपलब्ध नहीं है। –

+0

भले ही आप ऐसा कर सकें, मालिकाना कारणों से मैं लागू नहीं करूँगा। जब तक यह लोगों के एक विशिष्ट सबसेट द्वारा काम पर उपयोग किया जाने वाला एक विशिष्ट अनुप्रयोग नहीं है। भले ही कल्पना करें कि मेरे प्रिंटर को केवल एक पृष्ठ पर जाकर प्रिंट करना था और बिना किसी पुष्टि के कि मैं प्रिंट करना चाहता हूं। 1. मुझे लगता है कि एक संभावित वायरस है क्योंकि मुझे यह भी नहीं पूछा गया था कि मैं प्रिंट करना चाहता हूं। 2. मैं लोगों की मशीनों पर अनगिनत पेपर बर्बाद कर दूंगा। क्या होगा यदि वे 15 पृष्ठ रिपोर्ट में से केवल 1 पृष्ठ चाहते थे। अंत पाठ: प्रिंटिंग प्रोटोकॉल के माध्यम से प्रिंट किए बिना प्रिंटिंग नहीं की जानी चाहिए। – Spoo

3

AttendStar एक नि: शुल्क बनाई ऐड-ऑन कि प्रिंट करें संवाद बॉक्स को दबा और Firefox के संस्करणों के लिए सभी शीर्षलेख और पादलेख निकाल देता है। ।

https://addons.mozilla.org/en-US/firefox/addon/attendprint/

कि सुविधा पर आप $ ('img') के साथ उपयोग कर सकते हैं

jqprint(); और jquery के लिए jqprint केवल उस छवि को प्रिंट करेगा जो स्वचालित रूप से आपके वेब एप्लिकेशन से बुलाया जाता है।

3

आईई 9 अब आईई 7 और आईई 8 की तरह window.print() को कॉल करके प्रिंट() वीबीस्क्रिप्ट को ट्रिगर करने का समर्थन नहीं करता है, और इस प्रकार window.print() अब IE9 में प्रिंट संवाद को हमेशा ट्रिगर करेगा।

फिक्स बहुत आसान है। आपको ऑनक्लिक ईवेंट में window.print() की बजाय प्रिंट() स्वयं को कॉल करने की आवश्यकता है।

मैंने एक अन्य प्रश्न के उत्तर में अधिक विस्तार से फिक्स का वर्णन किया है, एक कामकाजी कोड उदाहरण के साथ थोड़ा अद्यतन एचटीएमएल सिंटैक्स खेल रहा है (जितना संभव हो सके कामकाजी कोड के रूप में परीक्षण किया गया है)।

आप यहाँ नमूना कोड पा सकते हैं:

Bypass Printdialog in IE9

0

this.print (गलत);

मैंने क्रोम, फ़ायरफ़ॉक्स और आईई में यह कोशिश की। यह केवल फ़ायरफ़ॉक्स और आईई में काम करता है, यह डिफ़ॉल्ट प्रिंटर (डिफ़ॉल्ट प्रिंट सेटिंग्स के साथ) का उपयोग करता है और जब मैं एक पीडीएफ प्रस्तुत करता हूं तो केवल काम करता है (मैं सुरक्षित पठन मोड अक्षम के साथ फॉक्सिट रीडर का उपयोग करता हूं)। जब मैं एक HTML पृष्ठ प्रस्तुत करता हूं तो क्रोम प्रिंट संवाद भी दिखाता है, अन्य ब्राउज़र भी।

0

आईई ब्राउज़र के लिए, "वीबीस्क्रिप्ट समाधान" काम करता है।

लेकिन जैसे Bypass Printdialog in IE9 पर @purefusion ने उल्लेख किया, प्रिंट() के बजाय window.print()

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