Содержание

Как сделать принтер сетевым для печати с телефона | Блог Кирилла Грищука

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

Тот самый принтер

Однако, из интерфейсов у принтера есть только usb, который не очень удобно подключать к современной технике через переходники и ходить постоянно подключать для печати одного документа раздражает.


Решено было сделать принтер сетевым, а доступ к нему расшарить через сервер, чтобы у потребителей не было проблем а какие драйвера необходимо установить для работы хотелось сделать абстракцию для печати и оказалась она существует.

OpenPrinting CUPS. Формально это open-source имплементация протокола печати.


Если вы захотите повторить мою настройку, необходимо соблюсти несколько требований

  1. Принтер, необходимо проверить, что он поддерживается через поиск на примере моего принтера обращаем на надпись в шапке works Mostly.
  2. Сервер, подключенный к сети, именного с него будет осуществляться подключение принтера.
  3. Docker, работающий на сервере, существуют готовые образы и чтобы не заниматься настройкой гораздо удобнее запустить так.
  1. Устанавливаем docker, если его нет
  2. Подключаем принтер к серверу, в моем случае по usb
  3. Запускам docker-compose файл
  4. Настраиваем принтер в админке
  5. Наслаждаемся работой и печатью с любых устройств

Для удобной настройки я сделал все в docker-compose.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
version: "3.2"
services:
  deluge:
    image: chuckcharlie/cups-avahi-airprint:latest
    # доступ к host сети
    network_mode: host
    container_name: cups
    environment:
      - CUPSADMIN=admin
      - CUPSPASSWORD=admin
    devices:
    # пробрасываем usb
      - /dev/bus/usb:/dev/bus/usb
    volumes:
      - type: bind
        source: /home/user/services
        target: /services
      - type: bind
        source: /home/user/config
        target: /config

    restart: unless-stopped
Несколько комментариев, network_mode: host необходим для работы airprint, если просто пробросить порты не заведется. /dev/bus/usb необходим для доступа по usb к принтеру. Пути для volume стоит тоже изменить, на любые подходящие вам.

  1. Открываем админку, она будет доступна по адресу <адрес сервера>:631/

    Админка

  2. Переходим в раздел Administration <адрес сервера>:631/admin, Add printer
  3. Выбираем принтер подключенный по usb

    Добавление принтера

  4. Даем название принтеру и обязательно нажимаем галочку поделиться принтером (Share this printer)

    Шаринг принтера

  5. Принтер успешно добавлен и должен быть доступен с других устройств

    Принтер обнаружен