@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.
@@ -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;IAiB/E,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"}
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,GACZ,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"}
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;;;;;OAKG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAEhF;;;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"}
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":"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"}
1
+ {"version":3,"file":"escpos.d.ts","sourceRoot":"","sources":["../../src/commands/escpos.ts"],"names":[],"mappings":"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"}
@@ -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
- // Use Font B as base (9×17 dots)
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;
@@ -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 height multipliers
33
- * Uses ESC ! command which combines size and emphasis
34
- * @param size - Character size as {width, height} multipliers (max 2x2 for ESC !)
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
- * Apply current print mode (size + bold) using command adapter
42
- * This combines character size and emphasis into a single command
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
  /**
@@ -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;IAqBjC;;;OAGG;IACH,UAAU,IAAI,IAAI;IAUlB;;;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,CAAA;KAAE,GAAG,IAAI;IAWtD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAStB;;;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"}
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(5);
66
- // Apply initial print mode to set Font B explicitly
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 height multipliers
100
- * Uses ESC ! command which combines size and emphasis
101
- * @param size - Character size as {width, height} multipliers (max 2x2 for ESC !)
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
- // Only update if size actually changed
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
- * Apply current print mode (size + bold) using command adapter
113
- * This combines character size and emphasis into a single command
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
- * Maps fontSize to ESC/POS character size (width x height multipliers)
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
- * Font size mapping using ESC ! command (limited to 2x2 maximum):
18
- * - 8-12px → 1x1 (normal)
19
- * - 13-18px 1x2 (normal width, double height)
20
- * - 19-24px 2x1 (double width, normal height)
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
  */
@@ -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;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAYA;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"}
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 character size (width x height multipliers)
47
+ * Maps fontSize to ESC/POS font selection + character size multipliers
48
48
  *
49
- * Font size mapping using ESC ! command (limited to 2x2 maximum):
50
- * - 8-12px → 1x1 (normal)
51
- * - 13-18px 1x2 (normal width, double height)
52
- * - 19-24px 2x1 (double width, normal height)
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 to 1x1 (normal size)
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 (e.g., "8.28px")
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
- // Map font size to character multipliers (max 2x2 for ESC ! compatibility)
75
- if (size >= 20)
76
- return { width: 2, height: 2 }; // 25+px → 2x2 (maximum)
77
- return { width: 1, height: 1 }; // 8-12px → 1x1 (normal)
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
@@ -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;IAiH7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;YACW,kBAAkB;IAmBhC;;OAEG;YACW,UAAU;IAgCxB;;OAEG;YACW,cAAc;IAM5B;;OAEG;YACW,WAAW;IA+BzB;;OAEG;YACW,gBAAgB;CAK/B"}
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 width = parseWidth(childStyle.width, paperWidth);
120
- // Collect text content from child
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
- columns.push({ node: child, width, content, align });
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 (isSpaceBetween && columns.length === 2 && !hasExplicitWidths) {
149
- // Special handling for space-between layout (payment summary style) WITHOUT explicit widths
150
- // Calculate space between
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
- // Reset formatting after text (especially bold)
247
- this.generator.resetFormatting();
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;
@@ -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.0",
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
- "jimp": "^1.6.0",
26
- "@thermal-print/core": "0.3.0"
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
- "scripts": {
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.