Материалов на тему «как сделать принтер доступным для iPhone/iPad» в интернете масса, но на русском языке их нет, потому решил сам немного об этом написать.
И так, у нас есть принтер, он подключен к комьютеру под управлением Linux/*BSD или к любому другому, где есть а) avahi и б) cups. Начинаем сращивание…
Сперва пропишем принтер в CUPS (Common UNIX Printing System), тут, надеюсь, подсказок не надо, каждый делает, как ему удобно.
Второе — нам надо дать системе Avahi (реализация Bonjour в *nix-системах), что есть принтер, о котором надо сообщать в сети, создаем файл /etc/avahi/services/printer.service с нижеследующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>HP LaserJet 1022</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtver=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/HP_LaserJet_1022</txt-record> <txt-record>ty=HP LaserJet 1022</txt-record> <txt-record>adminurl=http://172.16.32.2:631/printers/HP_LaserJet_1022</txt-record> <txt-record>note=Home Printer</txt-record> <txt-record>priority=0</txt-record> <txt-record>product=virtual Printer</txt-record> <txt-record>printer-state=3</txt-record> <txt-record>printer-type=0×801046</txt-record> <txt-record>Transparent=T</txt-record> <txt-record>Binary=T</txt-record> <txt-record>Fax=F</txt-record> <txt-record>Color=T</txt-record> <txt-record>Duplex=T</txt-record> <txt-record>Staple=F</txt-record> <txt-record>Copies=T</txt-record> <txt-record>Collate=F</txt-record> <txt-record>Punch=F</txt-record> <txt-record>Bind=F</txt-record> <txt-record>Sort=F</txt-record> <txt-record>Scan=F</txt-record> <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record> <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record> </service> </service-group> |
где указанные ниже строки надо скорректировать по вашему вкусу:
- 4-ая строка HP LaserJet 1022 — это имя, под которым принтер будет виден в сети;
- 11-ая строка rp=printers/HP_LaserJet_1022 — это имя принтера в CUPS, можно сходить сюда и посмотреть имя;
- 12-ая строка ty=HP LaserJet 1022 — очередное имя принтера
- 13-ая строка adminurl= — это полный путь с ip-адресом или именем хоста к принтеру;
- 14-ая строка note=Home Printer — это комментарий, описание принтера.
Шаг третий, требуется просмотреть и откорректировать параметры CUPS, чтобы внешние устройства могли печатать:
открываем любимым редактором файл /etc/cups/cupsd.conf и вставляем строку
1 | ServerAlias * |
сразу после строки Port 631, обычно таковой строки нет в файле идущим к Fedora.
А также проверяем возможность доступа, ищем тэги:
1 2 3 4 | <Location /> Order allow,deny Allow all </Location> |
Внутри тэга Order и Allow должны быть примерно такими, как указано. Чтобы любой мог печатать, ну или скорректируйте по своему выбору для безопасности, но так, чтобы iУстройства смогли получить доступ к CUPS.
Сохраняем файлы и перезапускаем демоны:
1 2 | systemctl restart cups.service systemctl restart avahi-daemon.service |
и если надо, то включаем avahi-daemon для загрузки при старте системы:
1 | systemctl enable avahi-daemon.service |
Вот и все. Теперь iУстройства будут видеть ваш принтер.