Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用POS打印机打印Javascript收据_Javascript_Jquery_Printing - Fatal编程技术网

使用POS打印机打印Javascript收据

使用POS打印机打印Javascript收据,javascript,jquery,printing,Javascript,Jquery,Printing,在web应用程序中,我希望使用POS(销售点)打印机打印收据。我想用Javascript实现这一点。有人能给我举个例子吗?我在这里有点冒险,因为你的问题不是很详细,所以 a) 收据打印机是需要原始数据的热敏打印机, b) 您所说的“来自javascript”是指从web浏览器和 c) 您无权从浏览器发送原始数据 这里有一个Java小程序,可以为您解决所有这些问题,如果我对这些假设是正确的,那么您需要Java、Flash或Silverlight 如果你说的是基于浏览器的POS应用程序,那么它基本上

在web应用程序中,我希望使用POS(销售点)打印机打印收据。我想用Javascript实现这一点。有人能给我举个例子吗?

我在这里有点冒险,因为你的问题不是很详细,所以 a) 收据打印机是需要原始数据的热敏打印机, b) 您所说的“来自javascript”是指从web浏览器和 c) 您无权从浏览器发送原始数据

这里有一个Java小程序,可以为您解决所有这些问题,如果我对这些假设是正确的,那么您需要Java、Flash或Silverlight

如果你说的是基于浏览器的POS应用程序,那么它基本上是不能开箱即用的。有很多选择

  • 使用Scott Selby所说的小程序
  • 从服务器打印。如果这是一个 云服务器,即无法连接到收据打印机,然后呢 你能做的就是
    • 从服务器生成pdf格式,可在浏览器中弹出打印对话框
    • 使用Google Cloud Print之类的工具,可以将打印机连接到云服务

  • 编辑:2017年11月27日─ 断开的链接

    下面有关撰写的帖子的链接已断开

    存在存储库的缓存版本,只需在Chrome浏览器中的URL之前添加
    缓存:
    ,然后按enter键

    • 第一个职位:|
    • 第二职位:

    此解决方案仅适用于和浏览器

    编辑:

    (*)链接已断开。幸运的是,我在以下标记文件中找到了该帖子的来源:|

    *说明如何使用Chrome/ChromeUSB API为ESC/POS打印机创建Javascript接口。
    *解释如何使用
    chrome.USB.*
    API连接到USB设备。

    I将javascript打印到Star Micronics Webprnt TSP 654ii热敏打印机。此打印机是有线网络打印机,您可以将内容绘制到HTML画布,并发出HTTP打印请求。唯一需要注意的是,此打印机尚不支持HTTPS协议,因此您将在生产中收到混合内容警告。联系了Star micronics支持部门,他们说,他们正在进行HTTPS支持,很快将提供固件升级。另外,看起来带TM-I的爱普生Omnilink TM-88V打印机将支持javascript打印


    下面是一个示例代码:

    如果您的打印机是爱普生,您可以看看这个。有一个javascript驱动程序

    编辑:

    以前的链接似乎已断开

    有关如何使用爱普生epos的所有详细信息,请访问爱普生网站:

    试试Escpos 用于PHP POS打印

    您可以尝试使用基本上正是您所寻找的服务。您下载桌面客户端并将其安装到用户计算机-。然后,您可以使用用户的JSON API发现并打印到该用户计算机上的任何打印机。这里有很多lib:

    我最近实现了收据打印,只需按下网页上的一个按钮,无需输入打印机选项。我已经使用ePOS的EPSON javascript SDK完成了这项工作。我已经在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);
    ....
    ....
    ....
    
    }
    

    要求很苛刻,这里。。。我知道你今天用POS打印机可以用哪种方式打印?我认为您需要一些服务器端处理(因此,我建议使用AJAX调用服务器端脚本进行打印。我认为这超出了JavaScript本身的范围。您可以使用JavaScript帮助创建格式化为打印的HTML文档,甚至启动打印对话框,以便用户只需单击“打印”即可按钮…只要POS打印机安装在PC上并设置为打印机列表中的一个选项。打印需要为该打印机工作的驱动程序,JS无法深入到机器的硬件中,除非您运行在有API可用于接入硬件的环境中。但这不会发生在浏览器中。可能是如果你能提供更多的信息,这会很有帮助;到目前为止,你得到了什么?你只是想打印,还是这是POS特有的?谷歌给我提供了很多使用JS打印的例子。爱普生似乎是唯一一家能够签出ePOS Javascript SDK文档来替代PDF的打印机,内容是通过CSS设计的
    media=“print”
    将完成这项工作。可能。在正常打印页面时,是否可以关闭页眉和页脚,并使用media=“print”精确控制页面大小?在android这样的移动设备上通过网络浏览器打印怎么样?@radztech-同样的情况there@ErolGuzoğlu-这仍然来自浏览器,而不是来自作为javascript网站一部分编写的客户端代码。在操作系统上运行的浏览器可以访问比浏览器访问的网站更多的javascript是executing@ScottSelby-ErolGuzoğlu提供的链接与桌面上的客户端对话,该客户端可以访问打印机等。看起来像是chrome。usb*api仅适用于chrome扩展,不适用于javascript。@FelipeAlarcon很抱歉,我没有链接内容的副本。希望这里有人有副本。@FelipeAlarcon找到源!答案已更新。:)能够直接从javascript打印的热敏打印机非常昂贵。此外,混合内容警告也很糟糕。因此,我得出结论,目前直接从javascript打印不是一个好主意。相反,我使用媒体打印标签并调用window.print打开打印对话框。此外,在kiosk模式下,chrome可以在不使用e的情况下打印显示打印预览对话框。这很酷,和直接打印效果差不多。我也用过这些打印机。价格有点贵