2012-07-13 16 views
19

का उपयोग कर जावास्क्रिप्ट रसीद प्रिंटिंग एक वेब एप्लिकेशन में मैं एक पीओएस (प्वाइंट ऑफ सेल) प्रिंटर का उपयोग करके रसीद प्रिंट करना चाहता हूं। मैं जावास्क्रिप्ट के साथ ऐसा करना चाहता हूँ। क्या कोई मुझे इसके लिए एक उदाहरण प्रदान कर सकता है?पीओएस प्रिंटर

+0

काफी कठोर मांग, यहां ... मैं आज किस तरह से पीओएस-प्रिंटर को छूने में सक्षम हूं? मेरा मानना ​​है कि आपको कुछ सर्वर-साइड हैंडलिंग की आवश्यकता है (इसलिए मेरा सुझाव एक सर्वरसाइड-स्क्रिप्ट के लिए एक AJAX- कॉल होगा जो प्रिंटिंग कर रहा है। – mariusnn

+2

मुझे लगता है कि यह अकेले जावास्क्रिप्ट के दायरे से बाहर है। आप जावास्क्रिप्ट का उपयोग करने में मदद करने के लिए चीजें कर सकते हैं एक HTML दस्तावेज़ जो मुद्रण के लिए स्वरूपित है, और प्रिंट संवाद भी लॉन्च करता है ताकि उपयोगकर्ता बस "प्रिंट" बटन पर क्लिक कर सके .... जब तक पीसी पर पीओएस प्रिंटर स्थापित हो और प्रिंटर सूची में विकल्प के रूप में सेट किया जाए। प्रिंटिंग के लिए उस प्रिंटर के लिए काम करने वाले ड्राइवरों की आवश्यकता होती है, और जेएस मशीन के हार्डवेयर में डुबकी नहीं ले सकता है जब तक कि आप ऐसे वातावरण में नहीं चल रहे हैं जहां हार्डवेयर में टैप करने के लिए एपीआई उपलब्ध है। लेकिन यह ब्राउज़र में नहीं होगा। – jwatts1980

+0

अगर आप कुछ और जानकारी प्रदान करते हैं तो सहायक हो सकता है; अब तक आप क्या प्राप्त कर चुके हैं? क्या आप सिर्फ प्रिंट करने में सक्षम होना चाहते हैं - या यह पीओएस के लिए विशिष्ट है? Google ने मुझे प्रिंट करने के लिए जेएस का उपयोग करने के कुछ उदाहरण दिए। – Nick

उत्तर

13

मैं यहाँ एक अंग पर बाहर जा रहा हूँ, क्योंकि आपके प्रश्न बहुत विस्तृत नहीं था, कि क) अपने रसीद प्रिंटर एक थर्मल प्रिंटर कच्चे डेटा की जरूरत है, ख) वह यह है कि आप के बारे में बात कर रहे हैं "जावास्क्रिप्ट से" वेब ब्राउज़र और ग से मुद्रण) है कि आप ब्राउज़र

यहाँ से कच्चे डेटा भेजने के लिए पहुँच नहीं है एक जावा एप्लेट है कि आप के लिए यह सब हल करती है, अगर मैं फिर उन मान्यताओं के बारे में सही कर रहा हूँ या तो आप जावा की जरूरत है , फ्लैश, या सिल्वरलाइट http://code.google.com/p/jzebra/

+0

कैसे पी एंड्रॉइड जैसे मोबाइल डिवाइस में एक वेब ब्राउज़र से rinting? – radztech

+0

@radztech - उसी स्थिति में –

+1

https://github.com/qzind/tray/ –

8

यदि आप ब्राउज़र आधारित पीओएस ऐप टी के बारे में बात कर रहे हैं मुर्गी यह मूल रूप से बॉक्स से बाहर नहीं किया जा सकता है। कई विकल्प हैं।

  1. एक एप्लेट का प्रयोग करें स्कॉट सेल्बी का कहना है की तरह सर्वर से
  2. प्रिंट। यह एक बादल सर्वर है, तो नहीं तो रसीद प्रिंटर के कनेक्शन यानी क्या आप कर सकते हैं
    • सर्वर से यह उत्पन्न के रूप में एक पीडीएफ जो बनाया जा सकता है ब्राउज़र
    • उपयोग में एक प्रिंट संवाद पॉपअप करने के लिए है Google मेघ मुद्रण की तरह कुछ है जो एक क्लाउड सेवा करने के लिए प्रिंटर जोड़ने
+0

