@microi.net/cli 6.0.8 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/assets/build-meta.json +5 -5
  7. package/cordis.patch.yml +1 -1
  8. package/package.json +1 -1
  9. package/scripts/mcp-server.js +96 -96
  10. package/scripts/microi-cli.js +1 -1
  11. package/scripts/microi-skills.meta.json +309 -309
  12. package/skills/.microi-skills-version.json +2 -2
  13. package/skills/.progressive-disclosure-manifest.json +13 -13
  14. package/skills/README.md +287 -287
  15. package/skills/ai-engine/SKILL.md +273 -273
  16. package/skills/ai-engine/references/ai-employees.md +48 -48
  17. package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
  18. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +2 -2
  19. package/skills/app-store/SKILL.md +3 -3
  20. package/skills/business-blueprint/SKILL.md +193 -193
  21. package/skills/datasource-engine/SKILL.md +93 -93
  22. package/skills/dos-orm/SKILL.md +105 -105
  23. package/skills/dos-orm/references/api-reference.md +229 -229
  24. package/skills/email-engine/SKILL.md +81 -81
  25. package/skills/email-engine/references/v8-email.md +34 -34
  26. package/skills/job-engine/SKILL.md +176 -176
  27. package/skills/message-notification/SKILL.md +156 -156
  28. package/skills/message-notification/references/contracts.md +102 -102
  29. package/skills/microi/SKILL.md +14 -14
  30. package/skills/microi-ai-app-auth.js +1 -1
  31. package/skills/microi-ai-application/SKILL.md +115 -115
  32. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  33. package/skills/microi-client-frontend/SKILL.md +19 -19
  34. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +10 -10
  35. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +10 -10
  36. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +10 -10
  37. package/skills/microi-codex/SKILL.md +130 -130
  38. package/skills/microi-codex-installer/SKILL.md +233 -233
  39. package/skills/microi-datasource-mapping/SKILL.md +122 -122
  40. package/skills/microi-db-schema/SKILL.md +175 -175
  41. package/skills/microi-db-schema/references/core-tables.md +695 -695
  42. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  43. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  44. package/skills/microi-db-schema/references/schema.md +646 -646
  45. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  46. package/skills/microi-deployment/SKILL.md +260 -258
  47. package/skills/microi-deployment/references/deployment-matrix.md +109 -109
  48. package/skills/microi-docs-coverage/SKILL.md +133 -133
  49. package/skills/microi-docs-coverage/references/capability-map.md +91 -91
  50. package/skills/microi-form-engine/SKILL.md +338 -338
  51. package/skills/microi-form-engine/references/component-catalog.md +218 -218
  52. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  53. package/skills/microi-left-right-layout/SKILL.md +141 -141
  54. package/skills/microi-microservice/SKILL.md +353 -348
  55. package/skills/microi-microservice/references/runtime-delivery.md +282 -282
  56. package/skills/microi-solution-quotation/SKILL.md +78 -78
  57. package/skills/microi-sso/SKILL.md +102 -102
  58. package/skills/microi-sso/references/acceptance.md +51 -51
  59. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  60. package/skills/microi-sso/references/inbound.md +53 -53
  61. package/skills/microi-sso/references/outbound.md +43 -43
  62. package/skills/microi-system-delivery/SKILL.md +18 -16
  63. package/skills/microi-system-delivery/references/context-quality.md +3 -3
  64. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +11 -11
  65. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +12 -8
  66. package/skills/microi-system-delivery/references/progressive-03-/345/256/211/345/205/250/344/270/216/350/267/250/347/253/257/351/252/214/346/224/266.md +8 -8
  67. package/skills/module-engine/SKILL.md +297 -297
  68. package/skills/module-engine/references/module-config.md +204 -204
  69. package/skills/ocr-engine/SKILL.md +113 -113
  70. package/skills/page-engine/SKILL.md +24 -24
  71. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +10 -10
  72. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +12 -12
  73. package/skills/performance-testing/SKILL.md +227 -227
  74. package/skills/print-engine/SKILL.md +259 -259
  75. package/skills/production-readonly-audit/SKILL.md +41 -41
  76. package/skills/report-engine/SKILL.md +83 -83
  77. package/skills/search-engine/SKILL.md +75 -75
  78. package/skills/spider-engine/SKILL.md +190 -190
  79. package/skills/system-observability/SKILL.md +264 -264
  80. package/skills/system-observability/references/memory-incident-triage.md +77 -77
  81. package/skills/translate-engine/SKILL.md +140 -140
  82. package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
  83. package/skills/ui-design/references/design-pattern-library.md +184 -184
  84. package/skills/ui-design/references/mci-design-contract.md +163 -163
  85. package/skills/ui-design/references/motion-and-media.md +78 -78
  86. package/skills/ui-design/references/product-flow-recipes.md +94 -94
  87. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  88. package/skills/unity-integration/SKILL.md +178 -178
  89. package/skills/unity-integration/references/ai-app-delivery.md +119 -119
  90. package/skills/unity-integration/references/sdk-api.md +82 -82
  91. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  92. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  93. package/skills/v8-cache-pattern/SKILL.md +320 -320
  94. package/skills/v8-debugging/SKILL.md +284 -284
  95. package/skills/v8-explorer-tree/SKILL.md +228 -228
  96. package/skills/v8-file-upload/SKILL.md +1 -1
  97. package/skills/v8-file-upload/references/cdn-alias-repair.md +13 -13
  98. package/skills/v8-formengine-http/SKILL.md +238 -238
  99. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  100. package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
  101. package/skills/v8-image-processing/SKILL.md +190 -190
  102. package/skills/v8-image-processing/references/api-reference.md +623 -623
  103. package/skills/v8-mongodb/SKILL.md +201 -201
  104. package/skills/v8-mq-mqtt/references/mqtt-production.md +352 -352
  105. package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
  106. package/skills/v8-sql-query/SKILL.md +302 -302
  107. package/skills/v8-tcp-integration/SKILL.md +158 -158
  108. package/skills/v8-template-engine/SKILL.md +167 -167
  109. package/skills/v8-utilities/SKILL.md +104 -104
  110. package/skills/v8-utilities/references/client-api-index.md +143 -143
  111. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  112. package/skills/v8-utilities/references/server-api-index.md +188 -188
  113. package/skills/v8-workflow/references/workflow-configuration.md +49 -49
  114. package/skills/vision-engine/SKILL.md +160 -160
  115. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  116. package/skills/workspace-conventions/SKILL.md +15 -3
  117. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +33 -33
  118. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +34 -34
  119. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +6 -6
