是否可以通过Java中的斑马打印机直接打印存储的pdf?我找不到任何提及它们与直接打印兼容,我无法打印它。我需要通过zpl直接沟通吗?
斑马打印机通过Acrobat Reader打印时工作正常,Adobe Reader是否将PDF翻译成zpl?
答案 0 :(得分:8)
斑马打印机通过Acrobat Reader打印时工作正常,Adobe Reader是否将PDF翻译成zpl?
没有。 Adobe Reader准备系统的打印服务可以使用的文档。然后,打印服务调用Zebra驱动程序,那些将文档转换为打印机的本机语言。这就是所有打印驱动程序在所有平台上的工作方式,而不仅仅是在Windows上。 CUPS在Linux和MacOS上做同样的事情。
不要花时间构建PDF => image => ZPL翻译。只需让您的应用程序与OS本机打印服务对话,您的时间就会更好。我不做Java,但在我选择的搜索引擎上花一点时间表明Java似乎支持这种方式打印。
答案 1 :(得分:1)
更好但稍微不那么可重复使用的方法是使用ZPL或EPL(无论您的特定斑马打印机支持什么)。
顺便说一句,ZPL是Zebra专有的Zebra编程语言。您可以直接将ZPL字符串写入串行或并行端口,而无需安装任何Zebra驱动程序(而是使用Windows通用文本打印机驱动程序)。例如,您可以将以下字符串直接发送到打印机端口(串行,并行或网络)
^XA^FO40,40^AC2,20^FD^FS^FO40,60^BY2,2.8,10^BCN,100,Y,N,N^FD Barcode label ^FS^XZ
希望它有所帮助。
答案 2 :(得分:0)
您可以使用适用于Android和iOS的Mobi Print Utility将PDF打印到Zebra打印机。它可以打印蓝牙或wifi。
答案 3 :(得分:0)
在 ios 上下载 Zebra 设置打印机:
https://apps.apple.com/us/app/zebra-printer-setup-utility/id1454308745。
然后转到“设备语言”,然后选择“PDF”。
然后是一个简单的发布请求,例如:
const pdfData = {
uri: localUrl, // <- your file
type: 'application/pdf',
name: 'file_name',
}
const data = new FormData()
data.append('pdf', pdfData)
fetch(printerUrl, { // <- "http://${IP}:9100/pstprnt/"
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
},
body: pdfData,
})
答案 4 :(得分:-1)
如果您有一台具有Link-OS的打印机,则可以从Zebra购买并在打印机固件上安装PDF Direct。然后,您可以将pdf直接发送到打印机。为此,我们连接到端口9100并发送PDF。
https://www.zebra.com/us/en/products/software/barcode-printers/link-os/pdf-virtual-device.html