什么叫PJL?
【分类:条码科普】
什么叫PJL?
打印指令这块,除了ZPL、TSPL这些打印机语言,还有一个经常在技术文档里出现的缩写叫PJL。很多人搞不清它跟ZPL是什么关系,今天把这个讲明白。
PJL全称是Printer Job Language,翻译过来叫"打印机作业语言"。它是惠普在1990年代推出来的一套打印作业控制指令,设计目标是在打印任务开始之前,跟打印机"打招呼",告诉它这个任务是什么格式、用什么纸张、打印几份、要不要双面等等。你可以把PJL理解成打印任务的"信封",里面装着真正的打印数据(PCL、PostScript或者ZPL)。
PJL的典型结构是这样的:先写一行@PJL ENTER LANGUAGE = ZPL,告诉打印机接下来的数据是ZPL格式;然后才是真正的ZPL指令(^XA...^XZ);任务结束后打印机回到PJL等待状态。
为什么需要PJL?因为打印机有时候要同时处理不同语言的任务,比如这一台机器既接PCL的办公文档,又接ZPL的标签打印。打印机怎么知道下一批数据是哪种语言?靠PJL开头的ENTER LANGUAGE指令来切换。没有这一句,打印机可能把ZPL当成PCL来解析,结果就是乱码。
PJL还能干别的事。比如@PJL INFO STATUS可以查询打印机当前状态,@PJL INFO VARIABLES可以查询打印机支持的参数,@PJL DEFAULT可以设置打印机的默认值,@PJL INQUIRE可以查询当前某个参数的值。这些指令在做批量设备管理时很有用,不用进Web界面就能远程问打印机要信息。
实际调试中,PJL*常见的作用就是"告诉打印机接下来是什么语言"。很多人在9100端口直接发ZPL指令,打印机偶尔认偶尔不认,就是因为打印机停在上一次PCL任务的状态里,收到ZPL不知道该怎么解析。在ZPL前面加一行@PJL ENTER LANGUAGE = ZPL,问题往往就解决了。
PJL是惠普主导的标准,主流打印机厂商都兼容,包括斑马、惠普、佳能等。在条码标签打印机里,PJL一般跟ZPL或CPCL配合使用。
像斑马ZT411在接MES系统时,工程师写打印脚本经常在ZPL指令前加PJL头。耗材选昕维混合基碳带,打铜版纸外箱标签,技术支持能帮你把指令和材料一起调通。