如何使用PHP将ZPL字体或图像发送到Zebra打印机

时间:2015-06-05 12:49:54

标签: php zebra-printers zpl

我知道如何使用fsockopen通过PHP打印ZPL,但我也有一些ZPL文件包含我标签上使用的字体和图形。

有谁能告诉我如何使用PHP将原始ZPL文件发送到打印机?目前我正在使用Zebranet Bridge,但我更愿意从PHP中完成此任务。

1 个答案:

答案 0 :(得分:4)

假设您知道如何通过PHP将ZPL命令发送到打印机,并且您希望以相同的方式打印字体或图形,则必须

  1. 获取资源的大小并将其二进制数据转换为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);
    }
    ?>
    
  2. 编写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";
    ?>
    
  3. 撰写ZPL脚本以打印下载的文件:

    <?php
    $zpl_print = "^XA";
    $zpl_print .= "^FO50,50";
    $zpl_print .= "^IME:RES.PNG";
    $zpl_print .= "^XZ";
    ?>
    
  4. 编写需要上述脚本(2)和(3)的PHP脚本,以便将$zpl_download$zpl_print发送到打印机。