我们正在开发餐馆连锁系统,因此我们必须使用打印机的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中使用这个命令 或者是他们的任何其他打印方式
答案 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)
您为爱普生列出了剪切命令吗?