वैकल्पिक रूप से पीडीएफ के लिए, सीएसएस के माध्यम से 'मीडिया = "प्रिंट" के साथ स्टाइल की गई सामग्री नौकरी करेगी। संभवतः – clapas

+0

। क्या आप आमतौर पर एक पृष्ठ मुद्रित करते हैं और मीडिया = "प्रिंट" के साथ पेज आकार को सही तरीके से नियंत्रित करते समय हेडर और पाद लेख बंद कर सकते हैं? – Craig

6

संपादित करें की अनुमति देगा: नवम्बर 27 वें, 2017 ─ टूटी कड़ियों

David Kelleyद्वारा लिखे गए पदों के बारे में नीचे दिए गए लिंक टूटा हुआ है।

भंडार के कैश संस्करण हैं, क्रोम ब्राउज़र में यूआरएल से पहले cache: जोड़ें और एंटर दबाएं।


यह समाधान केवल Google Chrome और Chromium-based ब्राउज़र के लिए है।

संपादित करें:

(*) लिंक टूट चुके हैं। सौभाग्य से मुझे this repository मिला जिसमें निम्न मार्कडाउन फ़ाइलों में पोस्ट का स्रोत शामिल है: A | B

This link * कैसे ESC/स्थिति क्रोम/क्रोमियम यूएसबी एपीआई(1)(2) का उपयोग कर प्रिंटर के लिए एक जावास्क्रिप्ट इंटरफेस बनाने के लिए बताते हैं। This link * बताता है कि chrome.usb.* API का उपयोग कर यूएसबी डिवाइस से कैसे कनेक्ट करें।

+1

ऐसा लगता है कि chrome.usb * api केवल क्रोम एक्सटेंशन के लिए उपलब्ध है, न कि जावास्क्रिप्ट से। –

+0

लिंक टूट गया है! –

+0

@FelipeAlarcon मुझे खेद है कि मेरे पास लिंक की सामग्री की एक प्रति नहीं है। उम्मीद है कि यहां किसी की एक प्रति है। –

3

मैंने एक स्टार माइक्रोनिक्स वेबप्रेंट टीएसपी 654ii थर्मल प्रिंटर में फॉर्म जावास्क्रिप्ट मुद्रित किया। यह प्रिंटर एक वायर्ड नेटवर्क प्रिंटर है और आप सामग्री को HTML कैनवास पर खींच सकते हैं और प्रिंट करने के लिए HTTP अनुरोध कर सकते हैं। एकमात्र चेतावनी यह है कि, यह प्रिंटर अभी तक HTTPS प्रोटोकॉल का समर्थन नहीं करता है, इसलिए आपको उत्पादन में मिश्रित सामग्री चेतावनी मिल जाएगी। स्टार माइक्रोनिक्स समर्थन से संपर्क किया और उन्होंने कहा, वे HTTPS समर्थन पर काम कर रहे हैं और जल्द ही एक फर्मवेयर अपग्रेड उपलब्ध होगा। इसके अलावा, टीएम -1 के साथ एपसन ओमनिलिंक टीएम -88 वी प्रिंटर की तरह दिखता है जावास्क्रिप्ट प्रिंटिंग का समर्थन करेगा। यदि आपका प्रिंटर एक epson है https://github.com/w3cloud/starwebprint

+0

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

+0

मैंने इन प्रिंटरों का भी उपयोग किया है। कीमत थोड़ा परेशान है। मैंने स्टार से बात की है और वे एक अद्यतन कहते हैं जो एचटीटीपीएस का समर्थन करता है। – Craig

+0

मुझे जावास्क्रिप्ट html5 कैनवास प्रिंटिंग की जरुरत है। यदि आप में से किसी ने एपसन टीएम -20ii-I ओमनी लिंक प्रिंटर की कोशिश की है, तो कृपया अपना अनुभव साझा करें। जानना चाहते हैं कि यह https का समर्थन करता है या नहीं। –

2

हो सकता है कि आप इस पर एक नज़र हो सकता है:

यहाँ एक नमूना कोड है। वहाँ एक जावास्क्रिप्ट ड्राइवर है

http://spsrprofessionals.com/ClientSite/readers/ePOS-Print_SDK_141020E/JavaScript/ePOS-Print_SDK_JS_en_revB.pdf

संपादित करें:

https://reference.epson-biz.com/modules/ref_epos_device_js_en/index.php?content_id=139

:

पिछला लिंक टूटा

कैसे epson के महाकाव्य का उपयोग करने के बारे में सभी विवरण epson वेबसाइट पर कर रहे हैं लगता है

+0

