Печать непосредственно на сетевой принтер с использованием php

Я не могу распечатать страницу для сетевого принтера, используя php.
Но это работает, если это локальный принтер. Я установил php_printer.dll и включен в php.ini Ниже приведен код:

//$handle = printer_open("Send To OneNote 2007"); ///This Works $handle = printer_open('\\\\192.168.0.8\\Canon MF4320-4350'); printer_set_option($handle, PRINTER_MODE, "RAW"); printer_write($handle, "TEXT To print"); printer_close($handle); 

Он показывает ошибку

Предупреждение: printer_write () [function.printer-write]: не удалось выделить printerjob [5] в E: \ Server \ xampp \ htdocs \ Kiosk \ Admin \ print.php в строке 16

Если вы используете командную строку PHP (CLI), печать на сетевых принтерах будет работать. Кстати, ваш $ addr.

Проблема заключается в PHP, когда вы объединяете его с Apache. В Windows ваши скрипты php будут запускаться под учетной записью пользователя SYSTEM. Из-за проблем безопасности все сетевые ресурсы не отображаются в SYSTEM.

Чтобы устранить эту проблему, создайте нового пользователя с правами администратора (или, по крайней мере, с видимостью сетевого ресурса). В Windows, если вы запустите Apache в качестве службы, нажмите кнопку SERVICE в Apache Service Monitor. В Apache 2.2 щелкните правой кнопкой мыши по свойствам. На вкладке LOGIN измените пользователя из SYSTEM на новую созданную учетную запись пользователя. Перезапустите Apache. Теперь вы можете запустить свой PHP-скрипт для печати на сетевых принтерах.

Попробуйте использовать «s с 4 \ или с 3. например:

 $handle = printer_open("\\\\192.168.0.8\\Canon MF4320-4350"); // or $handle = printer_open('\\\192.168.0.8\Canon MF4320-4350'); 

Кроме того, попробуйте использовать доменное имя, а не IP (например, computer-name или full.address.example.com ).

Просто глядя на эту строку, она чувствует себя очень сильно, как будто это может быть вызвано сбой назад.

Совет отладки: укажите сетевой адрес в переменной, а не непосредственно в printer_open() . Затем используйте print() или аналогичную для отображения значения.

 <?php $addr = '\\\\192.168.0.8\\Canon MF4320-4350'; print $addr; printer_open($addr); ... ?> 

Это позволит вам увидеть значение используемой строки, что может помочь вам понять, что происходит не так, и, что более важно, поможет вам понять, как ее исправить.

Надеюсь, это поможет.