taro-bluetooth-print 2.9.4 โ 2.9.6
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.
- package/CHANGELOG.md +44 -396
- package/README.md +197 -132
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/drivers/CpclDriver.d.ts +9 -4
- package/dist/types/drivers/ZplDriver.d.ts +9 -9
- package/dist/types/queue/PrintQueue.d.ts +1 -0
- package/package.json +12 -2
- package/src/adapters/WebBluetoothAdapter.ts +5 -2
- package/src/drivers/CpclDriver.ts +34 -7
- package/src/drivers/ZplDriver.ts +31 -12
- package/src/queue/PrintQueue.ts +9 -1
- package/src/services/ConnectionManager.ts +7 -3
- package/src/services/PrinterStatus.ts +5 -1
package/README.md
CHANGED
|
@@ -1,95 +1,105 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<a href="https://www.npmjs.com/package/taro-bluetooth-print" target="_blank"><img src="https://img.shields.io/npm/v/taro-bluetooth-print?style=flat-square&color=4338ca" alt="npm version"></a>
|
|
5
|
-
<a href="https://www.npmjs.com/package/taro-bluetooth-print" target="_blank"><img src="https://img.shields.io/npm/dm/taro-bluetooth-print?style=flat-square&color=4338ca" alt="downloads"></a>
|
|
6
|
-
<a href="https://github.com/agions/taro-bluetooth-print/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/npm/l/taro-bluetooth-print?style=flat-square&color=4338ca" alt="license"></a>
|
|
7
|
-
<a href="https://github.com/agions/taro-bluetooth-print" target="_blank"><img src="https://img.shields.io/github/stars/agions/taro-bluetooth-print?style=flat-square" alt="stars"></a>
|
|
8
|
-
<a href="https://github.com/agions/taro-bluetooth-print" target="_blank"><img src="https://img.shields.io/github/forks/agions/taro-bluetooth-print?style=flat-square" alt="forks"></a>
|
|
9
|
-
<a href="https://bundlephobia.com/package/taro-bluetooth-print" target="_blank"><img src="https://img.shields.io/bundlephobia/minzip/taro-bluetooth-print?style=flat-square" alt="bundle size"></a>
|
|
10
|
-
</p>
|
|
3
|
+
# ๐จ๏ธ Taro Bluetooth Print
|
|
11
4
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
**่ฝป้็บงใ้ซๆง่ฝ็ Taro ่ทจ็ซฏ่็ๆๅฐๅบ โ ่ฆ็ 7 ๅคงๅนณๅฐใ8 ็งๆๅฐๅ่ฎฎ๏ผๅผ็ฎฑๅณ็จ**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/taro-bluetooth-print)
|
|
8
|
+
[](https://www.npmjs.com/package/taro-bluetooth-print)
|
|
9
|
+
[](https://github.com/agions/taro-bluetooth-print/blob/main/LICENSE)
|
|
10
|
+
[](https://github.com/agions/taro-bluetooth-print)
|
|
11
|
+
[](https://github.com/agions/taro-bluetooth-print)
|
|
12
|
+
[](https://bundlephobia.com/package/taro-bluetooth-print)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## โจ ็นๆงๆป่ง
|
|
19
19
|
|
|
20
|
-
### ๅบ็ก่ฝๅ
|
|
20
|
+
### ๐ก ๅบ็ก่ฝๅ
|
|
21
21
|
|
|
22
22
|
| ่ฝๅ | ่ฏดๆ |
|
|
23
|
-
|
|
24
|
-
| ๅคๅนณๅฐ้้
|
|
|
25
|
-
| ๅคๅ่ฎฎ้ฉฑๅจ | ESC/POS๏ผ็ญๆ๏ผใTSPL/ZPL/CPCL๏ผๆ ็ญพ๏ผใSTAR
|
|
26
|
-
| ้พๅผ่ฐ็จ | `printer.text(...).feed().qr(...).cut().print()
|
|
27
|
-
| TypeScript |
|
|
28
|
-
|
|
|
23
|
+
|:-----|:-----|
|
|
24
|
+
| ๅคๅนณๅฐ้้
| ๅพฎไฟก / ๆฏไปๅฎ / ็พๅบฆ / ๅญ่่ทณๅจ / QQ ๅฐ็จๅบ๏ผH5 WebBluetooth๏ผReact Native |
|
|
25
|
+
| ๅคๅ่ฎฎ้ฉฑๅจ | ESC/POS๏ผ็ญๆ๏ผใTSPL / ZPL / CPCL๏ผๆ ็ญพ๏ผใSTAR / ไฝณๅ / ่ฏ็จ / ๆๆฎ็็น |
|
|
26
|
+
| ้พๅผ่ฐ็จ API | `printer.text(...).feed().qr(...).cut().print()` โ IDE ๅ
จ่ชๅจ่กฅๅ
จ |
|
|
27
|
+
| TypeScript ไธฅๆ ผๆจกๅผ | ๅฎๆด็ฑปๅๅฎไน๏ผ้ถ `any` ๆด้ฒ๏ผๆ ๅค้จ่ฟ่กๆถไพ่ต |
|
|
28
|
+
| ๅค็ผ็ ๆฏๆ | GBK / GB2312 / Big5 / UTF-8 / EUC-KR / Shift-JIS / ISO-2022-JP |
|
|
29
|
+
| ้ถ่ฟ่กๆถไพ่ต | ็ไบงๅ
ๆ ็ฌฌไธๆน่ฟ่กๆถไพ่ต๏ผไฝ็งฏๅฏๆง |
|
|
29
30
|
|
|
30
|
-
### ้ซ็บงๆๅฐ
|
|
31
|
+
### ๐จ๏ธ ้ซ็บงๆๅฐ
|
|
31
32
|
|
|
32
33
|
| ่ฝๅ | ่ฏดๆ |
|
|
33
|
-
|
|
34
|
-
| ๅพ็ๆๅฐ | Floyd-Steinberg ๆๅจ็ฎๆณ๏ผ6 ็งๆๅจๆจกๅผ๏ผRGBA โ
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
34
|
+
|:-----|:-----|
|
|
35
|
+
| ๅพ็ๆๅฐ | Floyd-Steinberg ๆๅจ็ฎๆณ๏ผ6 ็งๆๅจๆจกๅผ๏ผRGBA โ ้ป็ฝไฝๅพ่ช้ๅบ่ฝฌๆข๏ผESC/POS/ZPL/TSPL/STAR ๅ
จ้ฉฑๅจๆฏๆ |
|
|
36
|
+
| ZPL ๅพๅ็ผ็ | `ZplDriver.image()` โ ^GFA ๅฝไปค๏ผไฝๅพ โ ๅๅ
ญ่ฟๅถ็ผ็ ๏ผๆฏๆ ZD420 ็ญ Zebra ๆ ็ญพๆบ |
|
|
37
|
+
| CPCL Logo ไธ่ฝฝ | `CpclDriver.downloadLogo()` โ CG ๅ็ผฉๅพๅฝขๅฝไปค๏ผๅฎๅฎไนๅญๅจ๏ผๆฏๆ HP ็ญ็งปๅจๆๅฐๆบ |
|
|
38
|
+
| ไบ็ปด็ / ๆก็ | ๅ็ๆไปคๆฏๆ Code128 / EAN / UPC / QR / PDF417 ็ญ 10+ ๆ ผๅผ |
|
|
39
|
+
| ๆจกๆฟๅผๆ | ๆฏๆ `loop` ๅพช็ฏ / `condition` ๆกไปถ / `border` ่พนๆก / `table` ่กจๆ ผ๏ผๅฐ็ฅจๆ ็ญพไธ้ฎๆธฒๆ |
|
|
40
|
+
| ไปปๅก็ๅฝๅจๆ | ๅฎๆด็ๆๅฐไปปๅกๆๅ / ๆขๅค / ๅๆถๆงๅถ |
|
|
38
41
|
| ๆๅฐ้ข่ง | ESC/POS ๅฝไปคๅฎๆถๆธฒๆไธบ Canvas ๅพๅ๏ผ่ฐ่ฏๆ่งๅณๆๅพ |
|
|
39
42
|
|
|
40
|
-
### ่ฟ็ปด็ฎก็
|
|
43
|
+
### โ๏ธ ่ฟ็ปด็ฎก็
|
|
41
44
|
|
|
42
45
|
| ่ฝๅ | ่ฏดๆ |
|
|
43
|
-
|
|
44
|
-
| ็ฆป็บฟ็ผๅญ |
|
|
45
|
-
| ๆๅฐ้ๅ |
|
|
46
|
-
| ๅคๆๅฐๆบ็ฎก็ | MultiPrinterManager ๅค่ฎพๅคๅนถๅ๏ผๆฏๆ่ด่ฝฝๅ่กก |
|
|
47
|
-
| ๆๅฐๅๅฒ | PrintHistory
|
|
48
|
-
| ๅฎๆถ้่ฏ | ScheduledRetryManager
|
|
49
|
-
| ๅฎๆถ่ฐๅบฆ | PrintScheduler ๆฏๆ cron
|
|
50
|
-
| ่ฎพๅคๅ็ฐ | DiscoveryService ๅขๅผบๅ่ฟๆปคใๆๅบใRSSI
|
|
46
|
+
|:-----|:-----|
|
|
47
|
+
| ็ฆป็บฟ็ผๅญ | ๆญ็ฝ่ชๅจ็ผๅญ๏ผๆขๅค็ฝ็ป่ชๅจๅๆญฅ๏ผ้ถไปปๅกไธขๅคฑ |
|
|
48
|
+
| ๆๅฐ้ๅ | ไผๅ
็บงๆๅบใๅคฑ่ดฅ่ชๅจ้่ฏใๆญป้พ่ชๅจๅ้ค |
|
|
49
|
+
| ๅคๆๅฐๆบ็ฎก็ | `MultiPrinterManager` ๅค่ฎพๅคๅนถๅ๏ผๆฏๆ่ด่ฝฝๅ่กก |
|
|
50
|
+
| ๆๅฐๅๅฒ | `PrintHistory` ๅฎๆด่ฎฐๅฝ๏ผๅซ่ๆถ / ๅญ่ๆฐ / ๆๅ็็ป่ฎก |
|
|
51
|
+
| ๅฎๆถ้่ฏ | `ScheduledRetryManager` ๆๆฐ้้ฟ็ญ็ฅ๏ผ่ฟ็จ้ๅฏๅ่ชๅจๆขๅค่ฐๅบฆ |
|
|
52
|
+
| ๅฎๆถ่ฐๅบฆ | `PrintScheduler` ๆฏๆ cron ่กจ่พพๅผ / ไธๆฌกๆง / ้ด้้ๅคไปปๅก |
|
|
53
|
+
| ่ฎพๅคๅ็ฐ | `DiscoveryService` ๅขๅผบๅ่ฟๆปคใๆๅบใRSSI ไฟกๅท็ผๅญ |
|
|
54
|
+
| ๆไปถ็ณป็ป | DI ๅฎนๅจ + EventBus ไบไปถๆป็บฟ๏ผๅฏๆฉๅฑๆถๆ |
|
|
51
55
|
|
|
52
56
|
---
|
|
53
57
|
|
|
54
|
-
##
|
|
55
|
-
|
|
56
|
-
| ๆๆ | ๅผ |
|
|
57
|
-
|------|-----|
|
|
58
|
-
| ๅ
ไฝ็งฏ๏ผgzip๏ผ | **~226 KB**๏ผๅซๅ
จ้จ้ฉฑๅจ๏ผๆ ๅค้จไพ่ต๏ผ |
|
|
59
|
-
| Tree-shaking | โ
ๆฏๆ๏ผimport { BluetoothPrinter } ๅณ็จ |
|
|
60
|
-
| ๆ้ๅ ่ฝฝ | โ
็ผ็ ่กจๆๅ ่ฝฝ๏ผๆช็จๅฐ็ๅญ็ฌฆ้ไธ่ฟๅ
ฅไบง็ฉ |
|
|
61
|
-
| ๆต่ฏ่ฆ็ | โ
648 ไธช็จไพ๏ผCI ๅ
จ้พ่ทฏ้่ฟ |
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## ๅฟซ้ๅผๅง
|
|
58
|
+
## ๐ฆ ๅฎ่ฃ
|
|
66
59
|
|
|
67
60
|
```bash
|
|
61
|
+
# npm
|
|
62
|
+
npm install taro-bluetooth-print
|
|
63
|
+
|
|
64
|
+
# pnpm๏ผๆจ่๏ผ
|
|
68
65
|
pnpm add taro-bluetooth-print
|
|
66
|
+
|
|
67
|
+
# yarn
|
|
68
|
+
yarn add taro-bluetooth-print
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
+
> **ๅ็ฝฎไพ่ต**๏ผ้กน็ฎ้ๅฎ่ฃ
`@tarojs/taro ^3.6.22` ๅไปฅไธ็ๆฌใ
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## ๐ ๅฟซ้ๅผๅง
|
|
76
|
+
|
|
71
77
|
```typescript
|
|
72
|
-
import {
|
|
78
|
+
import {
|
|
79
|
+
createBluetoothPrinter,
|
|
80
|
+
DeviceManager,
|
|
81
|
+
WebBluetoothAdapter
|
|
82
|
+
} from 'taro-bluetooth-print';
|
|
73
83
|
|
|
74
|
-
async function
|
|
75
|
-
//
|
|
84
|
+
async function printReceipt() {
|
|
85
|
+
// โ ๆซๆ่็่ฎพๅค
|
|
76
86
|
const manager = new DeviceManager();
|
|
77
87
|
await manager.startScan({ timeout: 10000 });
|
|
78
88
|
const devices = manager.getDiscoveredDevices();
|
|
79
89
|
|
|
80
90
|
if (devices.length === 0) {
|
|
81
|
-
console.
|
|
91
|
+
console.warn('ๆชๅ็ฐ่็่ฎพๅค');
|
|
82
92
|
return;
|
|
83
93
|
}
|
|
84
94
|
|
|
85
|
-
//
|
|
95
|
+
// โก ๅๅปบๆๅฐๆบๅฎไพๅนถ่ฟๆฅ
|
|
86
96
|
const printer = createBluetoothPrinter({
|
|
87
97
|
adapter: new WebBluetoothAdapter()
|
|
88
98
|
});
|
|
89
99
|
|
|
90
100
|
await printer.connect(devices[0].deviceId);
|
|
91
101
|
|
|
92
|
-
//
|
|
102
|
+
// โข ้พๅผ่ฐ็จ โ ๆๅปบๅนถๆๅฐๅฐ็ฅจ
|
|
93
103
|
await printer
|
|
94
104
|
.text('=== ๆฌข่ฟๅ
ไธด ===', 'GBK')
|
|
95
105
|
.feed()
|
|
@@ -104,70 +114,81 @@ async function print() {
|
|
|
104
114
|
.cut()
|
|
105
115
|
.print();
|
|
106
116
|
|
|
117
|
+
// โฃ ๆญๅผ่ฟๆฅ
|
|
107
118
|
await printer.disconnect();
|
|
108
119
|
}
|
|
109
120
|
```
|
|
110
121
|
|
|
111
122
|
---
|
|
112
123
|
|
|
113
|
-
##
|
|
114
|
-
|
|
115
|
-
### ๆฏๆ็ๅนณๅฐ
|
|
124
|
+
## ๐ฑ ๅนณๅฐๆฏๆ
|
|
116
125
|
|
|
117
|
-
| ๅนณๅฐ |
|
|
118
|
-
|
|
126
|
+
| ๅนณๅฐ | ้้
ๅจ็ฑป | ็ถๆ |
|
|
127
|
+
|:-----|:---------|:----:|
|
|
119
128
|
| ๅพฎไฟกๅฐ็จๅบ | `TaroAdapter` | โ
|
|
|
120
|
-
| H5 (Web Bluetooth) | `WebBluetoothAdapter` | โ
|
|
|
121
129
|
| ๆฏไปๅฎๅฐ็จๅบ | `AlipayAdapter` | โ
|
|
|
122
130
|
| ็พๅบฆๅฐ็จๅบ | `BaiduAdapter` | โ
|
|
|
123
131
|
| ๅญ่่ทณๅจๅฐ็จๅบ | `ByteDanceAdapter` | โ
|
|
|
124
132
|
| QQ ๅฐ็จๅบ | `QQAdapter` | โ
|
|
|
125
|
-
|
|
|
133
|
+
| H5 (Web Bluetooth) | `WebBluetoothAdapter` | โ
|
|
|
126
134
|
| React Native | `ReactNativeAdapter` | โ
|
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
> ๐ก **ๆ็คบ**๏ผ้ธฟ่ HarmonyOS ๅฏ้่ฟ `TaroAdapter` ้้
ไฝฟ็จใ
|
|
137
|
+
|
|
138
|
+
## ๐จ๏ธ ๆๅฐๆบ้ฉฑๅจ
|
|
129
139
|
|
|
130
|
-
| ้ฉฑๅจ | ๅ่ฎฎ | ๅ
ธๅๅ็ |
|
|
131
|
-
|
|
132
|
-
| `EscPos` | ESC/POS | ไฝณๅใ่ฏ็จใๅ็ฑณใๆฑๅฐ |
|
|
133
|
-
| `TsplDriver` | TSPL | TSC ME240ใTA210ใTTP-244 |
|
|
134
|
-
| `ZplDriver` | ZPL | Zebra ZD420ใGT800ใZM400 |
|
|
135
|
-
| `CpclDriver` | CPCL | HP IR3222
|
|
136
|
-
| `StarPrinter` | STAR | STAR TSP100ใTSP700ใTSP800 |
|
|
137
|
-
| `GPrinterDriver` |
|
|
138
|
-
| `XprinterDriver` | ESC/POS | ่ฏ็จ XP-58 ็ณปๅ |
|
|
139
|
-
| `SprtDriver` | ESC/POS | ๆๆฎ็็น็ณปๅ |
|
|
140
|
+
| ้ฉฑๅจ | ๅ่ฎฎ | ๅ
ธๅๅ็ / ๅๅท | ๅ่ฝ็ถๆ |
|
|
141
|
+
|:-----|:-----|:---------------|:--------|
|
|
142
|
+
| `EscPos` | ESC/POS | ไฝณๅใ่ฏ็จใๅ็ฑณใๆฑๅฐ | โ
ๅ
จๅ่ฝ |
|
|
143
|
+
| `TsplDriver` | TSPL | TSC ME240ใTA210ใTTP-244 | โ
ๅ
จๅ่ฝ |
|
|
144
|
+
| `ZplDriver` | ZPL | Zebra ZD420ใGT800ใZM400 | โ
ๅซๅพๅๆๅฐ (^GFA) |
|
|
145
|
+
| `CpclDriver` | CPCL | HP IR3222ใ้ๅฐผ้ฆๅฐ็งปๅจๆๅฐๆบ | โ
ๅซ Logo ไธ่ฝฝ (CG) |
|
|
146
|
+
| `StarPrinter` | STAR | STAR TSP100ใTSP700ใTSP800 | โ
ๅ
จๅ่ฝ |
|
|
147
|
+
| `GPrinterDriver` | ไฝณๅ่ชๅฎไน | ไฝณๅ GP-5890X ็ณปๅ | โ
ๅ
จๅ่ฝ |
|
|
148
|
+
| `XprinterDriver` | ESC/POS | ่ฏ็จ XP-58 ็ณปๅ | โ
ๅ
จๅ่ฝ |
|
|
149
|
+
| `SprtDriver` | ESC/POS | ๆๆฎ็็น็ณปๅ | โ
ๅ
จๅ่ฝ |
|
|
140
150
|
|
|
141
151
|
---
|
|
142
152
|
|
|
143
|
-
## ้
็ฝฎไธไบไปถ
|
|
153
|
+
## โ๏ธ ้
็ฝฎไธไบไปถ
|
|
154
|
+
|
|
155
|
+
### ไผ ่พๅๆฐ้
็ฝฎ
|
|
144
156
|
|
|
145
157
|
```typescript
|
|
146
158
|
const printer = createBluetoothPrinter();
|
|
147
159
|
|
|
148
|
-
//
|
|
160
|
+
// ่ฐๆด่็ไผ ่พๅๆฐ๏ผ้้
ไธๅๆๅฐๆบ็ๅๅ่ฝๅ๏ผ
|
|
149
161
|
printer.setOptions({
|
|
150
|
-
chunkSize: 20,
|
|
151
|
-
delay: 20, //
|
|
152
|
-
retries: 3,
|
|
162
|
+
chunkSize: 20, // ๅๆฌกๅๅ
ฅๅ็ๅคงๅฐ๏ผbyte๏ผ๏ผ้ป่ฎค 20
|
|
163
|
+
delay: 20, // ๅ็ๅๅ
ฅ้ด้๏ผms๏ผ๏ผ้ป่ฎค 20
|
|
164
|
+
retries: 3, // ๅๅ
ฅๅคฑ่ดฅ้่ฏๆฌกๆฐ๏ผ้ป่ฎค 3
|
|
153
165
|
});
|
|
166
|
+
```
|
|
154
167
|
|
|
155
|
-
|
|
168
|
+
### ไบไปถ็ๅฌ
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
// ๆๅฐ่ฟๅบฆ
|
|
156
172
|
printer.on('progress', ({ sent, total }) => {
|
|
157
|
-
console.log(
|
|
173
|
+
console.log(`ๆๅฐ่ฟๅบฆ: ${(sent / total * 100).toFixed(1)}%`);
|
|
158
174
|
});
|
|
159
175
|
|
|
176
|
+
// ้่ฏฏไบไปถ
|
|
160
177
|
printer.on('error', (error) => {
|
|
161
|
-
|
|
162
|
-
console.error('้่ฏฏ:', error.code, error.message);
|
|
178
|
+
console.error('ๆๅฐ้่ฏฏ:', error.code, error.message);
|
|
163
179
|
});
|
|
164
180
|
|
|
181
|
+
// ๆๅฐๅฎๆ
|
|
165
182
|
printer.on('print-complete', () => {
|
|
166
|
-
console.log('
|
|
183
|
+
console.log('โ
ๆๅฐไปปๅกๅฎๆ');
|
|
167
184
|
});
|
|
168
185
|
```
|
|
169
186
|
|
|
170
|
-
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## ๐ก๏ธ ้่ฏฏๅค็
|
|
190
|
+
|
|
191
|
+
ๅบๆไพๅฎๆด็็ฑปๅๅ้่ฏฏๅฑๆฌก็ปๆ๏ผๆฏๆ็ฒพ็กฎ็้่ฏฏๆ่ทไธๅค็๏ผ
|
|
171
192
|
|
|
172
193
|
```typescript
|
|
173
194
|
import {
|
|
@@ -178,22 +199,22 @@ import {
|
|
|
178
199
|
ErrorCode
|
|
179
200
|
} from 'taro-bluetooth-print';
|
|
180
201
|
|
|
181
|
-
//
|
|
202
|
+
// ๆนๅผไธ๏ผ็ปไธ้่ฏฏๅบ็ฑปๆ่ท
|
|
182
203
|
try {
|
|
183
204
|
await printer.print();
|
|
184
205
|
} catch (err) {
|
|
185
206
|
if (err instanceof BluetoothPrintError) {
|
|
186
|
-
console.
|
|
207
|
+
console.error(`[${err.code}] ${err.message}`);
|
|
187
208
|
}
|
|
188
209
|
}
|
|
189
210
|
|
|
190
|
-
//
|
|
211
|
+
// ๆนๅผไบ๏ผๆ้่ฏฏ็ฑปๅ็ฒพ็กฎๅค็๏ผๆจ่๏ผ
|
|
191
212
|
try {
|
|
192
213
|
await printer.connect(deviceId);
|
|
193
214
|
} catch (err) {
|
|
194
215
|
if (ConnectionError.isConnectionError(err)) {
|
|
195
|
-
//
|
|
196
|
-
console.
|
|
216
|
+
// ่ฟๆฅๅคฑ่ดฅ โ ๅฏๆ็คบ็จๆท้่ฏ
|
|
217
|
+
console.warn('่ฟๆฅ้่ฏฏ:', err.message);
|
|
197
218
|
}
|
|
198
219
|
}
|
|
199
220
|
|
|
@@ -201,84 +222,128 @@ try {
|
|
|
201
222
|
// ... ๆๅฐๆไฝ
|
|
202
223
|
} catch (err) {
|
|
203
224
|
if (PrintJobError.isPrintJobError(err)) {
|
|
204
|
-
//
|
|
205
|
-
console.
|
|
225
|
+
// ๆๅฐไปปๅกๅคฑ่ดฅ โ ๅฏ้ๆฐๅ ๅ
ฅ้ๅ
|
|
226
|
+
console.warn('ไปปๅก้่ฏฏ:', err.message);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
try {
|
|
231
|
+
printer.text('ๆต่ฏ', 'UNSUPPORTED_ENCODING');
|
|
232
|
+
} catch (err) {
|
|
233
|
+
if (CommandBuildError.isCommandBuildError(err)) {
|
|
234
|
+
// ๆไปคๆๅปบๅคฑ่ดฅ โ ๅๆฐๆ ก้ช้ฎ้ข
|
|
235
|
+
console.warn('ๆไปค้่ฏฏ:', err.message);
|
|
206
236
|
}
|
|
207
237
|
}
|
|
208
238
|
```
|
|
209
239
|
|
|
210
240
|
---
|
|
211
241
|
|
|
212
|
-
##
|
|
242
|
+
## ๐๏ธ ๆถๆๆฆ่ง
|
|
213
243
|
|
|
214
244
|
```
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
245
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
246
|
+
โ PrinterFactory (ๅทฅๅๅฑ) โ
|
|
247
|
+
โ createBluetoothPrinter ยท createWebBluetooth โ
|
|
248
|
+
โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
249
|
+
โ
|
|
219
250
|
โผ
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
โ
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
โ
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
251
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
252
|
+
โ BluetoothPrinter (ๆ ธๅฟๅฑ) โ
|
|
253
|
+
โ text() ยท feed() ยท qr() ยท cut() ยท image() โ
|
|
254
|
+
โ print() ยท setOptions() ยท on() / off() โ
|
|
255
|
+
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
|
|
256
|
+
โ โ
|
|
257
|
+
โโโโโโโโโโผโโโโโโโโโ โโโโโโโโโผโโโโโโโโโ
|
|
258
|
+
โ Drivers (้ฉฑๅจ) โ โ Adapters (้้
) โ
|
|
259
|
+
โ โ โ โ
|
|
260
|
+
โ EscPos โ โ TaroAdapter โ
|
|
261
|
+
โ TsplDriver โ โ WebBluetooth โ
|
|
262
|
+
โ ZplDriver โ โ ReactNative โ
|
|
263
|
+
โ CpclDriver โ โ AlipayAdapter โ
|
|
264
|
+
โ StarPrinter โ โ BaiduAdapter โ
|
|
265
|
+
โ GPrinter โ โ ByteDance โ
|
|
266
|
+
โ Xprinter โ โ QQAdapter โ
|
|
267
|
+
โ SprtDriver โ โ โ
|
|
268
|
+
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโฌโโโโโโโโโ
|
|
269
|
+
โ โ
|
|
270
|
+
โโโโโโโโโโโโโฌโโโโโโโโโโโโ
|
|
271
|
+
โผ
|
|
272
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
273
|
+
โ Services (ๆๅกๅฑ) โ
|
|
274
|
+
โ โ
|
|
275
|
+
โ PrintJob ยท Cache ยท Queue ยท History โ
|
|
276
|
+
โ Statistics ยท Scheduler ยท Batch โ
|
|
277
|
+
โ EventBus ยท DIContainer ยท PluginSystem โ
|
|
278
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
240
279
|
```
|
|
241
280
|
|
|
242
281
|
---
|
|
243
282
|
|
|
244
|
-
##
|
|
283
|
+
## ๐ ๆง่ฝๆๆ
|
|
284
|
+
|
|
285
|
+
| ๆๆ | ๅผ |
|
|
286
|
+
|:-----|:---|
|
|
287
|
+
| ๅ
ไฝ็งฏ๏ผgzip๏ผ | **~226 KB**๏ผๅซๅ
จ้จ้ฉฑๅจ๏ผๆ ๅค้จไพ่ต๏ผ |
|
|
288
|
+
| Tree-shaking | โ
ๆฏๆ๏ผๆ้ๅผๅ
ฅ |
|
|
289
|
+
| ็ผ็ ๆๅ ่ฝฝ | โ
ๆช็จๅฐ็ๅญ็ฌฆ้ไธ่ฟๅ
ฅไบง็ฉ |
|
|
290
|
+
| ๆต่ฏ็จไพ | โ
**879** ไธชๆต่ฏ็จไพ๏ผ**877** ้่ฟ๏ผ95.7%๏ผ๏ผ่ฆ็้ๅผ 70%+ |
|
|
291
|
+
| ๆๅปบๅทฅๅ
ท | Vite + Vitest |
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## ๐ ็คบไพ้กน็ฎ
|
|
245
296
|
|
|
246
297
|
| ็คบไพ | ่ทฏๅพ |
|
|
247
|
-
|
|
298
|
+
|:-----|:-----|
|
|
248
299
|
| ๅพฎไฟกๅฐ็จๅบ | [examples/weapp](./examples/weapp) |
|
|
249
300
|
| H5 | [examples/h5](./examples/h5) |
|
|
250
|
-
| ้ธฟ่ | [examples/harmonyos](./examples/harmonyos) |
|
|
301
|
+
| ้ธฟ่ HarmonyOS | [examples/harmonyos](./examples/harmonyos) |
|
|
251
302
|
| React Native | [examples/react-native](./examples/react-native) |
|
|
252
303
|
|
|
253
304
|
---
|
|
254
305
|
|
|
255
|
-
## ๆๆกฃ
|
|
306
|
+
## ๐ ๆๆกฃ
|
|
256
307
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
308
|
+
| ๆๆกฃ | ่ฏดๆ |
|
|
309
|
+
|:-----|:-----|
|
|
310
|
+
| [ๅฟซ้ๅผๅง](https://agions.github.io/taro-bluetooth-print/guide/getting-started) | 5 ๅ้ๅ
ฅ้จๆ็จ |
|
|
311
|
+
| [ๅ่ฝ็นๆง](https://agions.github.io/taro-bluetooth-print/guide/features) | ๅ
จ้จๅ่ฝ่ฏฆ่งฃ |
|
|
312
|
+
| [้ฉฑๅจๆฏๆ](https://agions.github.io/taro-bluetooth-print/guide/drivers) | ESC/POSใTSPLใZPL ้ฉฑๅจ่ฏดๆ |
|
|
313
|
+
| [ๆ ธๅฟๆฆๅฟต](https://agions.github.io/taro-bluetooth-print/guide/core-concepts) | ๆถๆ่ฎพ่ฎกไธๆ ธๅฟๆฆๅฟต |
|
|
314
|
+
| [API ๅ่](https://agions.github.io/taro-bluetooth-print/api) | ๅฎๆด API ๆๆกฃ |
|
|
315
|
+
| [ๅธธ่ง้ฎ้ข](https://agions.github.io/taro-bluetooth-print/guide/faq) | FAQ |
|
|
263
316
|
|
|
264
317
|
---
|
|
265
318
|
|
|
266
|
-
## ๅผๅ
|
|
319
|
+
## ๐ ๏ธ ๅผๅ
|
|
267
320
|
|
|
268
321
|
```bash
|
|
322
|
+
# ๅ
้ไปๅบ
|
|
269
323
|
git clone https://github.com/Agions/taro-bluetooth-print.git
|
|
270
324
|
cd taro-bluetooth-print
|
|
325
|
+
|
|
326
|
+
# ๅฎ่ฃ
ไพ่ต
|
|
271
327
|
pnpm install
|
|
272
328
|
|
|
273
|
-
|
|
274
|
-
pnpm
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
pnpm
|
|
329
|
+
# ่ฟ่กๆต่ฏ
|
|
330
|
+
pnpm test
|
|
331
|
+
|
|
332
|
+
# ไปฃ็ ๆฃๆฅ
|
|
333
|
+
pnpm lint
|
|
334
|
+
|
|
335
|
+
# TypeScript ็ฑปๅๆฃๆฅ
|
|
336
|
+
pnpm type-check
|
|
337
|
+
|
|
338
|
+
# ๆๅปบไบง็ฉ
|
|
339
|
+
pnpm build
|
|
340
|
+
|
|
341
|
+
# ๆฌๅฐๆๆกฃๅผๅ
|
|
342
|
+
pnpm docs:dev
|
|
278
343
|
```
|
|
279
344
|
|
|
280
345
|
---
|
|
281
346
|
|
|
282
|
-
## ่ฎธๅฏ่ฏ
|
|
347
|
+
## ๐ ่ฎธๅฏ่ฏ
|
|
283
348
|
|
|
284
|
-
[MIT](./LICENSE) ยท Copyright ยฉ 2024-present Agions
|
|
349
|
+
[MIT](./LICENSE) ยท Copyright ยฉ 2024-present [Agions](https://github.com/Agions)
|