multi-store/app/common/service/xpyun/XpsdkPrintApi.php

90 lines
2.7 KiB
PHP
Raw Normal View History

<?php
namespace app\common\service\xpyun;
use Xpyun\model\PrintRequest;
use Xpyun\service\PrintService;
/**
* Class XpsdkPrintApi
* 打印示例
*/
class XpsdkPrintApi
{
/**
* 打印服务对象实例化
*/
private $service;
public function __construct()
{
$this->service = new PrintService();
}
/**
* 小票打印字体对齐样例,不支持金额播报
* 注意对齐标签L C R CB 请勿嵌套使用,嵌套使用内层标签有效,外层失效;
* 同一行请勿使用多个对齐标签,否则只有最后一个对齐标签有效
*/
public function printFontAlign($sn)
{
$printContent = <<<EOF
不加标签:默认字体大小<BR>
<BR>
L标签<L>左对齐<BR></L>
<BR>
R标签<R>右对齐<BR></R>
<BR>
C标签<C>居中对齐<BR></C>
<BR>
N标签<N>字体正常大小<BR></N>
<BR>
HB标签<HB>字体变高一倍<BR></HB>
<BR>
WB标签<WB>字体变宽一倍<BR></WB>
<BR>
B标签<B>字体放大一倍<BR></B>
<BR>
HB2标签<HB2>字体变高二倍<BR></HB2>
<BR>
WB2标签<WB2>字体变宽二倍<BR></WB2>
<BR>
B2标签<B2>字体放大二倍<BR></B2>
<BR>
BOLD标签<BOLD>字体加粗<BR></BOLD>
EOF;
$printContent = $printContent . '<BR>';
// 嵌套使用对齐和字体
$printContent = $printContent . '<C>嵌套使用:<BOLD>居中加粗</BOLD><BR></C>';
// 打印条形码和二维码
$printContent = $printContent . '<BR>';
$printContent = $printContent . '<C><BARCODE>9884822189</BARCODE></C>';
$printContent = $printContent . '<C><QR>https://www.xpyun.net</QR></C>';
$request = new PrintRequest();
$request->generateSign();
//*必填*:打印机编号
$request->sn = $sn;
//*必填*:打印内容,不能超过12K
$request->content = $printContent;
//打印份数默认为1
$request->copies = 1;
//声音播放模式0 为取消订单模式1 为静音模式2 为来单播放模式3为有用户申请退单了。默认为 2 来单播放模式
$request->voice = 2;
//打印模式:
//值为 0 或不指定则会检查打印机是否在线,如果不在线 则不生成打印订单,直接返回设备不在线状态码;如果在线则生成打印订单,并返回打印订单号。
//值为 1不检查打印机是否在线直接生成打印订单并返回打印订单号。如果打印机不在线订单将缓存在打印队列中打印机正常在线时会自动打印。
$request->mode = 1;
$result = $this->service->xpYunPrint($request);
return $result->content;
}
}