Working version
This commit is contained in:
26
index.html
26
index.html
@ -25,7 +25,10 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<button class="btn btn-success render">
|
<button class="btn btn-success render">
|
||||||
Render
|
Render ZPL
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-success print">
|
||||||
|
Print
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
@ -40,6 +43,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
let selectedDevice = null;
|
||||||
|
|
||||||
function createHooks() {
|
function createHooks() {
|
||||||
document.querySelector("button.render").addEventListener("click", (e) => {
|
document.querySelector("button.render").addEventListener("click", (e) => {
|
||||||
const options = {
|
const options = {
|
||||||
@ -54,10 +59,29 @@
|
|||||||
document.querySelector(`textarea[name="zpl"]`).value = zpl;
|
document.querySelector(`textarea[name="zpl"]`).value = zpl;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.querySelector("button.print").addEventListener("click", (e) => {
|
||||||
|
if (!selectedDevice) {
|
||||||
|
console.error("Device not selected");
|
||||||
|
}
|
||||||
|
const zpl = document.querySelector(`textarea[name="zpl"]`).value;
|
||||||
|
selectedDevice.send(zpl, undefined, (error) => {
|
||||||
|
console.error(error);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
createHooks();
|
createHooks();
|
||||||
|
|
||||||
|
getAvailablePrinters().then(devices => {
|
||||||
|
if (devices) {
|
||||||
|
selectedDevice = devices[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -169,3 +169,29 @@ async function createInternalStickerZPL(options) {
|
|||||||
...options,
|
...options,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getAvailablePrinters() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const devices = [];
|
||||||
|
BrowserPrint.getDefaultDevice("printer", device => {
|
||||||
|
devices.push(device);
|
||||||
|
const defaultDevice = device;
|
||||||
|
|
||||||
|
BrowserPrint.getLocalDevices(deviceList => {
|
||||||
|
//console.log(deviceList)
|
||||||
|
deviceList.printer.forEach(device => {
|
||||||
|
if (!defaultDevice || device.uid != defaultDevice.uid) {
|
||||||
|
devices.push(device);
|
||||||
|
}
|
||||||
|
}, error => {
|
||||||
|
reject("Error getting local devices");
|
||||||
|
}, "printer");
|
||||||
|
resolve(devices);
|
||||||
|
});
|
||||||
|
}, error => {
|
||||||
|
reject(error);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user