Star Micronics使用SDK或Socket for web在php中打印

时间:2017-07-30 09:45:23

标签: php sockets printing

我们正在开发餐馆连锁系统,因此我们必须使用打印机的IP地址在打印机上打印收据

他们已经拥有Star Micronics TSP700II的打印机。所以我们必须使用那些打印机

在爱普生,我们有EPOS SDK从WEB环境打印

但对于Star我们无法使用WEBPrint SDK。所以我所做的是我使用套接字从打印机的ipaddres上的直接PHP代码本身打印,如下面给出的.NET使用

var document, ordered;

document = [
  {
    ih_doc: {
      _cdata: order_id
    }
  }
];

ordered = items.map(function(it) {
  return document.push({
    DocLine: [
      {
        it_sku: {
          _cdata: it.sku
        }
      }, {
        it_desc: {
          _cdata: it.name
        }
      }, {
        quan: {
          _cdata: it.quantity
        }
      }, {
        sellprice: {
          _cdata: it.price
        }
      }
    ]
  });
});

我也获得了成功。但现在问题是Star和EPSON有预先定义的代码来剪切,输入线条,粗体,颜色字体。所以从.NET开始,他们将代码转换为转换字节

$fp=pfsockopen("192.168.0.145", 9100);
if($fp)
{
  fputs($fp, "This is Start\nBreak Now");
  fclose($fp);
  echo 'Successfully Printed';
}

这是在完成打印收据后从打印机中剪切纸张的直接命令

所以我怎么能在php中使用这个命令 或者是他们的任何其他打印方式

1 个答案:

答案 0 :(得分:1)

$cut = chr(29) . 'V' . chr(65) . chr(0);

fputs($fp, $cut);

这是如何在PHP中指定ascii。

很奇怪他们会这样写 - ASCII 65是' A'。

这与我在TSP手册http://www.starmicronics.com/absolutefm/absolutefm/afmviewfaq.aspx?faqid=111中看到的cut命令不同。它列出ESC d n,其中n为0-3,即:

$chr = chr(27) . 'd' . chr(0); // or chr(1) or chr(2), or chr(3)

您为爱普生列出了剪切命令吗?