Принт-сервер. Печать с гаджетов.
![](/images/news/print_ios.jpg)
Как распечатать информацию с планшета или телефона на iOS, Android ?
Да легко и просто, нажимаем распечатать и ждем, когда принтер выплюнет готовый листок. Только это легко и просто, если имеется в наличии принтер с доступом к сети и поддержкой AirPrint.
А как распечатать информацию с гаджетов на принтере, который не создан для для этого ?
В процессе постепенного перехода в лагерь пользователей яблочной продукции, я стал счастливым обладателем новенького iPad. Ну и как-то привык и приспособился работать на этом гаджете. Да что там привык — процентов 80 работы выполняю на нем. Но об этом более подробно позже, сейчас вернусь к основной сути вопроса.
Временами появляется необходимость быстренько распечатать ту или иную информацию с iPad, а иногда прямо из iPhone. Поизучал тему, понял, что нужно покупать принтер с поддержкой технологии airPrint, или другими различными вариантами поддержки интернет-печати… Самое дешевое изделие, которое я нашел в наших магазинах стоит не менее 9000 рублей. При этом дома уже стоят два относительно стареньких, но вполне рабочих зверя — монохромное лазерное и цветное струйное МФУ, которые полностью удовлетворяют домашние потребности в бумагомарании. Поэтому вариант с приобретением третьего агрегата ради планшето-телефонов финансово нецелесообразен.
Нет, ну можно, конечно, использовать следующий алгоритм — скинуть информацию в облако, включить компьютер, дождаться синхронизации, отправить на печать…. Собственно, я так и делал, что не есть удобно. И лениво совершать кучу ненужных действий. Лень, как известно, двигатель прогресса, а в совокупности с желанием сэкономить денежки, таки вообще толкает на решение этой проблемы с минимальными потерями.
Значит выходим из положения и учим имеющуюся технику выполнять доселе неизвестные ей функции.
Что мы имеем:
-Цветное МФУ Epson CX7300 с хитрыми заправляемыми картриджами
-Небольшой обычный компьютер, который выполняет дома функцию файлового сервера на базе Ubuntu-server 16.04
И так, заставим печатать принтер на примере EPSON CX7300, USB провод которого я и вставил в порт сервера.
Подключаемся к серверу поднимаем наш принт-сервер CUPS и добавляем демон поддержки airPrint:
$ sudo apt-get install cups
$ sudo add-apt-repository ppa:hughescih/ppa && sudo apt-get update && sudo apt-get install airprint-daemon
Скопируем на всякий случай оригинальный конфигурационный файл
$ sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
Немного изменим немного конфиг:
$ sudo nano /etc/cups/cupsd.conf
Открываем доступ к порту с любого адреса (за свою внутреннюю сеть не беспокоюсь, а извне этот порт и так закрыт файрволом):
MaxLogSize 1m
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
Добавляем своего пользователя в группу lpadmin:
$ sudo usermod -aG lpadmin <username>
Заходим в веб-интерфейс принт-сервера по адресу https://192.168.10.1:631/admin/ (в данном случае 192.168.10.1 — адрес моего сервера)
Как вариант, при входе в веб-морду, может появиться надпись «Запрещено», чтоб избежать этого снова возвращаемся к cupsd.conf
$ sudo nano /etc/cups/cupsd.conf
И в секциях Location добавляем строку:
Allow 192.168.10.0/255.255.255.0 (в данном случае 192.168.10.0 — адрес моей локальной сети)
Например:
AuthType Default
Require user @SYSTEM
Allow 192.168.10.0/255.255.255.0
Order allow,deny
Все, мы зашли в веб-консоль администрирования нашего принт-сервера, пока на этом остановимся, вернемся на минутку в консоль.
Для нормального функционирования airPrint, нам надо удостовериться в нормальной работе демона Avahi (что это такое, читаем статью на Хабре тут )
Смотрим работу службы командой:
Добавляем своего пользователя в группу lpadmin:
$ sudo service avahi-daemon status
Если все нормально, ответ будет примерно таким:
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
Active: active (running) since Ср 2018-03-21 21:13:29 +05; 2 days ago
Main PID: 1093 (avahi-daemon)
Status: "avahi-daemon 0.6.32-rc starting up."
Tasks: 2
Memory: 600.0K
CPU: 8.149s
CGroup: /system.slice/avahi-daemon.service
├─1093 avahi-daemon: running [homeserv.local
└─1095 avahi-daemon: chroot helpe
мар 21 21:13:29 homeserv avahi-daemon[1093]: Successfully dropped remaining capabilities.
мар 21 21:13:29 homeserv avahi-daemon[1093]: No service file found in /etc/avahi/services.
мар 21 21:13:29 homeserv avahi-daemon[1093]: Joining mDNS multicast group on interface eno2.IPv6 with address fe80::9aee:cbff:fe43:e09d.
мар 21 21:13:29 homeserv avahi-daemon[1093]: New relevant interface eno2.IPv6 for mDNS.
мар 21 21:13:29 homeserv avahi-daemon[1093]: Joining mDNS multicast group on interface eno2.IPv4 with address 192.168.2.15.
мар 21 21:13:29 homeserv avahi-daemon[1093]: New relevant interface eno2.IPv4 for mDNS.
мар 21 21:13:29 homeserv avahi-daemon[1093]: Network interface enumeration completed.
мар 21 21:13:29 homeserv avahi-daemon[1093]: Registering new address record for fe80::9aee:cbff:fe43:e09d on eno2.*.
мар 21 21:13:29 homeserv avahi-daemon[1093]: Registering new address record for 192.168.2.15 on eno2.IPv4.
мар 21 21:13:30 homeserv avahi-daemon[1093]: Server startup complete. Host name is homeserv.local. Local service cookie is 2970492526.
Забегая вперед, рекомендую скачать и установить в систему драйвер принтера. В принципе, при установке принтера, Cups сам предложил драйвер, однако нормальной работы у меня с ним так и не получилось. Пришлось искать, качать и ставить другой, благо на данную модель найти проблем не было. Драйвер нашел в Гугле по словам: epson stylus cx7300 cups driver и самая первая ссылка привела меня на сайт https://www.openprinting.org, где нашелся готовый deb-пакет с драйвером, который нужно скачать учитывая битность системы.
Закидываем, драйвер на сервер, например в нашу домашнюю папку /home/user и запускаем установку:
$ sudo dpkg -i /home/user/название_скачанного_пакета.deb
Система может ругнуться на отсутствие зависимостей и остановить установку, лечим командой:
$ sudo sudo apt-get install -f
По окончанию установки в нашей системе появится еще один драйвер на наш принтер. Возможно, что с другим принтером вполне нормально заработают драйверы, предложенные системой, но мне не повезло…
Теперь, когда вроде все подготовительные манипуляции завершены, возвращаемся в веб-интерфейс нашего принт-сервера и на вкладке «Администрирование» ставим галочки как на рисунке:
Дальше в этой же вкладке жмем «добавить принтер», на открывшейся странице видим наше устройство, жмем продолжить, дальше я все оставлял по умолчанию, лишь на страничке драйвера выбрал новый, установленный мной.
После добавления устройства, проверки печати из системы, желательно перезагрузить весь сервер, ну так, на всякий случай, чтоб убедиться, что все демоны и сервисы запустились как положено. В принципе, на этом все. Тестируем на наших гаджетах. У меня заработало без проблем.
- RusLan