1.0.1 • Published 3 years ago

electron-epos-printer v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Electron Epos Printer

This package provides a small printer service to make printing receipts a little easier.

The project itself is in its infancy, and has only a small amount of features these feature include:

  • Adding headers
  • Adding paragraphs of text
  • Adding tables

Firstly you need to instantiate the class with the required configuration:

const printConfig = {
        preview: false, // Preview in window or print
        width: '200px', //  width of content body
        margins: {
            marginType: 'none',
        }, // margin of content body
        copies: 1, // Number of copies to print
        printerName: 'Your printer name', // printerName: string, check it at webContent.getPrinters()
        timeOutPerLine: 200,
        silent: true,
        pageSize: {
            height: 301000,
            width: 71000
        }
    };


    const printService = new PrintService(printConfig);
    
    printService.addHeader('Receipt', true)
        .addTable(
        	['Some', 'heading', 'row'],
            [
            	['row', 'one', 'entry'],
                ['row', 'two', 'entry'],
            ],
        )
        .addText('Total Order: $10.00')
		.addText('Thank you for your order');
    
    printService.print();
    

Print Config Structure

Config ItemTypeDescription
previewbooleanThe default value is false, if set to true, a preview window will load and no printing will occur
widthstringThe width in pixels of the printing
marginsobjectand object containing the marginType
copiesnumberThe amount of copies you wish to print
printerNamestringThis is the printer name. It must be the string representation of the printer name
timeOutPerLinenumberDefault to 200 - the timeout per line
silentbooleanIf true, the printer config options will appear before printing
pageSizeobjectAn object containing the height and width of the page size

Compatibility

In testing, this only works on node version 14.17.3 (with npm 6.14.3) - there appears to be compiler issues on the current node version which needs investigating.

Contributing

Any contributions are welcome and if there are any features you wish to see added, please open an issue, and I will take a look at them.