@thermal-print/escpos 0.3.0 → 0.3.1-beta.1
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/dist/command-adapters/escbematech-adapter.d.ts +1 -1
- package/dist/command-adapters/escbematech-adapter.d.ts.map +1 -1
- package/dist/command-adapters/escbematech-adapter.js +1 -1
- package/dist/command-adapters/escpos-adapter.d.ts +1 -1
- package/dist/command-adapters/escpos-adapter.d.ts.map +1 -1
- package/dist/command-adapters/escpos-adapter.js +3 -3
- package/dist/command-adapters/types.d.ts +2 -1
- package/dist/command-adapters/types.d.ts.map +1 -1
- package/dist/commands/escpos.d.ts +2 -1
- package/dist/commands/escpos.d.ts.map +1 -1
- package/dist/commands/escpos.js +3 -5
- package/dist/generator.d.ts +11 -5
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +36 -13
- package/dist/styles.d.ts +14 -19
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +17 -23
- package/dist/traverser.d.ts.map +1 -1
- package/dist/traverser.js +41 -14
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/LICENSE +0 -21
|
@@ -19,7 +19,7 @@ export declare class ESCBematechCommandAdapter implements CommandAdapter {
|
|
|
19
19
|
getMaxCharacterSize(): CharacterSize;
|
|
20
20
|
getInitCommand(): number[];
|
|
21
21
|
getAlignCommand(align: 'left' | 'center' | 'right'): number[];
|
|
22
|
-
getCharacterSizeCommand(width: number, height: number, bold: boolean): number[];
|
|
22
|
+
getCharacterSizeCommand(width: number, height: number, bold: boolean, font?: number): number[];
|
|
23
23
|
getLineSpacingCommand(dots?: number): number[];
|
|
24
24
|
getCutCommand(type: 'full' | 'partial', feedLines?: number): number[];
|
|
25
25
|
getQRCodeCommand(data: string, size: number): number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escbematech-adapter.d.ts","sourceRoot":"","sources":["../../src/command-adapters/escbematech-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAC9D,OAAO,IAAI,MAAM;IAIjB,mBAAmB,IAAI,aAAa;IAMpC,cAAc,IAAI,MAAM,EAAE;IAK1B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE;IAY7D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"escbematech-adapter.d.ts","sourceRoot":"","sources":["../../src/command-adapters/escbematech-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAC9D,OAAO,IAAI,MAAM;IAIjB,mBAAmB,IAAI,aAAa;IAMpC,cAAc,IAAI,MAAM,EAAE;IAK1B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE;IAY7D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,MAAU,GAAG,MAAM,EAAE;IAiBjG,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAW9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAqBrE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBtD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAuBnF,kBAAkB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE;IAU/C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAa7C"}
|
|
@@ -38,7 +38,7 @@ export class ESCBematechCommandAdapter {
|
|
|
38
38
|
return ESCBema.ALIGN_RIGHT;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
getCharacterSizeCommand(width, height, bold) {
|
|
41
|
+
getCharacterSizeCommand(width, height, bold, font = 0) {
|
|
42
42
|
/**
|
|
43
43
|
* ESC/Bema character sizing:
|
|
44
44
|
* - Uses ESC ! n for combined mode (emphasis, double-height, double-width)
|
|
@@ -14,7 +14,7 @@ export declare class ESCPOSCommandAdapter implements CommandAdapter {
|
|
|
14
14
|
getMaxCharacterSize(): CharacterSize;
|
|
15
15
|
getInitCommand(): number[];
|
|
16
16
|
getAlignCommand(align: "left" | "center" | "right"): number[];
|
|
17
|
-
getCharacterSizeCommand(width: number, height: number, bold: boolean): number[];
|
|
17
|
+
getCharacterSizeCommand(width: number, height: number, bold: boolean, font?: number): number[];
|
|
18
18
|
getLineSpacingCommand(dots?: number): number[];
|
|
19
19
|
getCutCommand(type: "full" | "partial", feedLines?: number): number[];
|
|
20
20
|
getQRCodeCommand(data: string, size: number): number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escpos-adapter.d.ts","sourceRoot":"","sources":["../../src/command-adapters/escpos-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxD;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,IAAI,MAAM;IAIjB,mBAAmB,IAAI,aAAa;IAMpC,cAAc,IAAI,MAAM,EAAE;IAoB1B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE;IAY7D,uBAAuB,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"escpos-adapter.d.ts","sourceRoot":"","sources":["../../src/command-adapters/escpos-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxD;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,IAAI,MAAM;IAIjB,mBAAmB,IAAI,aAAa;IAMpC,cAAc,IAAI,MAAM,EAAE;IAoB1B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE;IAY7D,uBAAuB,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,MAAU,GACf,MAAM,EAAE;IASX,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAU9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAoBrE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAKtD,qBAAqB,CACnB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,EAAE;IAKX,kBAAkB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE;IAU/C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAI7C"}
|
|
@@ -48,13 +48,13 @@ export class ESCPOSCommandAdapter {
|
|
|
48
48
|
return ESCPOS.ALIGN_RIGHT;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
getCharacterSizeCommand(width, height, bold) {
|
|
51
|
+
getCharacterSizeCommand(width, height, bold, font = 0) {
|
|
52
52
|
/**
|
|
53
53
|
* ESC ! n - Select print mode
|
|
54
54
|
* Uses the calculateCharacterSize function from escpos.ts
|
|
55
|
-
* This provides character sizing up to 2x2 with optional bold
|
|
55
|
+
* This provides character sizing up to 2x2 with optional bold and font selection
|
|
56
56
|
*/
|
|
57
|
-
return ESCPOS.calculateCharacterSize(width, height, bold);
|
|
57
|
+
return ESCPOS.calculateCharacterSize(width, height, bold, font);
|
|
58
58
|
}
|
|
59
59
|
getLineSpacingCommand(dots) {
|
|
60
60
|
if (dots === undefined) {
|
|
@@ -38,8 +38,9 @@ export interface CommandAdapter {
|
|
|
38
38
|
* @param width - Width multiplier
|
|
39
39
|
* @param height - Height multiplier
|
|
40
40
|
* @param bold - Whether text should be bold
|
|
41
|
+
* @param font - Font selection: 0 = Font A, 1 = Font B (optional)
|
|
41
42
|
*/
|
|
42
|
-
getCharacterSizeCommand(width: number, height: number, bold: boolean): number[];
|
|
43
|
+
getCharacterSizeCommand(width: number, height: number, bold: boolean, font?: number): number[];
|
|
43
44
|
/**
|
|
44
45
|
* Set line spacing command
|
|
45
46
|
* @param dots - Line spacing in dots (0-255), undefined for default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/command-adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,mBAAmB,IAAI,aAAa,CAAC;IAErC;;;OAGG;IACH,cAAc,IAAI,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IAE9D
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/command-adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,mBAAmB,IAAI,aAAa,CAAC;IAErC;;;OAGG;IACH,cAAc,IAAI,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IAE9D;;;;;;OAMG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE/F;;;OAGG;IACH,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEtE;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEvD;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEpF;;;OAGG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7C;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9C"}
|
|
@@ -30,9 +30,10 @@ export declare const UNDERLINE_OFF: number[];
|
|
|
30
30
|
* @param width - Width multiplier (1 or 2)
|
|
31
31
|
* @param height - Height multiplier (1 or 2)
|
|
32
32
|
* @param bold - Whether text should be bold (optional, default: false)
|
|
33
|
+
* @param font - Font selection: 0 = Font A (12x24), 1 = Font B (9x17) (optional, default: 0)
|
|
33
34
|
* @returns ESC/POS ESC ! n command bytes
|
|
34
35
|
*/
|
|
35
|
-
export declare const calculateCharacterSize: (width: number, height: number, bold?: boolean) => number[];
|
|
36
|
+
export declare const calculateCharacterSize: (width: number, height: number, bold?: boolean, font?: 0 | 1) => number[];
|
|
36
37
|
export declare const setLineSpacing: (dots: number) => number[];
|
|
37
38
|
export declare const LINE_SPACING_DEFAULT: number[];
|
|
38
39
|
export declare const LINE_FEED: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escpos.d.ts","sourceRoot":"","sources":["../../src/commands/escpos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,eAAO,MAAM,EAAE,IAAO,CAAC;AACvB,eAAO,MAAM,EAAE,KAAO,CAAC;AACvB,eAAO,MAAM,EAAE,KAAO,CAAC;AACvB,eAAO,MAAM,EAAE,KAAO,CAAC;AACvB,eAAO,MAAM,GAAG,KAAO,CAAC;AACxB,eAAO,MAAM,GAAG,KAAO,CAAC;AACxB,eAAO,MAAM,GAAG,KAAO,CAAC;AACxB,eAAO,MAAM,EAAE,KAAO,CAAC;AACvB,eAAO,MAAM,EAAE,KAAO,CAAC;AAIvB,eAAO,MAAM,IAAI,UAAc,CAAC;AAIhC,eAAO,MAAM,UAAU,UAAoB,CAAC;AAC5C,eAAO,MAAM,YAAY,UAAoB,CAAC;AAC9C,eAAO,MAAM,WAAW,UAAoB,CAAC;AAI7C,eAAO,MAAM,OAAO,UAAoB,CAAC;AACzC,eAAO,MAAM,QAAQ,UAAoB,CAAC;AAG1C,eAAO,MAAM,YAAY,UAAoB,CAAC;AAC9C,eAAO,MAAM,aAAa,UAAoB,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"escpos.d.ts","sourceRoot":"","sources":["../../src/commands/escpos.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/escpos.js
CHANGED
|
@@ -41,19 +41,17 @@ export const UNDERLINE_OFF = [ESC, 0x2d, 0x00];
|
|
|
41
41
|
* @param width - Width multiplier (1 or 2)
|
|
42
42
|
* @param height - Height multiplier (1 or 2)
|
|
43
43
|
* @param bold - Whether text should be bold (optional, default: false)
|
|
44
|
+
* @param font - Font selection: 0 = Font A (12x24), 1 = Font B (9x17) (optional, default: 0)
|
|
44
45
|
* @returns ESC/POS ESC ! n command bytes
|
|
45
46
|
*/
|
|
46
|
-
export const calculateCharacterSize = (width, height, bold = false) => {
|
|
47
|
+
export const calculateCharacterSize = (width, height, bold = false, font = 0) => {
|
|
47
48
|
// ESC ! command format:
|
|
48
49
|
// Bit 0: Character font (0=Font A, 1=Font B)
|
|
49
50
|
// Bit 3: Emphasis (bold)
|
|
50
51
|
// Bit 4: Double-height
|
|
51
52
|
// Bit 5: Double-width
|
|
52
53
|
// Bit 7: Underline
|
|
53
|
-
|
|
54
|
-
// Note: Font D (16×24 dots) is selected separately via ESC U command
|
|
55
|
-
// and will override this font selection
|
|
56
|
-
let n = 0x01; // Font B
|
|
54
|
+
let n = font & 0x01; // Bit 0: font selection
|
|
57
55
|
// Set double-height bit (bit 4 = 0x10)
|
|
58
56
|
if (height >= 2) {
|
|
59
57
|
n |= 0x10;
|
package/dist/generator.d.ts
CHANGED
|
@@ -29,17 +29,23 @@ export declare class ESCPOSGenerator {
|
|
|
29
29
|
*/
|
|
30
30
|
setBold(bold: boolean): void;
|
|
31
31
|
/**
|
|
32
|
-
* Set text size using width and
|
|
33
|
-
* Uses ESC ! command which combines size and emphasis
|
|
34
|
-
* @param size - Character size
|
|
32
|
+
* Set text size using width/height multipliers and font selection
|
|
33
|
+
* Uses ESC ! command which combines size, font, and emphasis
|
|
34
|
+
* @param size - Character size with font: {font, width, height}
|
|
35
35
|
*/
|
|
36
36
|
setSize(size: {
|
|
37
37
|
width: number;
|
|
38
38
|
height: number;
|
|
39
|
+
font?: 0 | 1;
|
|
39
40
|
}): void;
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
42
|
+
* Update effective paper width based on current font and size
|
|
43
|
+
* Font A 1x1 → 48 cols, Font A 2x → 24 cols, Font B 1x1 → 64 cols
|
|
44
|
+
*/
|
|
45
|
+
private updatePaperWidth;
|
|
46
|
+
/**
|
|
47
|
+
* Apply current print mode (font + size + bold) using command adapter
|
|
48
|
+
* This combines font selection, character size, and emphasis into a single command
|
|
43
49
|
*/
|
|
44
50
|
private applyPrintMode;
|
|
45
51
|
/**
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAqC1E;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,UAAU,SAAK,EACf,QAAQ,SAAU,EAClB,KAAK,UAAQ,EACb,cAAc,CAAC,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAqC1E;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,UAAU,SAAK,EACf,QAAQ,SAAU,EAClB,KAAK,UAAQ,EACb,cAAc,CAAC,EAAE,cAAc;IAuBjC;;;OAGG;IACH,UAAU,IAAI,IAAI;IASlB;;;OAGG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI;IAQlD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAO5B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI;IAepE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ3B;;OAEG;IACH,UAAU,CAAC,KAAK,SAAI,GAAG,IAAI;IAK3B;;OAEG;IACH,WAAW,CAAC,KAAK,SAAI,GAAG,IAAI;IAK5B;;OAEG;IACH,UAAU,CAAC,MAAM,UAAQ,GAAG,IAAI;IAOhC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,IAAI;IAYvC;;;;OAIG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2F/D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAgBhC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI;IAgB5D;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;OAGG;IACH,eAAe,CAAC,KAAK,SAAI,GAAG,IAAI;IAMhC;;;OAGG;IACH,kBAAkB,CAAC,KAAK,SAAI,GAAG,IAAI;IAMnC;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAYnB;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
|
package/dist/generator.js
CHANGED
|
@@ -45,8 +45,10 @@ export class ESCPOSGenerator {
|
|
|
45
45
|
this.commandAdapter = commandAdapter || new ESCPOSCommandAdapter();
|
|
46
46
|
this.context = {
|
|
47
47
|
paperWidth,
|
|
48
|
+
basePaperWidth: paperWidth,
|
|
48
49
|
currentAlign: "left",
|
|
49
50
|
currentSize: { width: 1, height: 1 },
|
|
51
|
+
currentFont: 0,
|
|
50
52
|
currentBold: false,
|
|
51
53
|
encoding,
|
|
52
54
|
debug,
|
|
@@ -62,9 +64,8 @@ export class ESCPOSGenerator {
|
|
|
62
64
|
initialize() {
|
|
63
65
|
// Initialize with comfortable line spacing (30 dots ≈ default 1/6 inch)
|
|
64
66
|
// Common values: 10 (tight), 20 (moderate), 30 (default), 40 (spacious)
|
|
65
|
-
this.setLineSpacing(
|
|
66
|
-
// Apply initial print mode
|
|
67
|
-
// This ensures the narrower font (9×17) is used from the start
|
|
67
|
+
this.setLineSpacing(25);
|
|
68
|
+
// Apply initial print mode with Font A (48 cols) as default
|
|
68
69
|
this.applyPrintMode();
|
|
69
70
|
}
|
|
70
71
|
/**
|
|
@@ -96,24 +97,46 @@ export class ESCPOSGenerator {
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
/**
|
|
99
|
-
* Set text size using width and
|
|
100
|
-
* Uses ESC ! command which combines size and emphasis
|
|
101
|
-
* @param size - Character size
|
|
100
|
+
* Set text size using width/height multipliers and font selection
|
|
101
|
+
* Uses ESC ! command which combines size, font, and emphasis
|
|
102
|
+
* @param size - Character size with font: {font, width, height}
|
|
102
103
|
*/
|
|
103
104
|
setSize(size) {
|
|
104
|
-
|
|
105
|
+
const font = size.font ?? 0;
|
|
106
|
+
// Only update if size or font actually changed
|
|
105
107
|
if (this.context.currentSize.width !== size.width ||
|
|
106
|
-
this.context.currentSize.height !== size.height
|
|
108
|
+
this.context.currentSize.height !== size.height ||
|
|
109
|
+
this.context.currentFont !== font) {
|
|
107
110
|
this.context.currentSize = size;
|
|
111
|
+
this.context.currentFont = font;
|
|
112
|
+
this.updatePaperWidth();
|
|
108
113
|
this.applyPrintMode();
|
|
109
114
|
}
|
|
110
115
|
}
|
|
111
116
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
117
|
+
* Update effective paper width based on current font and size
|
|
118
|
+
* Font A 1x1 → 48 cols, Font A 2x → 24 cols, Font B 1x1 → 64 cols
|
|
119
|
+
*/
|
|
120
|
+
updatePaperWidth() {
|
|
121
|
+
if (this.context.currentFont === 1) {
|
|
122
|
+
// Font B: 64 cols
|
|
123
|
+
this.context.paperWidth = 64;
|
|
124
|
+
}
|
|
125
|
+
else if (this.context.currentSize.width >= 2) {
|
|
126
|
+
// Font A double-width: 24 cols
|
|
127
|
+
this.context.paperWidth = Math.floor(this.context.basePaperWidth / 2);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
// Font A normal: 48 cols (basePaperWidth)
|
|
131
|
+
this.context.paperWidth = this.context.basePaperWidth;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Apply current print mode (font + size + bold) using command adapter
|
|
136
|
+
* This combines font selection, character size, and emphasis into a single command
|
|
114
137
|
*/
|
|
115
138
|
applyPrintMode() {
|
|
116
|
-
const command = this.commandAdapter.getCharacterSizeCommand(this.context.currentSize.width, this.context.currentSize.height, this.context.currentBold);
|
|
139
|
+
const command = this.commandAdapter.getCharacterSizeCommand(this.context.currentSize.width, this.context.currentSize.height, this.context.currentBold, this.context.currentFont);
|
|
117
140
|
this.buffer.pushArray(command);
|
|
118
141
|
}
|
|
119
142
|
/**
|
|
@@ -123,7 +146,7 @@ export class ESCPOSGenerator {
|
|
|
123
146
|
resetFormatting() {
|
|
124
147
|
this.setAlign("left");
|
|
125
148
|
this.setBold(false);
|
|
126
|
-
this.setSize({ width: 1, height: 1 });
|
|
149
|
+
this.setSize({ width: 1, height: 1, font: 0 });
|
|
127
150
|
}
|
|
128
151
|
/**
|
|
129
152
|
* Add text with current formatting
|
|
@@ -264,7 +287,7 @@ export class ESCPOSGenerator {
|
|
|
264
287
|
// Set bold
|
|
265
288
|
const bold = isBold(textStyle);
|
|
266
289
|
this.setBold(bold);
|
|
267
|
-
// Set size
|
|
290
|
+
// Set size (includes font selection based on fontSize)
|
|
268
291
|
const size = mapFontSizeToESCPOS(textStyle.fontSize);
|
|
269
292
|
this.setSize(size);
|
|
270
293
|
}
|
package/dist/styles.d.ts
CHANGED
|
@@ -12,29 +12,24 @@ export declare function extractViewStyle(style: any): ViewStyle;
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function isBold(style: TextStyle): boolean;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* ESC/POS font size mapping result
|
|
16
|
+
*/
|
|
17
|
+
export interface ESCPOSFontSize {
|
|
18
|
+
font: 0 | 1;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Maps fontSize to ESC/POS font selection + character size multipliers
|
|
16
24
|
*
|
|
17
|
-
*
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
21
|
-
* - 25+px → 2x2 (double width, double height)
|
|
25
|
+
* Three visual levels using standard ESC/POS fonts:
|
|
26
|
+
* - Condensada: Font B 1x1 (9x17, 64 cols) — fontSize <= 10
|
|
27
|
+
* - Normal: Font A 1x1 (12x24, 48 cols) — fontSize 11-19
|
|
28
|
+
* - Expandida: Font A 2x2 (12x24, 24 cols) — fontSize >= 20
|
|
22
29
|
*
|
|
23
30
|
* Note: ESC ! command only supports up to 2x2 character size.
|
|
24
|
-
* Larger sizes (3x, 4x, etc.) would require GS ! command which may not
|
|
25
|
-
* be supported on all thermal printers (e.g., Bematech MP-4200 TH).
|
|
26
|
-
*
|
|
27
|
-
* PDF uses zoom factor (default 0.46), so actual sizes are smaller:
|
|
28
|
-
* - 16 * 0.46 = 7.36 (normal text)
|
|
29
|
-
* - 18 * 0.46 = 8.28 (medium text)
|
|
30
|
-
* - 20 * 0.46 = 9.2 (title text)
|
|
31
|
-
*
|
|
32
|
-
* We use raw fontSize values (ignoring zoom) for better differentiation
|
|
33
31
|
*/
|
|
34
|
-
export declare function mapFontSizeToESCPOS(fontSize?: number | string):
|
|
35
|
-
width: number;
|
|
36
|
-
height: number;
|
|
37
|
-
};
|
|
32
|
+
export declare function mapFontSizeToESCPOS(fontSize?: number | string): ESCPOSFontSize;
|
|
38
33
|
/**
|
|
39
34
|
* Maps textAlign to ESC/POS alignment
|
|
40
35
|
*/
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAoBtD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAOhD;AAED
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAoBtD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAOhD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAiB9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAI5E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAGzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAEjD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,UAAU,EAAE,MAAM,GACjB,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GACjC,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB9D"}
|
package/dist/styles.js
CHANGED
|
@@ -44,37 +44,31 @@ export function isBold(style) {
|
|
|
44
44
|
style.fontFamily === "Helvetica-Bold");
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
|
-
* Maps fontSize to ESC/POS
|
|
47
|
+
* Maps fontSize to ESC/POS font selection + character size multipliers
|
|
48
48
|
*
|
|
49
|
-
*
|
|
50
|
-
* -
|
|
51
|
-
* -
|
|
52
|
-
* -
|
|
53
|
-
* - 25+px → 2x2 (double width, double height)
|
|
49
|
+
* Three visual levels using standard ESC/POS fonts:
|
|
50
|
+
* - Condensada: Font B 1x1 (9x17, 64 cols) — fontSize <= 10
|
|
51
|
+
* - Normal: Font A 1x1 (12x24, 48 cols) — fontSize 11-19
|
|
52
|
+
* - Expandida: Font A 2x2 (12x24, 24 cols) — fontSize >= 20
|
|
54
53
|
*
|
|
55
54
|
* Note: ESC ! command only supports up to 2x2 character size.
|
|
56
|
-
* Larger sizes (3x, 4x, etc.) would require GS ! command which may not
|
|
57
|
-
* be supported on all thermal printers (e.g., Bematech MP-4200 TH).
|
|
58
|
-
*
|
|
59
|
-
* PDF uses zoom factor (default 0.46), so actual sizes are smaller:
|
|
60
|
-
* - 16 * 0.46 = 7.36 (normal text)
|
|
61
|
-
* - 18 * 0.46 = 8.28 (medium text)
|
|
62
|
-
* - 20 * 0.46 = 9.2 (title text)
|
|
63
|
-
*
|
|
64
|
-
* We use raw fontSize values (ignoring zoom) for better differentiation
|
|
65
55
|
*/
|
|
66
56
|
export function mapFontSizeToESCPOS(fontSize) {
|
|
67
|
-
// Default
|
|
57
|
+
// Default: Font A normal (48 cols)
|
|
68
58
|
if (!fontSize)
|
|
69
|
-
return { width: 1, height: 1 };
|
|
70
|
-
// Parse fontSize if it's a string
|
|
59
|
+
return { font: 0, width: 1, height: 1 };
|
|
60
|
+
// Parse fontSize if it's a string (e.g., "8.28px")
|
|
71
61
|
const size = typeof fontSize === "string" ? parseFloat(fontSize) : fontSize;
|
|
72
62
|
if (isNaN(size))
|
|
73
|
-
return { width: 1, height: 1 };
|
|
74
|
-
//
|
|
75
|
-
if (size
|
|
76
|
-
return { width:
|
|
77
|
-
|
|
63
|
+
return { font: 0, width: 1, height: 1 };
|
|
64
|
+
// Condensada: Font B (64 cols) — fontSize <= 10
|
|
65
|
+
if (size <= 10)
|
|
66
|
+
return { font: 1, width: 1, height: 1 };
|
|
67
|
+
// Normal: Font A (48 cols) — fontSize 11-19
|
|
68
|
+
if (size <= 19)
|
|
69
|
+
return { font: 0, width: 1, height: 1 };
|
|
70
|
+
// Expandida: Font A 2x2 (24 cols) — fontSize >= 20
|
|
71
|
+
return { font: 0, width: 2, height: 2 };
|
|
78
72
|
}
|
|
79
73
|
/**
|
|
80
74
|
* Maps textAlign to ESC/POS alignment
|
package/dist/traverser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverser.d.ts","sourceRoot":"","sources":["../src/traverser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAkB;gBAEvB,SAAS,EAAE,eAAe;IAItC;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvD;;OAEG;YACW,cAAc;IAO5B;;OAEG;YACW,UAAU;IAIxB;;OAEG;YACW,UAAU;IAkBxB;;;OAGG;YACW,kBAAkB;IAchC;;OAEG;YACW,eAAe;
|
|
1
|
+
{"version":3,"file":"traverser.d.ts","sourceRoot":"","sources":["../src/traverser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAkB;gBAEvB,SAAS,EAAE,eAAe;IAItC;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvD;;OAEG;YACW,cAAc;IAO5B;;OAEG;YACW,UAAU;IAIxB;;OAEG;YACW,UAAU;IAkBxB;;;OAGG;YACW,kBAAkB;IAchC;;OAEG;YACW,eAAe;IA0I7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;YACW,kBAAkB;IAmBhC;;OAEG;YACW,UAAU;IAiCxB;;OAEG;YACW,cAAc;IAM5B;;OAEG;YACW,WAAW;IA+BzB;;OAEG;YACW,gBAAgB;CAK/B"}
|
package/dist/traverser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { alignTextInColumn, extractTextStyle, extractViewStyle, mapTextAlign, mergeStyles, parseWidth } from "./styles";
|
|
1
|
+
import { alignTextInColumn, extractTextStyle, extractViewStyle, mapFontSizeToESCPOS, mapTextAlign, mergeStyles, parseWidth } from "./styles";
|
|
2
2
|
/**
|
|
3
3
|
* Tree Traverser
|
|
4
4
|
* Walks through the element tree and generates ESC/POS commands
|
|
@@ -101,7 +101,6 @@ export class TreeTraverser {
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
const viewStyle = extractViewStyle(node.style);
|
|
104
|
-
const paperWidth = this.generator.getPaperWidth();
|
|
105
104
|
// Check layout justification mode
|
|
106
105
|
const isSpaceBetween = viewStyle.justifyContent === "space-between";
|
|
107
106
|
const isCentered = viewStyle.justifyContent === "center";
|
|
@@ -114,21 +113,40 @@ export class TreeTraverser {
|
|
|
114
113
|
if (firstTextNode && firstTextNode.style) {
|
|
115
114
|
rowTextStyle = mergeStyles(firstTextNode.style);
|
|
116
115
|
}
|
|
116
|
+
// Calculate effective paper width based on the row's font/size
|
|
117
|
+
let paperWidth = this.generator.getPaperWidth();
|
|
118
|
+
if (rowTextStyle) {
|
|
119
|
+
const rowFontSize = mapFontSizeToESCPOS(rowTextStyle.fontSize);
|
|
120
|
+
if (rowFontSize.font === 1) {
|
|
121
|
+
paperWidth = 64; // Font B: 64 cols
|
|
122
|
+
}
|
|
123
|
+
else if (rowFontSize.width >= 2) {
|
|
124
|
+
paperWidth = Math.floor(this.generator.getPaperWidth() / 2); // Font A 2x: 24 cols
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
paperWidth = 48; // Font A normal: 48 cols
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// First pass: calculate explicit widths and track remaining space
|
|
131
|
+
let usedWidth = 0;
|
|
132
|
+
let columnsWithoutWidth = 0;
|
|
133
|
+
const childData = [];
|
|
117
134
|
for (const child of children) {
|
|
118
135
|
const childStyle = extractViewStyle(child.style);
|
|
119
|
-
const
|
|
120
|
-
|
|
136
|
+
const hasWidth = childStyle.width !== undefined;
|
|
137
|
+
const explicitWidth = hasWidth ? parseWidth(childStyle.width, paperWidth) : 0;
|
|
138
|
+
if (hasWidth)
|
|
139
|
+
usedWidth += explicitWidth;
|
|
140
|
+
else
|
|
141
|
+
columnsWithoutWidth++;
|
|
121
142
|
const content = await this.collectTextContent(child);
|
|
122
|
-
// Determine alignment - check for Text node textAlign first
|
|
123
143
|
let align = "left";
|
|
124
|
-
// Look for Text element with textAlign
|
|
125
144
|
const textNode = this.findFirstTextNode(child);
|
|
126
145
|
if (textNode && textNode.style) {
|
|
127
146
|
const textStyle = extractTextStyle(textNode.style);
|
|
128
147
|
align = mapTextAlign(textStyle.textAlign);
|
|
129
148
|
}
|
|
130
149
|
else {
|
|
131
|
-
// Fall back to View alignment
|
|
132
150
|
if (childStyle.alignItems === "center" || childStyle.justifyContent === "center") {
|
|
133
151
|
align = "center";
|
|
134
152
|
}
|
|
@@ -136,7 +154,14 @@ export class TreeTraverser {
|
|
|
136
154
|
align = "right";
|
|
137
155
|
}
|
|
138
156
|
}
|
|
139
|
-
|
|
157
|
+
childData.push({ childStyle, hasWidth, explicitWidth, content, align, node: child });
|
|
158
|
+
}
|
|
159
|
+
// Second pass: distribute remaining width to columns without explicit widths
|
|
160
|
+
const remainingWidth = Math.max(0, paperWidth - usedWidth);
|
|
161
|
+
const autoWidth = columnsWithoutWidth > 0 ? Math.floor(remainingWidth / columnsWithoutWidth) : paperWidth;
|
|
162
|
+
for (const data of childData) {
|
|
163
|
+
const width = data.hasWidth ? data.explicitWidth : autoWidth;
|
|
164
|
+
columns.push({ node: data.node, width, content: data.content, align: data.align });
|
|
140
165
|
}
|
|
141
166
|
// Build row text
|
|
142
167
|
let rowText = "";
|
|
@@ -145,9 +170,10 @@ export class TreeTraverser {
|
|
|
145
170
|
const childStyle = extractViewStyle(col.node.style);
|
|
146
171
|
return childStyle.width !== undefined;
|
|
147
172
|
});
|
|
148
|
-
if (
|
|
149
|
-
//
|
|
150
|
-
//
|
|
173
|
+
if (columns.length === 2 && !hasExplicitWidths) {
|
|
174
|
+
// 2-column layout without explicit widths: treat as space-between
|
|
175
|
+
// This covers both explicit space-between and flexGrow patterns
|
|
176
|
+
// (common receipt pattern: label on left, value on right)
|
|
151
177
|
const usedSpace = columns[0].content.length + columns[1].content.length;
|
|
152
178
|
const gap = Math.max(1, paperWidth - usedSpace);
|
|
153
179
|
rowText = columns[0].content + " ".repeat(gap) + columns[1].content;
|
|
@@ -243,10 +269,11 @@ export class TreeTraverser {
|
|
|
243
269
|
}
|
|
244
270
|
// Traverse children (nested Text elements)
|
|
245
271
|
await this.traverseChildren(node);
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
// Add newline after text element
|
|
272
|
+
// Add newline BEFORE resetting formatting so alignment takes effect at LF
|
|
273
|
+
// (ESC/POS applies alignment at print time, i.e. when LF is sent)
|
|
249
274
|
this.generator.addNewline();
|
|
275
|
+
// Reset formatting after the line is printed
|
|
276
|
+
this.generator.resetFormatting();
|
|
250
277
|
}
|
|
251
278
|
/**
|
|
252
279
|
* Handle TextNode (raw text)
|
package/dist/types.d.ts
CHANGED
|
@@ -8,11 +8,13 @@ export interface ESCPOSCommand {
|
|
|
8
8
|
}
|
|
9
9
|
export interface ConversionContext {
|
|
10
10
|
paperWidth: number;
|
|
11
|
+
basePaperWidth: number;
|
|
11
12
|
currentAlign: 'left' | 'center' | 'right';
|
|
12
13
|
currentSize: {
|
|
13
14
|
width: number;
|
|
14
15
|
height: number;
|
|
15
16
|
};
|
|
17
|
+
currentFont: 0 | 1;
|
|
16
18
|
currentBold: boolean;
|
|
17
19
|
encoding: string;
|
|
18
20
|
debug: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thermal-print/escpos",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "ESC/POS command generation and thermal printer control",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"require": "./dist/index.js"
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc --build",
|
|
18
|
+
"build:watch": "tsc --build --watch"
|
|
19
|
+
},
|
|
16
20
|
"keywords": [
|
|
17
21
|
"thermal-printer",
|
|
18
22
|
"escpos",
|
|
@@ -22,8 +26,8 @@
|
|
|
22
26
|
"author": "",
|
|
23
27
|
"license": "MIT",
|
|
24
28
|
"dependencies": {
|
|
25
|
-
"
|
|
26
|
-
"
|
|
29
|
+
"@thermal-print/core": "0.3.1-beta.1",
|
|
30
|
+
"jimp": "^1.6.0"
|
|
27
31
|
},
|
|
28
32
|
"devDependencies": {
|
|
29
33
|
"typescript": "^5.0.0"
|
|
@@ -33,9 +37,5 @@
|
|
|
33
37
|
},
|
|
34
38
|
"files": [
|
|
35
39
|
"dist"
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
"build": "tsc --build",
|
|
39
|
-
"build:watch": "tsc --build --watch"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
40
|
+
]
|
|
41
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 NUVEL
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|