diff --git a/.changeset/neat-numbers-relax.md b/.changeset/neat-numbers-relax.md new file mode 100644 index 00000000..936034d6 --- /dev/null +++ b/.changeset/neat-numbers-relax.md @@ -0,0 +1,5 @@ +--- +"@node-escpos/core": patch +--- + +Fix spacing for right and center aligned text in tableCustom diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 986edd3a..6e642075 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -308,18 +308,20 @@ export class Printer extends EventEmitter { } if (align === "CENTER") { - const spaces = (cellWidth - textLength) / 2; - for (let s = 0; s < spaces; s++) lineStr += " "; + const spaces = Math.floor(cellWidth - textLength) / 2; + const leftSpaces = Math.ceil(spaces); + const rightSpaces = Math.floor(spaces); + for (let s = 0; s < leftSpaces; s++) lineStr += " "; if (obj.text !== "") { if (obj.style) lineStr += `${this._getStyle(obj.style)}${obj.text}${this._getStyle("NORMAL")}`; else lineStr += obj.text; } - for (let s = 0; s < spaces - 1; s++) lineStr += " "; + for (let s = 0; s < rightSpaces; s++) lineStr += " "; } else if (align === "RIGHT") { - let spaces = cellWidth - textLength; + let spaces = Math.floor(cellWidth - textLength); if (leftoverSpace > 0) { spaces += leftoverSpace; leftoverSpace = 0;