日期:2026-07-31
范围:仅调整 USB/CSN 打印路径,串口打印路径保持不变
将 USB 热敏打印小票复刻为参考照片中的信息层级和视觉结构。保留现有业务字段来源、数字票生成流程和二维码内容,不修改车辆入场、结算或扫码出场逻辑。
USB 小票自上而下按以下顺序打印:
Parking Ticket Font A、双宽、加粗、居中
{lotName} Font B、居中
------------------------------------------ Font B、42 字符
PARK AT YOUR OWN RISK Font B、居中
{lotName} A-General Car Font B、左对齐
In-Time::{entryTime} Font A、左对齐
InGate::{channelCode} Font A、左对齐,可选
Slip No::{ticketID} Font A、左对齐
Veh No::{plateNo} Font A、双宽、加粗、可选
[二维码] 居中,宽度参数 8
SCAN AND PAY WITH NEW Font B、居中
THE CANADIA BANK APP Font B、居中
[全切纸]
| 票面字段 | 数据来源 | 规则 |
|---|---|---|
| 停车场名称 | parking_lot.lot_name |
标题下方显示一次,并在车型行再次显示 |
| 车型 | 固定文本 | A-General Car |
| 入场时间 | 打印时的本地时间 | 格式 02-01-2006 15:04:05 |
| 入口 | API 请求的 channel_code |
空值时省略整行 |
| 票号 | digital_ticket.id |
Slip No::{id} |
| 车牌 | API 请求的 plate_number |
空值时省略整行 |
| 二维码 | digital_ticket.ticket_no |
保留现有 32 位十六进制票号内容 |
Pos_Text。GS ! 0x10,打印后使用 GS ! 0x00 恢复正常尺寸并关闭粗体。GS ! 0x10 双宽和加粗;打印后立即恢复正常尺寸和粗细。Pos_Qrcode,宽度参数由 4 调整为 8。将 USB 票面的排版定义从设备调用中抽离为可测试的操作序列:
Csn_WriteData、csn_QRCode、走纸和切纸函数。PrintTicket 仍负责读取打印机配置、打开端口、执行票面和更新设备状态。online。新增 USB 布局单元测试,至少验证:
SCAN AND PAY WITH NEW 和 THE CANADIA BANK APP 两行。