Files
FEDEO/spaces/pages/printing.vue
flfeders d74d7abc90 Added Dockerfile and CI/CD for Imapsync
Added Core Functionality for Imapsync
2023-11-29 19:52:37 +01:00

88 lines
2.0 KiB
Vue

<script setup>
import * as JSPM from 'jsprintmanager'
let printers = []
let scanners = []
const doScanning = () => {
}
const doPrintZPL = () => {
/*if(this.selected_printer === '' && !this.print2default) {
alert("You must select a printer");
return;
}*/
let cpj = new JSPM.ClientPrintJob();
/*if ( this.print2default ) {
cpj.clientPrinter = new JSPM.DefaultPrinter();
} else {
cpj.clientPrinter = new JSPM.InstalledPrinter(this.selected_printer);
}*/
cpj.clientPrinter = new JSPM.InstalledPrinter("ZebraZD230");
let cmds = "^XA";
cmds += "^CF0,60";
cmds += "^FO20,10^BY4^BC,200,Y,N,,U^FD0012345123451234512^FS";
cmds += "^FO20,250^GB650,3,3^FS";
cmds += "^CFA,30";
cmds += "^FO20,300^FDFederspiel Technology UG^FS";
cmds += "^XZ";
cpj.printerCommands = cmds;
cpj.sendToClient();
}
const getPrinters = () => {
return new Promise((ok, err) => {
let printers = [];
if(JSPM.JSPrintManager.websocket_status == JSPM.WSStatus.Open) {
JSPM.JSPrintManager.getPrinters().then(function (myPrinters) {
printers = myPrinters;
console.log(printers);
ok(printers);
}).catch((e)=>err(e));
} else { console.warn("JSPM WS not open"); ok(printers); }
});
}
const getScanners = () => {
return new Promise((ok, err) => {
let scanners = [];
if(JSPM.JSPrintManager.websocket_status === JSPM.WSStatus.Open) {
JSPM.JSPrintManager.getScanners().then(function (myScanners) {
printers = myScanners;
console.log(scanners);
ok(scanners);
}).catch((e)=>err(e));
} else { console.warn("JSPM WS not open"); ok(printers); }
});
}
const initJSPM = () => {
JSPM.JSPrintManager.auto_reconnect = true
JSPM.JSPrintManager.start();
JSPM.JSPrintManager.WS.onStatusChanged = () => {
console.log("Status Changed")
getPrinters().then(p => printers = p)
getScanners().then(s => scanners = s)
}
}
initJSPM()
</script>
<template>
{{printers}}
{{scanners}}
<UButton @click="doPrintZPL">Print</UButton>
</template>
<style scoped>
</style>