Сгенерировать код ZPL с помощью PHP и распечатать хелл-аддон для тестирования?

Хорошо, я загрузил аддон Chrome ZPL для тестирования с помощью зебра-принтеров. Но теперь мне нравится печатать следующее:

$qrcode = "012039444"; $name = "Matthew Pitt"; $jobtitle = "CTO funny man"; $company = "Google light company"; $labelcode =<<<AAA ^XA ^FX Left section with QR code.this part doesn't seem to work in simulator ^FO100,100 ^BQN,2,10 ^FD$qrcode^FS ^FX Right section with name and job title. ^CF0,35,35^FO330,50 ^FB300,7,, ^FD$name\&\&$jobtitle^FS ^FO50,500^GB700,1,3^FS ^FX Bottom section only company name ^CF0,35,35^FO30,350 ^FB400,2,, ^FD$company^FS ^XZ AAA; print_example($labelcode); //print_example('Hello world'); function print_example($data) { // You'll need to change these according to your local names and options. $server = '127.0.0.1:9100'; $printer_name = 'zpl'; // That's effectively the same thing as your GK420d $options_flag = '-o position=top-left,ppi=203,landscape'; $process_name = 'LC_ALL=en_US.UTF-8 /usr/bin/lp -h %s -d %s %s'; $command = sprintf($process_name, $server, $printer_name, (string)$options_flag); $pipes = array(); $descriptors = array( 0 => array("pipe", "r"), // STDIN 1 => array("pipe", "w"), // STDOUT 2 => array("pipe", "w") // STDERR ); $process = proc_open($command, $descriptors, $pipes); // Couldn't open the pipe -- shouldn't happen if (!is_resource($process)) trigger_error('Printing failed, proc_open() did not return a valid resource handle', E_USER_FATAL); // $pipes now looks like this: // 0 => writeable handle connected to child stdin // As we've been given data to write directly, let's kinda like do that. fwrite($pipes[0], $data); fclose($pipes[0]); // 1 => readable handle connected to child stdout $stdout = fgets($pipes[1]); fclose($pipes[1]); // 2 => readable handle connected to child stderr $stderr = fgets($pipes[2]); fclose($pipes[2]); // It is important that you close any pipes before calling // proc_close in order to avoid a deadlock $return_value = proc_close($process); // We've asked lp not to be quiet about submitting jobs so we can make // sure that the print job was submitted. $request_match = array(); if (!preg_match('/request id is\b(.+)/', $stdout, $request_match)) { echo ("Print to '$printer_name' failed. Please check the printer status."); return false; } echo ("Print to '$printer_name' succeeded. Job $request_match[1]."); return true; } 

[EDIT] – это правильная команда для вызова принтера

 LC_ALL=en_US.UTF-8 /usr/bin/lp -h zpl -d 127.0.0.1:9100 -o position=top-left,ppi=203,landscape 

[EDIT 2] Я пытаюсь с этим php

  $command = 'lp -h 127.0.0.1:9100 -d zpl ' . $labelcode . ' -o position=top-left,ppi=203,landscape'; $pipes = array(); $descriptors = array( 0 => array("pipe", "r"), // STDIN 1 => array("pipe", "w"), // STDOUT 2 => array("pipe", "w") // STDERR ); $process = proc_open($command, $descriptors, $pipes); echo 'test: ' . $process;