芯烨小票打印机PHP打印代码
芯烨小票打印机PHP打印代码,案例中打印机为58mm打印机
58mm的机器,一行打印16个汉字,32个字母
80mm的机器,一行打印24个汉字,48个字母
本次添加了补打空格的代码,根据商品名称计算后面需要增加多少空格能对齐价格和份数。
所有代码如下:
1 <?php
2
3 namespace app\gctest\controller;
4 class Index
5 {
6 public function index(){
7 header("Content-type:text/html;charset=utf-8");//必须 官方要求
8 header("Access-Control-Allow-Origin: *");//必须 否则可能报跨域错误
9 $user = '85068276@qq.com';//芯烨云平台注册用户名(开发者 ID)
10 $timestamp = time();//当前UNIX时间戳,10位,精确到秒
11 $user_key = '0f04568213985625f45a2';//用户开发者密钥
12 $sign = sha1($user.$user_key.$timestamp);//对参数 user + user_key + timestamp 拼接后(+号表示连接符)进行SHA1加密得到签名,值为40位小写字符串
13 $sn = '02B58MLF221254B';//打印机编号
14 $arr=array(array("牛肉面","20元","2份"),array("红焖猪手砂锅饭","25元","3份"),array("可乐","9元","2份"));
15 $content0='';
16 foreach($arr as $k=>$v){
17 $space =$this->addspace($v[0]);
18 //var_dump($v[0]);
19 $content0.='<L><HB>'.$v[0].$space.$v[1].' '.$v[2].'<BR>';
20 }
21 $content =
22 '<CB>**店铺名称**
23 <L><N>--------------------------------
24 <CB>--在线支付--
25 <L><N>下单时间:2023年5月9日22时32分
26 订单编号:'.rand(100,1000).'
27 **************商品**************
28 <C>---1号窗口---</C><BR>'.
29 $content0.
30 '牛肉 x1 8
31 --------------------------------
32 配送费:¥4
33 --------------------------------
34 <N>小计:¥31
35 <L><N>********************************
36 <N>订单总价:¥35
37 <HB>香洲花园 5栋6单元1404号
38 张先生:18966717535
39 订单备注:[用餐人数]1人;
40 少放辣椒
41 <C><HB>**#8 完**
42 <BR><BR>';//打印内容
43 $data = json_encode(array("user"=>$user,"timestamp"=>$timestamp,"sign"=>$sign,"sn"=>$sn,"content"=>$content));
44 $url = "https://open.xpyun.net/api/openapi/xprinter/print";
45 $result = $this->curl_post($url,$data);
46 var_dump($result);
47 }
48
49 function curl_post($url,$data){
50 $header = array('Content-Type: application/json; charset=utf-8');
51 $ch = curl_init();
52 curl_setopt($ch, CURLOPT_URL, $url);
53 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
54 curl_setopt($ch, CURLOPT_POST, 1);
55 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
56 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
57 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
58 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
59 curl_setopt($ch, CURLOPT_HEADER, 0);
60 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
61 $output = curl_exec($ch);
62 curl_close($ch);
63 return $output;
64 }
65
66 function addspace($pname){
67 $strlen0 = mb_strlen($pname);
68 $strlen = 10-$strlen0;
69 for($i=0;$i<$strlen;$i++){
70 $sp.=" ";
71 }
72 return $sp;
73 }
74 }
芯烨小票打印机PHP打印代码的更多相关文章
- C#并口热敏小票打印机打印位图包括芯片的写入
下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...
- 转:C#并口热敏小票打印机打印位图
最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: class LptControl { private s ...
- C# 热敏打印机 小票打印机 打印图片
最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: 因为我们这里主要是打印条形码和二维码,所以以条形码和二维 ...
- C#并口热敏小票打印机打印位图
原文:C#并口热敏小票打印机打印位图 最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: class ...
- C# Lpt 并口热敏小票打印机打印位图
class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { L ...
- 小票打印机指令集封装(支持EPSON指令)
最近写了一些关于小票打印机的程序,不难,但是记录下来,作为足迹吧. 现在市场上的小票机基本都支持EPSON指令.指令集文档 对指令集进行了自己的封装,方便以后调用: package aheiziUti ...
- 让 Odoo POS 支持廉价小票打印机
为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店.由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posb ...
- JavaScript 调用 Windows 的打印 代码
JavaScript 调用 Windows 的打印 代码 2009-02-24 10:36 <%@ Page Language="C#" AutoEventWireup=&q ...
- html 打印代码,支持翻页
ylbtech_html_print html打印代码,支持翻页 <html> <head> <meta name=vs_targetSchema content=&qu ...
- 实现所有SAP设备打印机并行打印
SAP版本:ECC 6.0 701 1.如何实现所有SAP设备打印机并行打印? I.通过事务码:SPAD,进入假脱机管理初始屏幕.点击左上角的菜单中 配置(c)=>输出设备,进入SAP系统 输出 ...
随机推荐
- win10无管理员权限下以压缩包方式安装JDK8
使用场景:如果在没有管理员权限的情况下,无法运行.exe文件,可以使用这种方式安装,本次把JDK安装到D:\jdk-8u152 一:获取JDK8的压缩包 1.JDK8 华为镜像地址 2.将下载好的ex ...
- Springboot中@RequestBody接收的对象传入首字母大写的参数时,无法接收到参数值的问题解决
在Vo对象中的变量上添加@JsonProperty("")注解 postman测试 转载:https://blog.csdn.net/qq_39069718/article/det ...
- python:m3u8转mp4
import re,requests,time,os import threadpool res = requests.get(url="http://pili-vod.tebaobao.v ...
- 关于proTable设置列固定,始终没有固定的效果的原因
使用proTable设置操作列固定 const columns: ProColumns<IssueItem>[] = [ { title: '操作', valueType: 'option ...
- keras图片数字识别入门AI机器学习
通过使用mnist(AI界的helloworld)手写数字模型训练集,了解下AI工作的基本流程. 本例子,要基于mnist数据集(该数据集包含了[0-9]的模型训练数据集和测试数据集)来完成一个手写数 ...
- Linux命令示例记录-20230313【持续更新中】
1. ip命令 1.1. 摘要 ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具.例如:ifconfig.route等.这个手册将分章节介绍ip命令及其选项. ...
- vulnhub靶场之PYLINGTON: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:Pylington: 1,下载地址:https://download.vulnhub.com/pylington/pylington.ova,下 ...
- MySQL学习(十一)为什么不推荐使用uuid和雪花id
参考博客:https://www.cnblogs.com/wyq178/p/12548864.html 自增的主键的值是顺序的,所以Innodb把每一条记录都存储在一条记录的后面.当达到页面的最大填充 ...
- 小心golang中的无类型常量
对于无类型常量,可能大家是第一次听说,但这篇我就不放进拾遗系列里了. 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下.包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到 ...
- C++类的构造函数、析构函数、拷贝构造函数、赋值函数和移动构造函数详细总结
目录 1. 五种函数介绍 2. 左值&右值怎么区分?怎么看? 3. 匿名对象的3种使用情况 4. 代码详细验证每个函数调用情况 4.1 测试 f_1 函数(函数形参测试 -- 值传递) 4.2 ...