我知道如何使用fsockopen通过PHP打印ZPL,但我也有一些ZPL文件包含我标签上使用的字体和图形。
有谁能告诉我如何使用PHP将原始ZPL文件发送到打印机?目前我正在使用Zebranet Bridge,但我更愿意从PHP中完成此任务。
答案 0 :(得分:4)
假设您知道如何通过PHP将ZPL命令发送到打印机,并且您希望以相同的方式打印字体或图形,则必须
获取资源的大小并将其二进制数据转换为ASCII十六进制字符串:
<?php
$res_size = 0;
$res_string = "";
$res_source = "http://php.net/images/logo.php";
$handle = fopen($res_source,"rb");
while (!feof($handle)) {
$data = fread($handle,1);
$res_size++;
$res_string .= bin2hex($data);
}
?>
编写ZPL脚本以将转换后的资源下载到打印机内存:
<?php
require('bin2hex.php'); // script (1) above
$zpl_download = "^XA";
$zpl_download .= "~DYE:RES,P,P,";
$zpl_download .= $res_size;
$zpl_download .= ",,";
$zpl_download .= $res_string;
$zpl_download .= "^XZ";
?>
撰写ZPL脚本以打印下载的文件:
<?php
$zpl_print = "^XA";
$zpl_print .= "^FO50,50";
$zpl_print .= "^IME:RES.PNG";
$zpl_print .= "^XZ";
?>
编写需要上述脚本(2)和(3)的PHP脚本,以便将$zpl_download
和$zpl_print
发送到打印机。