TPrinter操作手册
1.介绍
打印库 `tprinter` 目前支持斑马打印机和TSC打印机。
2.使用指南
2.1 TZplPrinter
2.1.1 ZT410 示例
- 在C++中调用
TZplPrinter printer; QVariantMap connParam { {"host", "192.168.2.104"}, {"port", 4215}, {"printer_type", "ZT410"} }; printer.setConnectionParam(connParam); QVariantList pieces; pieces.append(QVariantMap{ {"type", "BAR_CODE"}, {"width", 30}, {"height", 30}, {"x", 5}, {"y", 5}, {"value", "ABC-abc-1234"} }); QVariantMap data{ {"count", 1}, {"width", 80}, {"height", 40}, {"info", pieces} }; TError err; bool ok = printer.print(data, &err); if (!ok) { qDebug() << err.text(); }
- 在Qt Script中调用
importPackage("ikm.printer"); var printer = new TZplPrinter; printer.setConnectionParam({ "host": "192.168.2.104", "port": 4215, "printer_type": "ZT410" }); var data = { "count": 1, // 打印张数 "width": 80, "height": 40, "info": [ { "type": "BAR_CODE", "width": 30, "height": 30, "x": 5, "y": 5, "value": "ABC-abc-1234" } ] }; var err = new TError; var ok = printer.print(data, err); if (!ok) { print(err.text()); }
2.1.2 GT800 示例
- 在C++中调用
TZplPrinter printer; QVariantMap connParam { {"lpt", "LPT1"}, {"printer_type", "GT800"}, {"connection_type", "LPT"} }; printer.setConnectionParam(connParam); QVariantList pieces; pieces.append(QVariantMap{ {"type", "BAR_CODE"}, {"width", 30}, {"height", 30}, {"x", 5}, {"y", 5}, {"value", "ABC-abc-1234"} }); QVariantMap data{ {"count", 1}, {"width", 80}, {"height", 40}, {"info", pieces} }; TError err; bool ok = printer.print(data, &err); if (!ok) { qDebug() << err.text(); }
- 在Qt Script中调用
importPackage("ikm.printer"); var printer = new TZplPrinter; printer.setConnectionParam({ "lpt": "LPT1", "printer_type": "GT800", "connection_type": "LPT", }); var data = { "count": 1, // 打印张数 "width": 80, "height": 40, "info": [ { "type": "BAR_CODE", "width": 30, "height": 30, "x": 5, "y": 5, "value": "ABC-abc-1234" } ] }; var err = new TError; var ok = printer.print(data, err); if (!ok) { print(err.text()); }
- USB打印机映射到LPT端口
- 第一步:连接打印机并测试
- 1.使用USB线连接打印机
- 2.到官网下载GT800型号打印机的驱动并安装
- 3.打开驱动程序,使用如下方式进行打印测试
- 第二步:在系统中安装一个环路网卡
- 1.Windows系统,打开运行(Windows + R),输入 hdwwiz 命令添加硬件
- 2.选择"安装我手动从列表选择的硬件(高级)(M)",点下一步
- 3.在硬件类型列表框中选择"网络适配器",下一步
- 4.厂商选择Microsoft,网卡选择"Microsoft Loopback Adapter"(注意:win10上为"Microsoft KM-TEST 环回适配器")
- 5.下一步完成安装。
- 第三步:配置第一步中安装的网卡的IP地址
- 1.修改IPv4的IP地址,例如:192.168.1.110
- 2.修改子网掩码:255.255.255.0
- 第四步:共享打印机
- 1.找到打印机-属性-共享
- 2.勾选"共享这台打印机",填写共享名,例如:GT800
- 第五步:映射出刚才共享的打印机到LPT1端口,
- 1.在命令行端口运行: net use LPT1 \192.168.1.110
\GT800
/persistent:yes(注意:\192.168.1.110\GT800
根据前面配置的不同而不同) - 2.使用 net use 命令查看,显示如下表示配置成功:
- 1.在命令行端口运行: net use LPT1 \192.168.1.110
- 第一步:连接打印机并测试
2.2 TTscPrinter
2.2.1 示例
- 在C++中调用
TTscPrinter printer; QVariantMap connParam { {"host", "192.168.2.104"}, {"printer_name", "TSC TTP-244 Pro"} }; printer.setConnectionParam(connParam); QVariantList pieces; pieces.append(QVariantMap{ {"type", "BAR_CODE"}, {"width", 30}, {"height", 30}, {"x", 5}, {"y", 5}, {"value", "ABC-abc-1234"} }); QVariantMap data{ {"count", 1}, {"width", 80}, {"height", 40}, {"info", pieces} }; TError err; bool ok = printer.print(data, &err); if (!ok) { qDebug() << err.text(); }
- 在Qt Script中调用
importPackage("ikm.printer"); var printer = new TTscPrinter; printer.setConnectionParam({ "host": "192.168.2.104", "printer_name": "TSC TTP-244 Pro" }); var data = { "count": 1, // 打印张数 "width": 80, "height": 40, "info": [ { "type": "BAR_CODE", "width": 30, "height": 30, "x": 5, "y": 5, "value": "ABC-abc-1234" } ] }; var err = new TError; var ok = printer.print(data, err); if (!ok) { print(err.text()); }
2.3 info中的数据结构
目前支持BAR_CODE,QR_CODE,TEXT,PICTURE,LINE。
- 条形码 BAR_CODE
{ "type": "BAR_CODE", "x": 0, "y": 0, "width": 60, "height": 40, "value": "ABC-abc-1234" }
- 二维码 QR_CODE
{ "type": "QR_CODE", "x": 0, "y": 0, "width": 60, "height": 40, "value": "ABC-abc-1234" }
- 文本 TEXT
{ "type": "TEXT", "x": 0, "y": 0, "value": "ABC-abc-1234", "font_size": 12 }
- 图片 PICTURE
{ "type": "PICTURE", "x": 0, "y": 0, "width": 60, "height": 40, "value": "图片的Base64字符串" }
- 线段 LINE
{ "type": "LINE", "x1": 0, "y2": 0, "x2": 60, "y2": 40, "weight": 2 }