CPCL 指令
CPCL (Comtec Printer Control Language) 是一种用于便携式标签打印机的文本形式指令语言。
CPCL 指令使用可读的文本格式,每条指令由指令头和参数组成,参数之间使用空格分隔。
指令头 参数1 参数2 参数3 ...- 字符串需要用双引号
"包围 - 文本中包含双引号需转义为
["]
TEXT 4 0 100 100 "Hello World"TEXT 4 0 100 150 "Say ["]Hello["]"页面设置指令
Section titled “页面设置指令”创建页面 (!)
Section titled “创建页面 (!)”创建打印页面,设置页面尺寸和打印份数。
! 偏移 水平分辨率 垂直分辨率 标签高度 打印份数| 参数 | 说明 | 单位 |
|---|---|---|
| 偏移 | 页面偏移量 | dot |
| 水平分辨率 | 打印头水平分辨率 | DPI |
| 垂直分辨率 | 打印头垂直分辨率 | DPI |
| 标签高度 | 标签纸高度 | dot |
| 打印份数 | 打印的份数 | - |
示例:
! 0 200 200 400 1页面宽度 (PAGE-WIDTH)
Section titled “页面宽度 (PAGE-WIDTH)”设置页面宽度。
PAGE-WIDTH 宽度| 参数 | 说明 | 单位 |
|---|---|---|
| 宽度 | 页面宽度 | dot |
示例:
PAGE-WIDTH 576打印模式 (FORM/FEED)
Section titled “打印模式 (FORM/FEED)”设置打印机定位模式。
FORMFORM- 定位到下一标签(可在 PRINT 指令之后调用)FEED- 定位到标签(需在 PRINT 指令之前调用)
文本打印指令
Section titled “文本打印指令”文本 (TEXT/T)
Section titled “文本 (TEXT/T)”打印文本内容。
TEXT 字体 大小 X Y "内容"T 字体 大小 X Y "内容"| 参数 | 说明 |
|---|---|
| 字体 | 字体编号 |
| 大小 | 字体大小 |
| X | 文本起始 X 坐标(dot) |
| Y | 文本起始 Y 坐标(dot) |
| 内容 | 要打印的文本 |
| 字体枚举 | 字体编号 | 大小 | 点阵高度 |
|---|---|---|---|
| TSS16 | 55 | 0 | 16 |
| TSS20 | 6 | 0 | 20 |
| TSS24 | 24 | 0 | 24 |
| TSS28 | 7 | 0 | 28 |
| TSS32 | 4 | 0 | 32 |
示例:
TEXT 24 0 50 50 "产品名称"TEXT 7 0 50 100 "规格型号"T 4 0 50 150 "大号文字"旋转文本 (T90/T180/T270)
Section titled “旋转文本 (T90/T180/T270)”打印旋转角度的文本。
T90 字体 大小 X Y "内容"T180 字体 大小 X Y "内容"T270 字体 大小 X Y "内容"| 指令 | 旋转角度 |
|---|---|
| T | 0° (默认) |
| T90 | 90° |
| T180 | 180° |
| T270 | 270° |
文字放大 (SETMAG)
Section titled “文字放大 (SETMAG)”设置文字放大倍数。
SETMAG 横向倍数 纵向倍数| 参数 | 说明 | 范围 |
|---|---|---|
| 横向倍数 | 水平放大倍数 | 1-8 |
| 纵向倍数 | 垂直放大倍数 | 1-8 |
示例:
SETMAG 2 2TEXT 24 0 50 50 "放大两倍的文字"SETMAG 1 1加粗 (SETBOLD)
Section titled “加粗 (SETBOLD)”设置文字加粗。
SETBOLD 开关| 参数 | 说明 |
|---|---|
| 1 | 开启加粗 |
| 0 | 关闭加粗 |
示例:
SETBOLD 1TEXT 24 0 50 50 "加粗文字"SETBOLD 0下划线 (UNDERLINE)
Section titled “下划线 (UNDERLINE)”设置文字下划线。
UNDERLINE 开关| 参数 | 说明 |
|---|---|
| ON | 开启下划线 |
| OFF | 关闭下划线 |
示例:
UNDERLINE ONTEXT 24 0 50 50 "带下划线的文字"UNDERLINE OFF设置文本对齐方式。
CENTERLEFTRIGHT示例:
CENTERTEXT 24 0 0 50 "居中文本"LEFTTEXT 24 0 30 100 "左对齐文本"RIGHTTEXT 24 0 0 150 "右对齐文本"文字反白 (INVERSE-LINE)
Section titled “文字反白 (INVERSE-LINE)”打印反白文字。
INVERSE-LINE X Y 宽度 高度| 参数 | 说明 |
|---|---|
| X | 反白区域起始 X 坐标 |
| Y | 反白区域起始 Y 坐标 |
| 宽度 | 反白区域宽度 |
| 高度 | 反白区域高度 |
条码打印指令
Section titled “条码打印指令”一维条码 (BARCODE)
Section titled “一维条码 (BARCODE)”打印一维条码。
BARCODE 类型 窄条宽度 宽窄比 高度 X Y "内容"| 参数 | 说明 |
|---|---|
| 类型 | 条码类型 |
| 窄条宽度 | 窄条的宽度 |
| 宽窄比 | 宽条和窄条的比率 |
| 高度 | 条码高度(dot) |
| X | 条码起始 X 坐标 |
| Y | 条码起始 Y 坐标 |
| 内容 | 条码数据 |
支持的条码类型
Section titled “支持的条码类型”| 类型 | 说明 | 默认窄条宽度 |
|---|---|---|
| 128 | Code 128 | 2 |
| 39 | Code 39 | 2 |
| 93 | Code 93 | 1 |
| CODABAR | Codabar | 2 |
| EAN8 | EAN-8 | 2 |
| EAN13 | EAN-13 | 2 |
| UPCA | UPC-A | 2 |
| UPCE | UPC-E | 2 |
| I2OF5 | Interleaved 2 of 5 | 2 |
示例:
BARCODE 128 1 2 50 50 200 "1234567890"BARCODE EAN13 1 2 60 50 300 "6901234567890"打印旋转的条码。
VBARCODE 类型 窄条宽度 宽窄比 高度 X Y "内容"BARCODE90 类型 窄条宽度 宽窄比 高度 X Y "内容"BARCODE180 类型 窄条宽度 宽窄比 高度 X Y "内容"BARCODE270 类型 窄条宽度 宽窄比 高度 X Y "内容"| 指令 | 旋转角度 |
|---|---|
| BARCODE | 0° (默认) |
| VBARCODE | 90° |
| BARCODE90 | 90° |
| BARCODE180 | 180° |
| BARCODE270 | 270° |
二维码打印指令
Section titled “二维码打印指令”QR Code (BARCODE QR)
Section titled “QR Code (BARCODE QR)”打印二维码。
SETQRVER 纠错级别数值旋转角度QR X Y M 2 U 宽度纠错级别A,内容ENDQR| 参数 | 说明 |
|---|---|
| 纠错级别数值 | L=1, M=2, Q=3, H=4 |
| 旋转角度 | 0/90/180/270 |
| X | 二维码起始 X 坐标 |
| Y | 二维码起始 Y 坐标 |
| 宽度 | 单元格宽度 (2-20) |
| 纠错级别 | L/M/Q/H |
| 内容 | 二维码数据 |
| 级别 | 数值 | 纠错能力 |
|---|---|---|
| L | 1 | 7% |
| M | 2 | 15% |
| Q | 3 | 25% |
| H | 4 | 30% |
示例:
SETQRVER 20QR 50 100 M 2 U 6MA,https://example.comENDQR图形绘制指令
Section titled “图形绘制指令”画线 (LINE)
Section titled “画线 (LINE)”画直线(可画斜线)。
LINE X1 Y1 X2 Y2 宽度| 参数 | 说明 |
|---|---|
| X1 | 起始点 X 坐标 |
| Y1 | 起始点 Y 坐标 |
| X2 | 终点 X 坐标 |
| Y2 | 终点 Y 坐标 |
| 宽度 | 线条宽度 |
示例:
LINE 30 100 546 100 2LINE 30 100 200 300 1矩形边框 (BOX)
Section titled “矩形边框 (BOX)”画矩形边框。
BOX X1 Y1 X2 Y2 宽度| 参数 | 说明 |
|---|---|
| X1 | 左上角 X 坐标 |
| Y1 | 左上角 Y 坐标 |
| X2 | 右下角 X 坐标 |
| Y2 | 右下角 Y 坐标 |
| 宽度 | 边框线宽 |
示例:
BOX 30 50 546 350 2图片打印指令
Section titled “图片打印指令”图片 (EG/CG)
Section titled “图片 (EG/CG)”打印位图图片。
EG 字节宽度 高度 X Y 图片数据CG 字节宽度 高度 X Y 图片数据| 参数 | 说明 |
|---|---|
| 字节宽度 | 图片宽度/8 |
| 高度 | 图片高度(dot) |
| X | 图片起始 X 坐标 |
| Y | 图片起始 Y 坐标 |
| 图片数据 | 十六进制图片数据 |
水印 (WATERMARK)
Section titled “水印 (WATERMARK)”打印水印图片。
查询打印机状态
Section titled “查询打印机状态”{S}查询 SN 号
Section titled “查询 SN 号”{SN}查询打印机型号
Section titled “查询打印机型号”{M}查询固件版本
Section titled “查询固件版本”{V}{B}打印控制指令
Section titled “打印控制指令”打印 (PRINT)
Section titled “打印 (PRINT)”执行打印任务。每个 CPCL 任务必须以 PRINT 指令结束。
PRINT! 0 200 200 400 1PAGE-WIDTH 576CENTERSETMAG 2 2TEXT 24 0 0 30 "商品标签"SETMAG 1 1LEFTLINE 30 80 546 80 2TEXT 24 0 30 100 "名称: 有机苹果"TEXT 24 0 30 140 "规格: 500g/袋"TEXT 24 0 30 180 "产地: 山东烟台"SETBOLD 1TEXT 24 0 30 220 "价格: ¥25.90"SETBOLD 0BARCODE 128 1 2 50 100 280 "6901234567890"SETQRVER 20QR 400 100 M 2 U 5MA,https://example.com/product/123ENDQRPRINT! 0 200 200 800 1PAGE-WIDTH 576BOX 20 20 556 780 2CENTERSETMAG 2 2TEXT 24 0 0 40 "快递单"SETMAG 1 1LINE 20 90 556 90 2LEFTTEXT 24 0 40 110 "寄件人: 张三"TEXT 24 0 40 150 "电话: 138****1234"TEXT 24 0 40 190 "地址: 上海市浦东新区"LINE 20 230 556 230 1TEXT 24 0 40 250 "收件人: 李四"TEXT 24 0 40 290 "电话: 139****5678"TEXT 24 0 40 330 "地址: 北京市朝阳区xxx路xxx号"LINE 20 380 556 380 2CENTERBARCODE 128 2 2 80 0 420 "SF1234567890123"TEXT 7 0 0 520 "SF1234567890123"SETQRVER 20QR 200 580 M 2 U 8MA,SF1234567890123ENDQRPRINTSDK 集成
Section titled “SDK 集成”如需在应用中集成 CPCL 指令,请参阅对应语言的 SDK 文档:
- Dart SDK - Flutter 跨平台应用
- Java SDK - Android 原生应用
- JavaScript SDK - 微信小程序 / UniApp
- OpenHarmony SDK - HarmonyOS / OpenHarmony 应用
- Objective-C SDK - iOS 原生应用
- Swift SDK - iOS/macOS 应用