From 3311d3de35019c99de651e71534c1d387a6848b1 Mon Sep 17 00:00:00 2001 From: denitiawan Date: Tue, 23 May 2023 15:24:24 +0700 Subject: [PATCH] add 2 button for testing printer thermal 80mm and 58 mm --- release/app/package.json | 2 +- src/main/main.ts | 76 ++++++++++++++++++- src/renderer/App.tsx | 9 +-- src/renderer/printhermal/PrinterComponent.tsx | 20 ++++- .../printhermal/PrinterEscPosService.js | 7 +- 5 files changed, 99 insertions(+), 15 deletions(-) diff --git a/release/app/package.json b/release/app/package.json index 6b94557..de8e774 100644 --- a/release/app/package.json +++ b/release/app/package.json @@ -1,6 +1,6 @@ { "name": "electron-react-boilerplate", - "version": "4.6.0", + "version": "0.0.1", "description": "A foundation for scalable desktop apps", "license": "MIT", "author": { diff --git a/src/main/main.ts b/src/main/main.ts index cc7cffe..479dcde 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -27,7 +27,7 @@ class AppUpdater { let mainWindow: BrowserWindow | null = null; -ipcMain.on('ipc-escpos', async () => { +ipcMain.on('ipc-escpos-printer-80', async () => { console.log('IPC ESCPOS STARTING --------'); try { @@ -38,8 +38,7 @@ ipcMain.on('ipc-escpos', async () => { console.log(escpos.USB.findPrinter()); // for see printer spesification (idVendor & idProduct) // register idVendor & idProduct Printer - const device = new escpos.USB(4070, 33054); // Printer VSC TM 801 - //const device = new escpos.USB(2501,22750); // Printer C58BT + const device = new escpos.USB(4070, 33054); // Printer VSC TM 801 const printer = new escpos.Printer(device); // initialize printer @@ -98,6 +97,77 @@ ipcMain.on('ipc-escpos', async () => { } }); +ipcMain.on('ipc-escpos-printer-58', async () => { + console.log('IPC ESCPOS STARTING --------'); + + try { + + + const escpos = require('escpos'); // import lib escpos + escpos.USB = require('escpos-usb'); // create usb adapter + console.log(escpos.USB.findPrinter()); // for see printer spesification (idVendor & idProduct) + + // register idVendor & idProduct Printer + const device = new escpos.USB(2501,22750); // Printer C58BT + const printer = new escpos.Printer(device); // initialize printer + + + let qrUrl = 'https://github.com/denitiawan'; + + + // templating + device.open(() => { + + // print text + printer.align('lt').text(''); + printer.align('ct').text('Test Printing'); + printer.align('ct').text('Electron React Boilerplate'); + printer.align('lt').text(''); + + printer.align('ct').text('By Deni Setiawan'); + printer.align('ct').text('NexSOFT'); + printer.align('lt').text(''); + + printer.align('ct').text('Feature Support : '); + printer.align('ct').text('Printout Text'); + printer.align('ct').text('Printout Barcode (CODE39)'); + printer.align('ct').text('Printout QR Code'); + printer.align('ct').text('Cut Papper'); + printer.align('ct').text('Open Cash Drawer'); + printer.align('lt').text(''); + + + // Print Barcode + printer.align('ct').barcode('CODE39', 'CODE39'); + printer.align('ct').text(''); + + + // Print QR Code + printer.align('ct').text('Scan Me').style('B'); + printer.align("ct").qrimage(qrUrl, function (err) { + printer.align('ct').text(qrUrl); + printer.align('ct').text('17-mei-2023 13:12'); + printer.align('ct').text(''); + printer.align('ct').text(''); + + // print action + printer.cut(); + printer.cashdraw(2); + printer.close(); + }); + + + + + }); + + } + catch (error) { + console.log(error); + alert(error) + } +}); + ipcMain.on('ipc-example', async (event, arg) => { const msgTemplate = (pingPong: string) => `IPC test: ${pingPong}`; console.log(msgTemplate(arg)); diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index e0940ae..6d4efdc 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -7,11 +7,10 @@ import PrinterComponent from './printhermal/PrinterComponent'; function Hello() { return (
-

Electron React Boilerplate

-

v4.6.0 (Latest)

-
-
- +

Electron React Boilerplate

+

Electron Version : v4.6.0

+
+
); diff --git a/src/renderer/printhermal/PrinterComponent.tsx b/src/renderer/printhermal/PrinterComponent.tsx index 99adda1..10f1fd4 100644 --- a/src/renderer/printhermal/PrinterComponent.tsx +++ b/src/renderer/printhermal/PrinterComponent.tsx @@ -1,14 +1,26 @@ import { PrinterEscPosService } from './PrinterEscPosService'; export default function PrinterComponent() { - function doTestPrint() { - PrinterEscPosService.doPrint(); + function doTestPrinter80() { + PrinterEscPosService.doTestPrinter80(); + } + function doTestPrinter58() { + PrinterEscPosService.doTestPrinter58(); } return (
- +
+
+
diff --git a/src/renderer/printhermal/PrinterEscPosService.js b/src/renderer/printhermal/PrinterEscPosService.js index fa8bb2a..6b2d6e1 100644 --- a/src/renderer/printhermal/PrinterEscPosService.js +++ b/src/renderer/printhermal/PrinterEscPosService.js @@ -1,7 +1,10 @@ export const PrinterEscPosService = { - doPrint() { - window.electron.ipcRenderer.sendMessage('ipc-escpos'); + doTestPrinter80() { + window.electron.ipcRenderer.sendMessage('ipc-escpos-printer-80'); + }, + doTestPrinter58() { + window.electron.ipcRenderer.sendMessage('ipc-escpos-printer-58'); }, };