我有DATECS DPP-250 POS打印机,我正在尝试使用WebUSB API连接它并打印一些数据。我遇到的问题是打印不起作用。我可以连接到设备,Chrome可以正常读取,但是当我提交打印(transferOut
)时,打印机就会挂起。我试图在控制台中调试错误,但我没有任何错误。我在MAC OS和Windows 10上尝试使用WinUSB驱动程序(使用Zadig来更改Windows上的驱动程序)并且所有这些都有同样的问题。
有人知道问题出在哪里吗?
编辑:
我试过其他POS打印机(非蓝牙一体机),我的代码完美无缺。唯一的问题是这台打印机。这种类型的打印机使用micro usb,这可能是个问题吗?
以下是我正在使用的代码
<html>
<body>
<textarea id="printContent"></textarea>
<input type="submit" onclick="connectAndPrint()" value="Print"/>
<P>Type text into box and click on submit button.
<script>
var device;
function setup(device) {
return device.open()
.then(() => device.selectConfiguration(1))
.then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber))
}
function print() {
var string = document.getElementById("printContent").value + "\n";
var encoder = new TextEncoder();
var data = encoder.encode(string);
console.log(data.length);
device.transferOut(device.configuration.interfaces[0].alternate.endpoints[0].endpointNumber, data)
.catch(error => { console.warn(error); })
}
function connectAndPrint() {
console.log(device);
if (device == null) {
navigator.usb.requestDevice({ filters: [{ vendorId: 5380 }, { vendorId: 65520 }] })
.then(selectedDevice => {
device = selectedDevice;
console.log(device.configuration);
return setup(device);
})
.then(() => print())
.catch(error => { console.log(error); })
}
else
print();
}
navigator.usb.getDevices()
.then(devices => {
if (devices.length > 0) {
device = devices[0];
return setup(device);
}
})
.catch(error => { console.log(error); });
</script>
</body>
</html>
答案 0 :(得分:0)
您需要使用例如:xampp或node js在服务器上运行它。我以前尝试使用单个html不能正常工作,但我在服务器上可以正常工作