ble-esc-pos-encoder-22
v1.0.0
Published
convert printable content into ESC/POS commands
Downloads
71
Readme
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
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"
}