如何使用 WebUSB 从 HTML 文件输入中传出 PDF 数据

问题描述

我长期以来一直在 Zebra 打印机上使用 WebUSB。使用 TextEncoder 效果很好。不过,我不知道如何使用 PDF 文件进行处理。

我连接了 brother 打印机。据我所知,这应该有效。 transferOut 需要一个 arrayBuffer,我们可以将文件作为 arrayBuffer 读入。然而,实际打印的只是页面上的二进制数据,而不是呈现的 PDF。

这不可能吗?

const input = document.getElementById('fileinput');
const file = input.files[0];
const fr = new FileReader();
fr.onload = async() => {
    await device.transferOut(1,fr.result);
};
fr.readAsArrayBuffer(file);

解决方法

我认为 Zebra 打印机本身不支持接收和呈现 PDF 内容。这些打印机理解一种称为 ZPL 的语言,Zebra 为其提供了参考文档:

https://support.zebra.com/cpws/docs/zpl/zpl-zbi2-pm-en.pdf