2013-10-29 9 views
8

This answer दिखाता है कि Google क्रोम में चुप प्रिंटिंग कैसे सक्षम करें। हालांकि, मेरे पास दो वेब पेज हैं जिन्हें बिना किसी उपयोगकर्ता इंटरैक्शन के दो अलग-अलग प्रिंटर का उपयोग करके चुपचाप मुद्रित किया जाना है। window.print() पर कॉल करने से पहले स्वचालित रूप से प्रिंटर का चयन करने का कोई तरीका है? यदि आवश्यक हो तो मुझे क्रोम एक्सटेंशन लिखने पर कोई फर्क नहीं पड़ता।एक प्रिंटर का चयन करें और चुपचाप प्रिंट करें

+2

यदि मुद्रित होने वाले दस्तावेज़ों में से एक सादा पाठ है, तो आप इसे एक साधारण बैच फ़ाइल आवरण के साथ खोल सकते हैं जो नोटपैड खोलता है और टेक्स्ट प्रिंट करता है। आप एक कस्टम माइम-प्रकार dataURL पॉप अप करेंगे और उस प्रकार के साथ अपनी बैच फ़ाइल को संबद्ध करेंगे। फिर आप window.print() का उपयोग कर dataURL और html का उपयोग करके टेक्स्ट प्रिंट कर सकते हैं। दूसरा जवाब "नहीं" है। – dandavis

उत्तर

2

मैंने एफ # में एक सर्वर लिखना शुरू कर दिया और वेबसाकेट के माध्यम से इसके साथ संवाद कर रहा था।

+3

क्या आप हमें अपने समाधान – Amro

+1

@ मैडम एलीसे के बारे में अधिक जानकारी दे सकते हैं, मन कुछ कोड साझा कर रहा है ?? – alex

21

शायद आप Google प्रिंटर प्रिंट के साथ अपने प्रिंटर सेट अप कर सकते हैं तो चुपचाप उन्हें नौकरियां सबमिट करने के लिए the cloud printing API का उपयोग करें। ऐसा लगता है कि जब आप नौकरी जमा करते हैं तो आप प्रिंटर आईडी निर्दिष्ट कर सकते हैं। वेबपृष्ठ को रास्टराइज करने के लिए आपको html2canvas जैसे कुछ उपयोग करने की आवश्यकता हो सकती है।

1

मैंने एक उत्तर खोजा है लेकिन ऐसा लगता है कि प्रिंटर को प्रोग्रामिक रूप से सेट करने का कोई तरीका नहीं है। इसलिए मेरा शायद जटिल समाधान:

एक कमांड लाइन एप्लिकेशन बनाएं जो ऑपरेटिंग सिस्टम के डिफ़ॉल्ट प्रिंटर को स्विच कर सकता है। शायद एक ऐसा एप्लिकेशन जो प्रिंटर को अक्षम और सक्षम करने में सक्षम है। यदि आप विंडोज़ पर हैं तो .NET एप्लिकेशन शायद ऐसा कर सकता है। यदि लिनक्स पर प्रिंटर प्रबंधन के लिए कमांड लाइन इंटरफ़ेस होना चाहिए (मुझे निश्चित रूप से पता नहीं है)।

अब उदाहरण के लिए एक PHP, asp.net या ruby ​​आदि पृष्ठ बनाएं जो प्रिंटर को सक्षम/अक्षम प्रोग्राम को कॉल करने में सक्षम है।

यदि यह काम कर रहा है तो आप पहले प्रिंटर पर प्रिंट करने के लिए जावास्क्रिप्ट कॉल का उपयोग कर सकते हैं और प्रिंटर दो पर स्विच के बाद। हालांकि कुछ नुकसान:

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

मुझे उम्मीद है कि कोई आपके लिए बेहतर समाधान के साथ आता है, लेकिन मैं कम से कम अपने विचार साझा करना चाहता था। शायद वे आपकी समस्या को हल करने में आपकी मदद करते हैं।

+0

इस समाधान में दो प्रमुख समस्याएं हैं (मुझे उम्मीद है कि हम पार कर सकते हैं): 1- पहला: PHP, एएसपी, रूबी या जो भी एक ही मशीन पर होना चाहिए, सर्वर, यदि यह क्लाइंट मशीन है, और आपने जावास्क्रिप्ट को बुलाया है, यह क्या कर सकता है? \t 2-सेकेंड और समान रूप से महत्वपूर्ण: यदि आप सिस्टम के डिफ़ॉल्ट प्रिंटर को बदलने के लिए (जावास्क्रिप्ट के माध्यम से) सक्षम हैं, तो यह क्रोम के डिफ़ॉल्ट प्रिंटर को नहीं बदलता है, क्योंकि यह अंतिम प्रयुक्त प्रिंटर को तय किया गया है ........ मेरे पास जावास्क्रिप्ट के माध्यम से सिस्टम सेटिंग बदलने का एक समाधान है, हालांकि जटिल है, लेकिन कुशलतापूर्वक काम कर सकता है, समस्या अब है: मैं क्रोम के डिफ़ॉल्ट प्रिंटर को कहां बदल सकता हूं ?? – Amro

5

यदि आप ऐसे माहौल में हैं जो आप जानते हैं, और जिनके पास आपके पास पर्याप्त विशेषाधिकार हैं (मुझे लगता है, क्योंकि आप प्रिंटर को जानते हैं जिसे आप उपयोग करना चाहते हैं) तो आप इसे कमांड लाइन के माध्यम से बदलने का प्रयास कर सकते हैं। इसके लिए आपको

@RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name" 

प्रिंटर का नाम है मूल्य नियंत्रण कक्ष में प्रदर्शित करने के लिए फोन करना चाहिए।

जावास्क्रिप्ट से कमांड लाइन बुला लिए, यदि आप उचित ActiveX नियंत्रण सक्षम किया हुआ है, तो आप उपयोग कर सकते हैं:

var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run"); 
भी

, आप shell.application साथ की कोशिश कर सकते ShellExecute

var objShell = new ActiveXObject("shell.application"); 
objShell.ShellExecute("cmd.exe", 'RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name"', "C:\\WINDOWS\\system32", "open", 1); 

अधिक जानकारी के लिए जानकारी आप http://msdn.microsoft.com/en-us/library/windows/desktop/gg537745(v=vs.85).aspx

पर जा सकते हैं, मैंने इसका परीक्षण किया है, तो शुभकामनाएं!

+0

आपका समाधान विदेशी दिखता है, इसे आज़माने के लिए जा रहा है। क्या आप किसी भी मौके से जानते हैं कि मैं प्रिंटर सेटअप की नकल कर सकता हूं। फिलहाल मेरे पास वास्तविक प्रिंटर तक पहुंच नहीं है (यह बैज प्रिंटर, ज़ेबरा या evolis होगा) – alex

+0

बस परीक्षण किया गया और यह काम करता है, हालांकि यह केवल आईई में काम करता है और "सक्रिय x नियंत्रण प्रारंभ और स्क्रिप्ट करने की अनुमति देता है आईई सुरक्षा सेटिंग्स में "स्क्रिप्टिंग के लिए सुरक्षित चिह्नित नहीं है, अधिक जानकारी के लिए [यह उत्तर] देखें (http://stackoverflow.com/a/16801148/3549014)। –

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