1.0.3 • Published 6 months ago

ble-esc-pos-encoder v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

ESC/POS Encoder Library

Overview

This library provides functionality to convert printable content into ESC/POS commands, enabling seamless integration with thermal printers. It supports various content types such as text, images, barcodes, and more, with customizable styles and formatting.


Features

  • Convert text, images, barcodes, and more into ESC/POS instructions.
  • Support for multi-language text (e.g., English, Chinese).
  • Extensive styling options (alignment, bold, italic, underline, etc.).
  • Easy handling of tables and box formatting.
  • Generate QR codes and barcodes with detailed customization.
  • Support for image insertion using Base64-encoded data.
  • Includes commands for cutting the paper.

Installation

Install via npm:

npm install ble-esc-pos-encoder

node version >= 22.0.0

instal image libs

apt-get install -y --no-install-recommends \
    build-essential \
    libcairo2-dev \
    libpango1.0-dev \
    libjpeg-dev \
    libgif-dev \
    librsvg2-dev

Usage

Here is an example demonstrating the use of the library:

const EscPosEncoder = require('ble-esc-pos-encoder');
const encoder = new EscPosEncoder();
const commands = await encoder.encode([
    {
        type: 'text',
        value: 'Hello World!',
    }
]);

Content Types

Divider

Inserts a line divider.

{
  "type": "divider",
  "value": "-",
  "style": {}
}

Text

Prints styled text.

{
  "type": "text",
  "value": "Example Text",
  "style": {
    "align": "center",
    "bold": true,
    "italic": true,
    "underline": true
  }
}

QR Code

Generates a QR code.

{
  "type": "qrcode",
  "value": "https://example.com",
  "style": {
    "align": "center"
  }
}

Barcode

Prints a barcode.

{
  "type": "barcode",
  "value": "123456789012",
  "style": {
    "align": "center",
    "height": 100,
    "text": true
  }
}

Image

Adds an image.

{
  "type": "image",
  "value": "Base64String / Image URL",
  "style": {
    "align": "center",
    "width": 120
  }
}

Box

Prints text in a boxed layout.

{
  "type": "box",
  "value": "Boxed text here",
  "style": {
    "align": "center"
  }
}

Table

Prints a table.

{
  "type": "table",
  "value": [
    ["Header 1", "Header 2", "Header 3"],
    ["Row 1 Col 1", "Row 1 Col 2", "Row 1 Col 3"]
  ],
  "style": {
    "width": [10, 10, 10],
    "align": ["left", "center", "right"],
    "divider": true
  }
}

Cut

Sends a cut command to the printer.

{
  "type": "cut",
  "value": "full"
}
1.0.3

6 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago