oneshell-electron-pos-printer v1.0.226
oneshell-electron-pos-printer
An electron printer plugin, currently supports 58mm, requires electron >= 4.x.x.
Installation
$ npm install oneshell-electron-pos-printer
$ yarn add oneshell-electron-pos-printer
Usage
In main process
const {PosPrinter} = require("oneshell-electron-pos-printer");
In render process
const {PosPrinter} = require('electron').remote.require("oneshell-electron-pos-printer");
const {PosPrinter} = require("oneshell-electron-pos-printer");
const path = require("path");
const options = {
preview: false, // Preview in window or print
width: '170px', // width of content body
margin: '0 0 0 0', // margin of content body
copies: 1, // Number of copies to print
printerName: 'XP-80C', // printerName: string, check with webContent.getPrinters()
timeOutPerLine: 400,
pageSize: { height: 301000, width: 71000 } // page size
}
const data = [
{
type: 'image',
path: path.join(__dirname, 'assets/banner.png'), // file path
position: 'center', // position of image: 'left' | 'center' | 'right'
width: '60px', // width of image in px; default: auto
height: '60px', // width of image in px; default: 50 or '50px'
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table
value: 'SAMPLE HEADING',
style: `text-align:center;`,
css: {"font-weight": "700", "font-size": "18px"}
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table'
value: 'Secondary text',
style: `text-align:left;color: red;`,
css: {"text-decoration": "underline", "font-size": "10px"}
},{
type: 'barCode',
value: 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
},{
type: 'DoubleBarCode',
value1 : 'HB4587896',
value2 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
headerText2:'Business Name', // Optional
additionalText2:'Product Name', // Optional
footerText2:'MRP: ₹ 400', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
headerStyle2:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
lineStyle2:`margin-top: -8px;font-size:12px;`, // Additional text 2 style
footerStyle2:`margin-top: -10px;font-size:12px;`, // Footer text 2 style
},{
type: 'oneInchDoubleSingleBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'oneInchDoubleBarCode',
value1 : 'HB4587896',
value2 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
headerText2:'Business Name', // Optional
additionalText2:'Product Name', // Optional
footerText2:'MRP: ₹ 400', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
headerStyle2:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
lineStyle2:`margin-top: -8px;font-size:12px;`, // Additional text 2 style
footerStyle2:`margin-top: -10px;font-size:12px;`, // Footer text 2 style
},{
type: 'SingleBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'oneInchBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'qrCode',
value: 'https://github.com/Hubertformin/electron-pos-printer',
height: 55,
width: 55,
style: 'margin: 10 20px 20 20px'
},{
type: 'table',
// style the table
style: 'border: 1px solid #ddd',
// list of the columns to be rendered in the table header
tableHeader: ['Animal', 'Age'],
// multi dimensional array depicting the rows and columns of the table body
tableBody: [
['Cat', 2],
['Dog', 4],
['Horse', 12],
['Pig', 4],
],
// list of columns to be rendered in the table footer
tableFooter: ['Animal', 'Age'],
// custom style for the table header
tableHeaderStyle: 'background-color: #000; color: white;',
// custom style for the table body
tableBodyStyle: 'border: 0.5px solid #ddd',
// custom style for the table footer
tableFooterStyle: 'background-color: #000; color: white;',
},{
type: 'table',
style: 'border: 1px solid #ddd', // style the table
// list of the columns to be rendered in the table header
tableHeader: [{type: 'text', value: 'Animal'}, {type: 'image', path: path.join(__dirname, 'icons/animal.png')}],
// multi dimensional array depicting the rows and columns of the table body
tableBody: [
[{type: 'text', value: 'Cat'}, {type: 'image', path: './animals/cat.jpg'}],
[{type: 'text', value: 'Dog'}, {type: 'image', path: './animals/dog.jpg'}],
[{type: 'text', value: 'Horse'}, {type: 'image', path: './animals/horse.jpg'}],
[{type: 'text', value: 'Pig'}, {type: 'image', path: './animals/pig.jpg'}],
],
// list of columns to be rendered in the table footer
tableFooter: [{type: 'text', value: 'Animal'}, 'Image'],
// custom style for the table header
tableHeaderStyle: 'background-color: #000; color: white;',
// custom style for the table body
tableBodyStyle: 'border: 0.5px solid #ddd',
// custom style for the table footer
tableFooterStyle: 'background-color: #000; color: white;',
},
]
PosPrinter.print(data, options)
.then(() => {})
.catch((error) => {
console.error(error);
});
Typescript
Usage
import {PosPrinter, PosPrintData, PosPrintOptions} from "electron-pos-printer";
import * as path from "path";
const options: PosPrintOptions = {
preview: false,
width: '170px',
margin: '0 0 0 0',
copies: 1,
printerName: 'XP-80C',
timeOutPerLine: 400,
pageSize: { height: 301000, width: 71000 } // page size
}
const data: PosPrintData[] = [
{
type: 'image',
path: path.join(__dirname, 'assets/banner.png'), // file path
position: 'center', // position of image: 'left' | 'center' | 'right'
width: '60px', // width of image in px; default: auto
height: '60px', // width of image in px; default: 50 or '50px'
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table
value: 'SAMPLE HEADING',
style: `text-align:center;`,
css: {"font-weight": "700", "font-size": "18px"}
},{
type: 'text', // 'text' | 'barCode' | 'qrCode' | 'image' | 'table'
value: 'Secondary text',
style: `text-align:left;color: red;`,
css: {"text-decoration": "underline", "font-size": "10px"}
},{
type: 'barCode',
value: 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
},{
type: 'DoubleBarCode',
value1 : 'HB4587896',
value2 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
headerText2:'Business Name', // Optional
additionalText2:'Product Name', // Optional
footerText2:'MRP: ₹ 400', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
headerStyle2:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
lineStyle2:`margin-top: -8px;font-size:12px;`, // Additional text 2 style
footerStyle2:`margin-top: -10px;font-size:12px;`, // Footer text 2 style
},{
type: 'oneInchDoubleSingleBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'oneInchDoubleBarCode',
value1 : 'HB4587896',
value2 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
headerText2:'Business Name', // Optional
additionalText2:'Product Name', // Optional
footerText2:'MRP: ₹ 400', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
headerStyle2:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
lineStyle2:`margin-top: -8px;font-size:12px;`, // Additional text 2 style
footerStyle2:`margin-top: -10px;font-size:12px;`, // Footer text 2 style
},{
type: 'SingleBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'oneInchBarCode',
value1 : 'HB4587896',
height: 12, // height of barcode, applicable only to bar and QR codes
width: 1, // width of barcode, applicable only to bar and QR codes
displayValue: true, // Display value below barcode
fontsize: 8,
headerText1:'Business Name', // Optional
additionalText1:'Product Name', // Optional
footerText1:'MRP: ₹ 200', // Optional
style:`width:94px;heigth:56.6px;text-align:center;font-family:Helvetica, sans-serif;margin:2px;`,
headerStyle1:`margin-bottom: 1px;font-size:12px;`, // Header text 1 style
itemStyle1:`margin-top: -3px;font-size:12px;`, // Value Style
lineStyle1:`margin-top: -8px;font-size:12px;`, // Additional text 1 style
footerStyle1:`margin-top: -10px;font-size:12px;`, // Footer text 1 style
},{
type: 'qrCode',
value: 'https://github.com/Hubertformin/electron-pos-printer',
height: 55,
width: 55,
style: 'margin: 10 20px 20 20px'
},{
type: 'table',
// style the table
style: 'border: 1px solid #ddd',
// list of the columns to be rendered in the table header
tableHeader: ['Animal', 'Age'],
// multi dimensional array depicting the rows and columns of the table body
tableBody: [
['Cat', 2],
['Dog', 4],
['Horse', 12],
['Pig', 4],
],
// list of columns to be rendered in the table footer
tableFooter: ['Animal', 'Age'],
// custom style for the table header
tableHeaderStyle: 'background-color: #000; color: white;',
// custom style for the table body
tableBodyStyle: 'border: 0.5px solid #ddd',
// custom style for the table footer
tableFooterStyle: 'background-color: #000; color: white;',
},{
type: 'table',
style: 'border: 1px solid #ddd', // style the table
// list of the columns to be rendered in the table header
tableHeader: [{type: 'text', value: 'Animal'}, {type: 'image', path: path.join(__dirname, 'icons/animal.png')}],
// multi dimensional array depicting the rows and columns of the table body
tableBody: [
[{type: 'text', value: 'Cat'}, {type: 'image', path: './animals/cat.jpg'}],
[{type: 'text', value: 'Dog'}, {type: 'image', path: './animals/dog.jpg'}],
[{type: 'text', value: 'Horse'}, {type: 'image', path: './animals/horse.jpg'}],
[{type: 'text', value: 'Pig'}, {type: 'image', path: './animals/pig.jpg'}],
],
// list of columns to be rendered in the table footer
tableFooter: [{type: 'text', value: 'Animal'}, 'Image'],
// custom style for the table header
tableHeaderStyle: 'background-color: #000; color: white;',
// custom style for the table body
tableBodyStyle: 'border: 0.5px solid #ddd',
// custom style for the table footer
tableFooterStyle: 'background-color: #000; color: white;',
},
]
PosPrinter.print(data, options)
.then(() => {})
.catch((error) => {
console.error(error);
});
Printing options
Options | |
---|---|
copies | (number) number of copies to print |
preview | (boolean) preview in a window, default is false |
width | (string) width of a page |
margin | (string) margin of a page, css values can be used |
printerName | (string) the printer's name |
timeOutPerLine | (number) timeout per line, default is 200 |
silent | (boolean) To print silently without printer selection pop-up, default is true |
pageSize | (SizeOptions) Specify the width and height of the print out page |
The Print data object
Author
- Inav
inavvilva@gmail.com
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago