Принтер для iPhone/iPad через CUPS в Fedora 15

Материалов на тему «как сделать принтер доступным для 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Устройства будут видеть ваш принтер.

Добавить комментарий