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

How to send ZPL font or image to Zebra printer using PHP

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

谁能告诉我如何使用 PHP 将原始 ZPL 文件发送到打印机?现在我正在使用 Zebranet Bridge,但我更喜欢能够从 PHP.

完成此操作

假设您知道如何通过 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. 编写一个PHP脚本,需要上面的脚本(2)和(3)将$zpl_download$zpl_print发送到打印机。