के माध्यम से प्रिंटर कनेक्ट होता है तो प्रिंटर यूआरएल में क्या उपयोग करना है, जो आपने ईपीएसॉन के ईपीओएस के बारे में पोस्ट किया है वह लिंक टूटा हुआ है। – chipit24

1

आप https://www.printnode.com जो अनिवार्य रूप से वास्तव में सेवा है कि आप के लिए देख रहे है का उपयोग कर की कोशिश कर सकते। आप उपयोगकर्ता कंप्यूटर पर डेस्कटॉप क्लाइंट को डाउनलोड और इंस्टॉल करते हैं - https://www.printnode.com/download। फिर आप अपने JSON API https://www.printnode.com/docs/api/curl/ का उपयोग कर उस उपयोगकर्ता के कंप्यूटर पर किसी भी प्रिंटर को खोज और प्रिंट कर सकते हैं। उनके यहां बहुत सारे libs हैं: https://github.com/PrintNode/

+1

क्या प्रिंटनोड का एक संस्करण है जिसे आप अपने दस्तावेज़ों की गोपनीयता सुनिश्चित करने के लिए अपने सर्वर पर होस्ट कर सकते हैं? – phyzalis

0

मैंने हाल ही में प्रिंटर विकल्पों में प्रवेश किए बिना, वेब पेज पर एक बटन दबाकर रसीद प्रिंटिंग लागू की है। मैंने इसे ईपीएसओ के लिए ईपीएसॉन जावास्क्रिप्ट एसडीके का उपयोग करके किया है। मैंने इसे पर परीक्षण किया है EPSON TM-m30 रसीद प्रिंटर।

यहां नमूना कोड है।

var printer = null; 
var ePosDev = null; 

function InitMyPrinter() { 
    console.log("Init Printer"); 

    var printerPort = 8008; 
    var printerAddress = "192.168.198.168"; 
    if (isSSL) { 
     printerPort = 8043; 
    } 
    ePosDev = new epson.ePOSDevice(); 
    ePosDev.connect(printerAddress, printerPort, cbConnect); 
} 

//Printing 
function cbConnect(data) { 
    if (data == 'OK' || data == 'SSL_CONNECT_OK') { 
     ePosDev.createDevice('local_printer', ePosDev.DEVICE_TYPE_PRINTER, 
      {'crypto': false, 'buffer': false}, cbCreateDevice_printer); 
    } else { 
     console.log(data); 
    } 
} 

function cbCreateDevice_printer(devobj, retcode) { 
    if (retcode == 'OK') { 
     printer = devobj; 
     printer.timeout = 60000; 
     printer.onreceive = function (res) { //alert(res.success); 
      console.log("Printer Object Created"); 

     }; 
     printer.oncoveropen = function() { //alert('coveropen'); 
      console.log("Printer Cover Open"); 

     }; 
    } else { 
     console.log(retcode); 
     isRegPrintConnected = false; 
    } 
} 

function print(salePrintObj) { 
    debugger; 
    if (isRegPrintConnected == false 
     || printer == null) { 
     return; 
    } 
    console.log("Printing Started"); 


    printer.addLayout(printer.LAYOUT_RECEIPT, 800, 0, 0, 0, 35, 0); 
    printer.addTextAlign(printer.ALIGN_CENTER); 
    printer.addTextSmooth(true); 
    printer.addText('\n'); 
    printer.addText('\n'); 

    printer.addTextDouble(true, true); 
    printer.addText(CompanyName + '\n'); 

    printer.addTextDouble(false, false); 
    printer.addText(CompanyHeader + '\n'); 
    printer.addText('\n'); 

    printer.addTextAlign(printer.ALIGN_LEFT); 
    printer.addText('DATE: ' + currentDate + '\t\t'); 

    printer.addTextAlign(printer.ALIGN_RIGHT); 
    printer.addText('TIME: ' + currentTime + '\n'); 

    printer.addTextAlign(printer.ALIGN_LEFT); 

    printer.addTextAlign(printer.ALIGN_RIGHT); 
    printer.addText('REGISTER: ' + RegisterName + '\n'); 
    printer.addTextAlign(printer.ALIGN_LEFT); 
    printer.addText('SALE # ' + SaleNumber + '\n'); 

    printer.addTextAlign(printer.ALIGN_CENTER); 
    printer.addTextStyle(false, false, true, printer.COLOR_1); 
    printer.addTextStyle(false, false, false, printer.COLOR_1); 
    printer.addTextDouble(false, true); 
    printer.addText('* SALE RECEIPT *\n'); 
    printer.addTextDouble(false, false); 
.... 
.... 
.... 

}