Принт-сервер – это программно-аппаратный комплекс, позволяющий осуществлять общий доступ к принтеру по локальной сети.
Принт-сервер можно сделать при помощи Raspberry Pi и сервера печати CUPS (Common UNIX Printing System).
Установка и настройка принт-сервера CUPS
Пакет CUPS включен в стандартные репозитории Debian, поэтому для установки нужно просто выполнить консольную команду:
1 |
sudo apt-get install cups |
В дополнение к CUPS установим еще Foomatic.
Foomatic – это такая база драйверов для принтеров, существенно расширяющая стандартную базу драйверов CUPS. Без foomatic шансы на то, что вы найдёте нужный драйвер ничтожны:
1 |
sudo apt-get install foomatic-db |
Теперь добавим пользователя pi в группу lpadmin, позволяющую управлять принтерами:
1 |
sudo adduser pi lpadmin |
Далее необходимо отредактировать файл конфигурации:
1 |
sudo nano /etc/cups/cupsd.conf |
С настройками CUPS по умолчанию административный веб-интерфейс доступен только локально. Сделаем так, чтобы он был доступен с любого устройства по локальной сети. Для этого нужно найти найти и закомментировать строку Listen localhost:631, а также добавить новую строку Port 631:
1 2 3 |
# Only listen for connections from local machine. #Listen localhost:631 Port 631 |
Далее нужно добавить еще несколько новых строк в этом же файле, чтобы открыть доступ к админ-панели по локальной сети.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Restrict access to the server... <Location /> Order allow,deny Allow @Local ///эту строку добавляем </Location> # Restrict access to the admin pages... <Location /admin> Order allow,deny Allow @Local ///эту строку добавляем </Location> # Restrict access to configuration files... <Location /admin/conf> AuthType Default Require user @SYSTEM Order allow,deny Allow @Local ///эту строку добавляем </Location> |
Перезапустим CUPS для применения сделанных изменений:
1 |
sudo service cups restart |
Если все сделано правильно, то веб-интерфейс CUPS станет доступен по адресу http://ip-адрес-raspberry-pi:631 из браузера.
Переходим на вкладку “Администрирование”:
Убеждаемся, что стоит галочка на “Разрешить совместный доступ к принтерам, подключенным к этой системе” и жмем на “Добавить принтер”
В нем выбираем свой принтер из списка обнаруженных системой. В моем примере это будет EPSON L800 Нажимаем “Применить” и выбираем подходящий драйвер:
Нужно выбрать из списка драйвер для своей модели принтера, но если таковых нет – скорее всего подойдет драйвер от соседней модели того же модельного ряда. В этом примере я устанавливаю драйвер от модели EPSON STYLUS T50 на принтер EPSON L800.
Успешная печать пробной страницы – признак того, что драйвер для принтера подобран верно. Если с пробной страницей возникают проблемы, если принтер не печатает ее вообще или выдает пустые листы без текста – значит проблема в подборе драйвера. Нужно удалять установленный принтер и устанавливать его заново, указывая при этом другие драйвера.
Подключение сетевого принтера к Windows-устройству
Предположим, что установка драйвера для подключенного к принт-серверу CUPS принтера прошла успешно. Теперь нужно подружить с этим принтером компьютер, работающий под управлением Windows. Для этого выбираем сетевой принтер в “установке принтера” и далее по предложениям мастера установки.
Доступ к сетевому принтеру с устройств под управлением iOS
Любым принтером, расшаренным через принт-сервер CUPS, можно пользоваться с любого iOS-устройства, а также с компьютеров Mac вообще без установки драйверов.
Это обусловлено тем, что CUPS поддерживает созданную корпорацией Apple технологию беспроводной печати AirPrint:
Добавляем в систему PDF-принтер
Отдельно напишу о том, как подключить к принт-серверу CUPS виртуальный PDF-принтер.
Что есть PDF-принтер? Это виртуальное устройство, которое добавляется в систему как обычный принтер и при отправке документа на печать генерирует из него pdf-файл. Использовать PDF-принтер удобно для сохранения статей из интернета или отдельных страниц многостраничного документа в виде отдельного файла.
Для установки PDF-принтера нужно установить отдельный пакет:
1 |
sudo apt-get install cups-pdf |
Затем создать на Raspberry Pi папку для хранения получаемых pdf-файлов и прописать к ней права доступа:
1 2 3 |
mkdir -p /mnt/usbstorage/PDF sudo chown pi:lpadmin /mnt/usbstorage/PDF sudo chmod 777 /mnt/usbstorage/PDF |
И отредактировать файл конфигурации:
1 |
sudo nano /etc/cups/cups-pdf.conf |
В нем нас интересуют следующие строки:
1 |
#Out /var/spool/cups-pdf/${USER} |
1 |
#AnonDirName /var/spool/cups-pdf/ANONYMOUS |
1 |
#Spool /var/spool/cups-pdf/SPOOL |
1 |
#TitlePref 0 |
Их нужно раскомментировать (удалить знак #) и изменить следующим образом:
1 |
Out /mnt/usbstorage/PDF |
1 |
AnonDirName /mnt/usbstorage/PDF |
1 |
Spool /mnt/usbstorage/PDF |
1 |
TitlePref 1 |
Первые 3 строки меняют пути сохранения pdf-файлов в созданную нами директорию на внешнем носителе, а четвертая строка меняет формат генерации названия выдаваемого файла. Дело в том, что с настройкой по умолчанию CUPS-PDF не осиливает длинные русскоязычные названия документов и в результате не сохраняет сгенерированные pdf-файлы на диск. После изменения этой настройки проблема уходит.
После чего остается перезагрузить сервер CUPS:
1 |
sudo service cups restart |
А затем установить новый принтер и подключить его к компьютеру под Windows, эти шаги идентичны шагам по установке и подключению обычного принтера, описанным выше.