template-printer
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Template Printer

A Node.js library for thermal printers custom format printing.

Description

Arrange and assemble the print data according to the customized print template, then generate a picture of the assembled print content, and finally send the picture to the printer for printing, so as to realize custom printing with a higher degree of freedom.

Usage

const tplPrinter = new TemplatePrinter(
    // install imaging drive
    new HtmlToImage(),
    // install image print drive
    new TMPrinter()
);

await tplPrinter.print({
    // printer config
    host: '192.168.1.111',
    cut: true,
    beep: true
}, {
    // template
    id: 1,
    name: "TEST",
    width: 80,
    content: [
        {
            value: "TEST",
            left: 30,
            size: 20,
            bold: true
        },
        {
            value: "NEWLINE"
        },
        {
            type: TplPrint.TemplateItemType.FORMAT,
            key: "order_id",
            value: "OrderId: %order_id%",
            size: 10,
            left: 0
        },
        {
            type: TplPrint.TemplateItemType.FORMAT,
            key: "customer_name",
            value: "CusName: %customer_name%",
            size: 10,
            left: 30
        },
        {
            type: TplPrint.TemplateItemType.FORMAT,
            key: "customer_phone_number",
            value: "CusPhoneNum: %customer_phone_number%",
            size: 10,
            left: 50
        },
        {
            value: "NEWLINE"
        },
        {
            value: "============================================================="
        },
        {
            value: "NEWLINE"
        },
        {
            type: TplPrint.TemplateItemType.ARRAY,
            key: "products",
            value: [
                {
                    type: TplPrint.TemplateItemType.FORMAT,
                    key: "product_name",
                    value: "%product_name%",
                    size: 10,
                    left: 0
                },
                {
                    type: TplPrint.TemplateItemType.FORMAT,
                    key: "product_price",
                    value: "%product_price%",
                    size: 10,
                    left: 30
                },
                {
                    type: TplPrint.TemplateItemType.FORMAT,
                    key: "product_number",
                    value: "x %product_number%",
                    size: 10,
                    left: 60
                },
                {
                    value: "NEWLINE"
                }
            ]
        }
    ]
}, {
    // print data
    order_id: 1001,
    customer_name: "harvey7",
    customer_phone_number: "12345678",
    products: [
        {
            product_name: "Product A",
            product_price: 18.00,
            product_number: 1
        },
        {
            product_name: "Product B",
            product_price: 138.00,
            product_number: 1
        },
        {
            product_name: "Product C",
            product_price: "28.00",
            product_number: 1
        }
    ]
}, {
    // imaging options
    lengthScale: 2,
    sizeScale: 0.7
});

Expand

expand imager

class MyImager implements TplPrint.ImagingDrive {
    imaging(templateWithData: TemplateWithData, opts?: ImagingOpts): Promise<Buffer> {
        ...
    }
}

expand image printer

class MyPrinter implements TplPrint.ImagePrinterDrive {
    printImage(cfg: PrinterCfg, image: Buffer): Promise<any> {
        ...
    }
}

use expand drives

new TemplatePrinter(
    new MyImager(),
    new MyPrinter()
);

Package Sidebar

Install

npm i template-printer

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

123 kB

Total Files

28

Last publish

Collaborators

  • harvey7