CPCL(Compressed Print Control Language)
一种常用于热敏打印机和标签打印机的指令语言
指令基本结构
CPCL 指令通常由以下部分组成:
以! 开头(加空格) 偏移量 dpi dpi 最大高度 打印份数(实测在有些打印机内份数不生效) 打印内容(打印指令都是以大写字母开头) PRIN执行打印指令
! 0 200 200 400 1 # 开头,定义页面宽度、高度、旋转角度等 PAGE-WIDTH 576 # 定义打印机的页宽(单位:像素) T 0 0 x y text # 文字打印指令 B 128 x y h w data # 条形码打印指令 LPLINE x1 y1 x2 y2 thickness # 画线指令 FORM # 结束指令,表示数据准备完成 PRINT # 发送打印命令基本打印命令
设置页面
! 0 200 200 400 1| 指令 | ! | 0 | 200 | 200 | 400 | 1 |
|---|---|---|---|---|---|---|
| 解释 | CPCL 指令的开始 | 保留参数,通常为 0 | Y 方向的分辨率(dpi) | X 方向的分辨率(dpi) | 页面高度(点) | 打印份数 |
纸张大小
PAGE-WIDTH 576文字打印
T 4 0 30 30 Hello, CPCL!
| T | 4 | 0 | 30 | 30 | Hello, CPCL! |
|---|---|---|---|---|---|
| 文字打印指令 | 字体类型 | 旋转角度 | 起始坐标 X | 起始坐标 Y | 打印文本 |
! 0 200 200 400 1 PAGE-WIDTH 576 T 4 0 30 30 Hello, CPCL! PRINT文字指令以TEXT为标记,字体名称\编号(不同打印机会有自己的内置字体) 文字大小标识 打印位置x、y点位坐标 打印内容
文字内容可通过SETBOLD、SETMAG等命令来加粗、放大
条形码打印
B 128 1 100 100 80 1234567890横VB 128 1 100 100 80 1234567890竖
| B | 128 | 50 | 80 | 50 | 2 | 12345678 |
|---|---|---|---|---|---|---|
| 条码指令 | 条码类型 | 高度 | 宽度 | X 坐标 | Y 坐标 | 条码内容 |
! 0 200 200 400 1 PAGE-WIDTH 576 B 128 1 100 100 80 1234567890 PRINT画线
LPLINE 20 50 200 50 2从 (20,50) 到 (200,50) 画一条宽度为 2 像素的线。
| LPLINE | 50 | 200 | 300 | 200 | 2 |
|---|---|---|---|---|---|
| 画线 指令 | 起点 X 坐标 | 起点 Y 坐标 | 终点 X 坐标 | 终点 Y 坐标 | 线的宽度度 |
! 0 200 200 400 1 PAGE-WIDTH 576 LPLINE 20 50 200 50 2 PRINT矩形绘制
| BOX | 20 | 30 | 200 | 150 | 3 |
|---|---|---|---|---|---|
| 画矩形 | 左上角 X | 左上角 Y | 右下角 X | 右下角 Y | 线的厚度 |
图片打印
PCX 50 50 !<LOGO.PCX| PCX | 50 | 50 | logo.pcx |
|---|---|---|---|
| 图片指令 | X 坐标 | Y 坐标 | 图片文件名 |
WARNING
CPCL 不支持 直接打印 PNG/JPG/BMP。 你可以先转换为 PCX 或 GRF 格式,再用 CPCL 代码调用打印。
二维码打印
B QR 50 100 M 2 U 6 12345678| B | QR | 50 | 100 | M 2 | U 6 | 12345678 |
|---|---|---|---|---|---|---|
| 二维码指令 | QR 码格式 | X 坐标 | Y 坐标 | 误差校正 | 单元大小 | 二维码内容 |