@@ -1,135 +1,135 @@
1
- # V8.Print TSC、CPCL 适配与 ESC/POS 源码 API
2
-
3
- 本表直接按 `Microi.Client/src/utils/ble/tsc.js`、`esc.js`、
4
- `printer-compatibility.js` 与编码文件整理。方法名
5
- (包括历史拼写)必须与源码完全一致,不能根据打印机手册自行改名。
6
-
7
- ## 目录
8
-
9
- - [构建器与编码](#构建器与编码)
10
- - [TSC/TSPL 的 28 个方法](#tsctspl-的-28-个方法)
11
- - [ZICOX CC4 的 CPCL 映射](#zicox-cc4-的-cpcl-映射)
12
- - [ESC/POS 的 25 个方法](#escpos-的-25-个方法)
13
- - [参数与组合规则](#参数与组合规则)
14
-
15
- ## 构建器与编码
16
-
17
- ```javascript
18
- var tsc = V8.Print.createNew();
19
- var esc = V8.Print.createNewESC();
20
- ```
21
-
22
- 两个构建器都把指令累积到普通字节数组,`getData()` 返回该数组。TSC 返回值还带不可枚举
23
- 协议/操作元数据:普通遍历与 GP-M322 字节值不变,CC4 发送前据此生成 CPCL。不要复制或
24
- 序列化 TSC 数组后再交给 `prepareSend`。TSC 的全部文本命令、
25
- ESC 的 `setText` 和二维码内容通过本地 `TextEncoder('gb18030', {
26
- NONSTANDARD_allowLegacyEncoding: true })` 编码;映射表来自同目录的
27
- `encoding-indexes.js`,不需要网络请求。
28
-
29
- ## TSC/TSPL 的 28 个方法
30
-
31
- | 方法 | 当前生成的指令/作用 |
32
- |---|---|
33
- | `init()` | 空操作,历史兼容入口 |
34
- | `addCommand(content)` | 以 GB18030 追加原始 TSC 文本;只用于固定可信命令 |
35
- | `setSize(width,height)` | `SIZE width mm,height mm` |
36
- | `setSpeed(speed)` | `SPEED speed` |
37
- | `setDensity(density)` | `DENSITY density` |
38
- | `setGap(gap)` | `GAP gap mm,0 mm` |
39
- | `setBline(bline)` | `BLINE bline mm,0 mm`,黑标纸 |
40
- | `setCountry(country)` | `COUNTRY country` |
41
- | `setCodepage(codepage)` | `CODEPAGE codepage` |
42
- | `setCls()` | `CLS`,清除图像缓冲区 |
43
- | `setFeed(feed)` | `FEED feed`,向前走纸 |
44
- | `setBackFeed(backup)` | `BACKFEED backup`,回拉 |
45
- | `setDirection(direction)` | `DIRECTION direction` |
46
- | `setReference(x,y)` | `REFERENCE x,y`,坐标原点 |
47
- | `setFromfeed()` | 注意源码拼写;实际生成 `FORMFEED` |
48
- | `setHome()` | `HOME`,定位下一张标签 |
49
- | `setSound(level,interval)` | `SOUND level,interval` |
50
- | `setLimitfeed(limit)` | `LIMITFEED limit` |
51
- | `setBar(x,y,width,height)` | `BAR` 线条 |
52
- | `setBox(x1,y1,x2,y2,thickness)` | `BOX` 方框 |
53
- | `setErase(x,y,width,height)` | `ERASE` 清除区域 |
54
- | `setReverse(x,y,width,height)` | `REVERSE` 区域反相 |
55
- | `setText(x,y,font,xScale,yScale,text)` | `TEXT`;旋转值在源码中固定为 `0` |
56
- | `setQR(x,y,level,width,mode,content)` | `QRCODE`;旋转值固定为 `0` |
57
- | `setBarCode(x,y,type,height,readable,narrow,wide,content)` | `BARCODE`;旋转值固定为 `0` |
58
- | `setBitmap(x,y,mode,imageData)` | 生成 TSC `BITMAP` 二进制数据 |
59
- | `setPagePrint()` | `PRINT 1,1` |
60
- | `getData()` | 返回当前字节数组 |
61
-
62
- 最小顺序通常是 `setSize` → `setGap`/`setBline` → `setCls` → 内容 →
63
- `setPagePrint` → `getData`。字体名、条码类型、纸张传感器、速度和浓度由打印机固件决定,
64
- 构建器不验证范围。
65
-
66
- ## ZICOX CC4 的 CPCL 映射
67
-
68
- | TSC 方法 | CC4 CPCL 结果 |
69
- |---|---|
70
- | `setSize(w,h)` | 203 dpi 下按 `8 dots/mm` 生成页宽/页高 |
71
- | `setSpeed` / `setDensity` | `SPEED` / `CONTRAST`,钳制到当前安全范围 |
72
- | `setGap` / `setBline` | `GAP-SENSE` / `BAR-SENSE` |
73
- | `setFeed` / `setBackFeed` | `POSTFEED` / `PREFEED` |
74
- | `setDirection(0/1)` | `ZPROTATE` / `ZPROTATE180` |
75
- | `setReference` | 转换坐标时叠加参考点 |
76
- | `setBar` / `setBox` / `setReverse` | `LINE` / `BOX` / `INVERSE-LINE` |
77
- | `setText` | `SETMAG` + `T`,字体名按 16/24/32 档映射 |
78
- | `setBarCode` | `BARCODE`,可选 `BARCODE-TEXT` |
79
- | `setQR` | 厂家 SDK 格式 `BARCODE QR ...` + 数据 + `ENDQR` |
80
- | `setBitmap` | `CG` + 原始单色位图字节 |
81
- | `setPagePrint` | 最终统一补 `FORM` + `PRINT`,每份必须恰好一次 |
82
-
83
- `init`、`setCls` 不输出。`addCommand`、`setCountry`、`setCodepage`、`setFromfeed`、
84
- `setHome`、`setSound`、`setLimitfeed`、`setErase` 与未知方法会抛错,并且适配发生在分包前,
85
- 所以失败时不得写入任何一包。该白名单只表达当前有证据的等价转换,不代表 CC4 固件不具备
86
- 其它 CPCL 能力。
87
-
88
- `createNewESC()` 的数组标记为 ESC/POS,CC4 直接原样发送,不进入 CPCL 转换。
89
-
90
- ## ESC/POS 的 25 个方法
91
-
92
- | 方法 | 当前生成的指令/作用 |
93
- |---|---|
94
- | `init()` | ESC `@` 初始化 |
95
- | `setText(content)` | 以 GB18030 追加文字 |
96
- | `setFontSize(n)` | GS `! n` |
97
- | `bold(n)` | ESC `E n` |
98
- | `setUnderline(n)` | ESC `- n` |
99
- | `setUnderline2(n)` | FS `- n` |
100
- | `setSelectSizeOfModuleForQRCode(n)` | 设置二维码模块尺寸,源码钳制到 1–15 |
101
- | `setSelectErrorCorrectionLevelForQRCode(n)` | 设置二维码纠错值,源码不验证范围 |
102
- | `setStoreQRCodeData(content)` | 以 GB18030 暂存二维码内容 |
103
- | `setPrintQRCode()` | 输出已暂存二维码 |
104
- | `setHorTab()` | 水平 Tab |
105
- | `setAbsolutePrintPosition(where)` | 设置绝对横向位置 |
106
- | `setRelativePrintPositon(where)` | 设置相对横向位置;`Positon` 是现有公开拼写 |
107
- | `setSelectJustification(which)` | 对齐:常见值 0 左、1 中、2 右 |
108
- | `space(n)` | 设置水平制表位置 |
109
- | `setLeftMargin(n)` | 设置左边距 |
110
- | `textMarginRight(n)` | 设置字符右间距 |
111
- | `rowSpace(n)` | 设置行间距 |
112
- | `setPrintingAreaWidth(width)` | 设置打印区域宽度 |
113
- | `setSound(n,t)` | 蜂鸣器;大于 9 钳制为 9,小于 0 改为 1,0 会原样保留 |
114
- | `setBitmap(imageData)` | 生成 ESC/POS 光栅位图数据 |
115
- | `setPrint()` | 换行/打印当前行 |
116
- | `setPrintAndFeed(feed)` | 打印并走纸指定单位 |
117
- | `setPrintAndFeedRow(row)` | 打印并走纸指定行数 |
118
- | `getData()` | 返回当前字节数组 |
119
-
120
- ESC/POS 二维码需要按顺序调用尺寸、纠错、`setStoreQRCodeData`、
121
- `setPrintQRCode`。源码中虽保留条码类型数组,但没有公开 ESC/POS 条码方法,不能虚构
122
- `setBarCode`;条码需求应先确认型号并扩展实现。
123
-
124
- ## 参数与组合规则
125
-
126
- - `setBitmap` 的参数是 ImageData 风格对象:`width`、`height`、RGBA `data`。它不是图片
127
- URL、Base64 或 DOM `<img>`;调用前先在 Canvas 得到 `getImageData()`。
128
- - 当前位图算法按透明/非透明像素进行非常简单的黑白映射,不做通用抖动和灰度阈值处理;
129
- 大图先缩放、二值化,逐型号验证方向、颜色和内存。
130
- - TSC `setText`、`setQR`、`setBarCode` 把值放入带双引号的协议字段。移除双引号、CR/LF、
131
- NUL 和控制字符,限制长度;不要让接口返回值直达 `addCommand`。
132
- - ESC 参数最终作为单字节或低/高字节写入,负数、浮点数、超范围值可能截断或生成无效命令。
133
- 坐标、宽度、走纸、字号和蜂鸣器参数应先转为目标机型允许的整数。
134
- - GB18030 只解决字节编码,不能替代打印机代码页、中文字库和字体配置。二维码通常比文字
135
- 字库更能稳定承载 Unicode 业务标识,但仍受打印机二维码命令实现限制。
1
+ # V8.Print TSC、CPCL 适配与 ESC/POS 源码 API
2
+
3
+ 本表直接按 `Microi.Client/src/utils/ble/tsc.js`、`esc.js`、
4
+ `printer-compatibility.js` 与编码文件整理。方法名
5
+ (包括历史拼写)必须与源码完全一致,不能根据打印机手册自行改名。
6
+
7
+ ## 目录
8
+
9
+ - [构建器与编码](#构建器与编码)
10
+ - [TSC/TSPL 的 28 个方法](#tsctspl-的-28-个方法)
11
+ - [ZICOX CC4 的 CPCL 映射](#zicox-cc4-的-cpcl-映射)
12
+ - [ESC/POS 的 25 个方法](#escpos-的-25-个方法)
13
+ - [参数与组合规则](#参数与组合规则)
14
+
15
+ ## 构建器与编码
16
+
17
+ ```javascript
18
+ var tsc = V8.Print.createNew();
19
+ var esc = V8.Print.createNewESC();
20
+ ```
21
+
22
+ 两个构建器都把指令累积到普通字节数组,`getData()` 返回该数组。TSC 返回值还带不可枚举
23
+ 协议/操作元数据:普通遍历与 GP-M322 字节值不变,CC4 发送前据此生成 CPCL。不要复制或
24
+ 序列化 TSC 数组后再交给 `prepareSend`。TSC 的全部文本命令、
25
+ ESC 的 `setText` 和二维码内容通过本地 `TextEncoder('gb18030', {
26
+ NONSTANDARD_allowLegacyEncoding: true })` 编码;映射表来自同目录的
27
+ `encoding-indexes.js`,不需要网络请求。
28
+
29
+ ## TSC/TSPL 的 28 个方法
30
+
31
+ | 方法 | 当前生成的指令/作用 |
32
+ |---|---|
33
+ | `init()` | 空操作,历史兼容入口 |
34
+ | `addCommand(content)` | 以 GB18030 追加原始 TSC 文本;只用于固定可信命令 |
35
+ | `setSize(width,height)` | `SIZE width mm,height mm` |
36
+ | `setSpeed(speed)` | `SPEED speed` |
37
+ | `setDensity(density)` | `DENSITY density` |
38
+ | `setGap(gap)` | `GAP gap mm,0 mm` |
39
+ | `setBline(bline)` | `BLINE bline mm,0 mm`,黑标纸 |
40
+ | `setCountry(country)` | `COUNTRY country` |
41
+ | `setCodepage(codepage)` | `CODEPAGE codepage` |
42
+ | `setCls()` | `CLS`,清除图像缓冲区 |
43
+ | `setFeed(feed)` | `FEED feed`,向前走纸 |
44
+ | `setBackFeed(backup)` | `BACKFEED backup`,回拉 |
45
+ | `setDirection(direction)` | `DIRECTION direction` |
46
+ | `setReference(x,y)` | `REFERENCE x,y`,坐标原点 |
47
+ | `setFromfeed()` | 注意源码拼写;实际生成 `FORMFEED` |
48
+ | `setHome()` | `HOME`,定位下一张标签 |
49
+ | `setSound(level,interval)` | `SOUND level,interval` |
50
+ | `setLimitfeed(limit)` | `LIMITFEED limit` |
51
+ | `setBar(x,y,width,height)` | `BAR` 线条 |
52
+ | `setBox(x1,y1,x2,y2,thickness)` | `BOX` 方框 |
53
+ | `setErase(x,y,width,height)` | `ERASE` 清除区域 |
54
+ | `setReverse(x,y,width,height)` | `REVERSE` 区域反相 |
55
+ | `setText(x,y,font,xScale,yScale,text)` | `TEXT`;旋转值在源码中固定为 `0` |
56
+ | `setQR(x,y,level,width,mode,content)` | `QRCODE`;旋转值固定为 `0` |
57
+ | `setBarCode(x,y,type,height,readable,narrow,wide,content)` | `BARCODE`;旋转值固定为 `0` |
58
+ | `setBitmap(x,y,mode,imageData)` | 生成 TSC `BITMAP` 二进制数据 |
59
+ | `setPagePrint()` | `PRINT 1,1` |
60
+ | `getData()` | 返回当前字节数组 |
61
+
62
+ 最小顺序通常是 `setSize` → `setGap`/`setBline` → `setCls` → 内容 →
63
+ `setPagePrint` → `getData`。字体名、条码类型、纸张传感器、速度和浓度由打印机固件决定,
64
+ 构建器不验证范围。
65
+
66
+ ## ZICOX CC4 的 CPCL 映射
67
+
68
+ | TSC 方法 | CC4 CPCL 结果 |
69
+ |---|---|
70
+ | `setSize(w,h)` | 203 dpi 下按 `8 dots/mm` 生成页宽/页高 |
71
+ | `setSpeed` / `setDensity` | `SPEED` / `CONTRAST`,钳制到当前安全范围 |
72
+ | `setGap` / `setBline` | `GAP-SENSE` / `BAR-SENSE` |
73
+ | `setFeed` / `setBackFeed` | `POSTFEED` / `PREFEED` |
74
+ | `setDirection(0/1)` | `ZPROTATE` / `ZPROTATE180` |
75
+ | `setReference` | 转换坐标时叠加参考点 |
76
+ | `setBar` / `setBox` / `setReverse` | `LINE` / `BOX` / `INVERSE-LINE` |
77
+ | `setText` | `SETMAG` + `T`,字体名按 16/24/32 档映射 |
78
+ | `setBarCode` | `BARCODE`,可选 `BARCODE-TEXT` |
79
+ | `setQR` | 厂家 SDK 格式 `BARCODE QR ...` + 数据 + `ENDQR` |
80
+ | `setBitmap` | `CG` + 原始单色位图字节 |
81
+ | `setPagePrint` | 最终统一补 `FORM` + `PRINT`,每份必须恰好一次 |
82
+
83
+ `init`、`setCls` 不输出。`addCommand`、`setCountry`、`setCodepage`、`setFromfeed`、
84
+ `setHome`、`setSound`、`setLimitfeed`、`setErase` 与未知方法会抛错,并且适配发生在分包前,
85
+ 所以失败时不得写入任何一包。该白名单只表达当前有证据的等价转换,不代表 CC4 固件不具备
86
+ 其它 CPCL 能力。
87
+
88
+ `createNewESC()` 的数组标记为 ESC/POS,CC4 直接原样发送,不进入 CPCL 转换。
89
+
90
+ ## ESC/POS 的 25 个方法
91
+
92
+ | 方法 | 当前生成的指令/作用 |
93
+ |---|---|
94
+ | `init()` | ESC `@` 初始化 |
95
+ | `setText(content)` | 以 GB18030 追加文字 |
96
+ | `setFontSize(n)` | GS `! n` |
97
+ | `bold(n)` | ESC `E n` |
98
+ | `setUnderline(n)` | ESC `- n` |
99
+ | `setUnderline2(n)` | FS `- n` |
100
+ | `setSelectSizeOfModuleForQRCode(n)` | 设置二维码模块尺寸,源码钳制到 1–15 |
101
+ | `setSelectErrorCorrectionLevelForQRCode(n)` | 设置二维码纠错值,源码不验证范围 |
102
+ | `setStoreQRCodeData(content)` | 以 GB18030 暂存二维码内容 |
103
+ | `setPrintQRCode()` | 输出已暂存二维码 |
104
+ | `setHorTab()` | 水平 Tab |
105
+ | `setAbsolutePrintPosition(where)` | 设置绝对横向位置 |
106
+ | `setRelativePrintPositon(where)` | 设置相对横向位置;`Positon` 是现有公开拼写 |
107
+ | `setSelectJustification(which)` | 对齐:常见值 0 左、1 中、2 右 |
108
+ | `space(n)` | 设置水平制表位置 |
109
+ | `setLeftMargin(n)` | 设置左边距 |
110
+ | `textMarginRight(n)` | 设置字符右间距 |
111
+ | `rowSpace(n)` | 设置行间距 |
112
+ | `setPrintingAreaWidth(width)` | 设置打印区域宽度 |
113
+ | `setSound(n,t)` | 蜂鸣器;大于 9 钳制为 9,小于 0 改为 1,0 会原样保留 |
114
+ | `setBitmap(imageData)` | 生成 ESC/POS 光栅位图数据 |
115
+ | `setPrint()` | 换行/打印当前行 |
116
+ | `setPrintAndFeed(feed)` | 打印并走纸指定单位 |
117
+ | `setPrintAndFeedRow(row)` | 打印并走纸指定行数 |
118
+ | `getData()` | 返回当前字节数组 |
119
+
120
+ ESC/POS 二维码需要按顺序调用尺寸、纠错、`setStoreQRCodeData`、
121
+ `setPrintQRCode`。源码中虽保留条码类型数组,但没有公开 ESC/POS 条码方法,不能虚构
122
+ `setBarCode`;条码需求应先确认型号并扩展实现。
123
+
124
+ ## 参数与组合规则
125
+
126
+ - `setBitmap` 的参数是 ImageData 风格对象:`width`、`height`、RGBA `data`。它不是图片
127
+ URL、Base64 或 DOM `<img>`;调用前先在 Canvas 得到 `getImageData()`。
128
+ - 当前位图算法按透明/非透明像素进行非常简单的黑白映射,不做通用抖动和灰度阈值处理;
129
+ 大图先缩放、二值化,逐型号验证方向、颜色和内存。
130
+ - TSC `setText`、`setQR`、`setBarCode` 把值放入带双引号的协议字段。移除双引号、CR/LF、
131
+ NUL 和控制字符,限制长度;不要让接口返回值直达 `addCommand`。
132
+ - ESC 参数最终作为单字节或低/高字节写入,负数、浮点数、超范围值可能截断或生成无效命令。
133
+ 坐标、宽度、走纸、字号和蜂鸣器参数应先转为目标机型允许的整数。
134
+ - GB18030 只解决字节编码,不能替代打印机代码页、中文字库和字体配置。二维码通常比文字
135
+ 字库更能稳定承载 Unicode 业务标识,但仍受打印机二维码命令实现限制。