У нас есть окно в сети и общие принтеры на них.
Я добавил их через веб-интерфейс CUPS, и все они работают как шарм, мы можем печатать их по php:
exec('lp -d vasosamsung file.pdf');
Прохладный. Я искал класс Printer, что делает некоторую проверку перед запуском задания на печать.
Первое, что я проверяю, это принтер существует:
lpstat -p vasosamsung
Если это не говорит, назначение недействительно, тогда да, перейдите. И вот эта сложная часть.
Если ответ простаивает или печатается, все в порядке, давайте отправим задание.
BUT!
Проблема в том, что принтер говорит о простоях, потому что на моей машине принтер добавлен в список принтеров, но, к сожалению, он отключен. Это то, что я хочу поймать. Появляется больше проблем.
Хорошо, я могу справиться с этим, задания находятся в очереди, даже если сам принтер отключен (вытащен из машины).
Реальная проблема заключается в том, что, когда я удалял весь принтер с моих «Принтеров и устройств» с помощью правого клика и удаления устройства, CUPS говорит, что он не работает. Я перезапустил CUPS с помощью service cups restart и получил stat:
printer vasosamsung is idle. enabled since Thu 06 Apr 2017 03:34:26 PM CEST
Это неверно. Теперь на моей машине теперь есть принтер. Хуже всего, если я отправлю ему документ, он говорит:
string(40) "request id is vasosamsung-71 (1 file(s))"
, и задание находится в веб-интерфейсе:
vasosamsung-71 Unknown Withheld 1933k 1 held since
Чт Апр. 6 15: 59:43 2017
Мой вопрос: есть ли способ получить физический статус принтера? Offline, печать и т. Д. ... не из CUPS?
Если это невозможно, могу ли я как-то получить, принтер находится в списке устройств на целевой машине, по крайней мере?
BUT!
Хе-хе, когда я выключил свою машину, принтер тоже не работает:)
Я думаю, это потому, что принтер vasosamsung находится в CUPS, и это не фискальное устройство, теперь я вижу, но мои вопросы по-прежнему остаются.