Несмотря на то, что настройка печати с Windows-машин на линукс несложная и подробно описана, тем не менее печать по протоколу IPP через CUPS имеет существенный недостаток – размер задания при печати некоторых документов, особенно изображений, может увеличиваться до неприличных величин. Также помогает решить проблему невозможности проброса принтера через RDP. Поэтому предлагается способ настройки печати через виртуальный PDF- принтер. У этого способа есть один недостаток – Windows-машина вообще не имеет представления о принтере, который установлен в линукс, соответственно, специальные возможности печати для данного принтера будут недоступны. Ниже представлена инструкция по настройке данного способа печати.
- Создать в папке пользователя каталог .pdftemp. Здесь будут появляться файлы для печати. Обратить внимание на точку перед названием. Это будет скрытый каталог.
- Создать в папке .pdftemp каталог conf.
- Создать в папке conf текстовый файл (скрипт). Название pdftoprint.sh. Содержание:
#!/bin/sh DIR="$HOME/.pdftemp/" ERR_LOG="$DIR/conf/err.log" PFILE="$DIR/$1" if lp "$PFILE" ; then rm "$PFILE" else echo "Unable to print \"$PFILE\"" >> "$ERR_LOG" fi exit 0
Сохранить. Сделать запускаемым.
- Установить incron, cups, cups-pdf, system-config-printer.
- Добавить пользователя в группу incron.
- Отредактировать файл /etc/incron.allow — вписать имя пользователя.
- Добавить задание для incron.
incrontab -e /home/[user]/.pdftemp IN_CLOSE_WRITE /home/[user]/.pdftemp/conf/pdftoprint.sh $#
где [user] – это имя пользователя.
- проверить, что задание было добавлено
incrontab -l
- Перезапустить демон incron.
sudo incrond restart
- Установить и настроить все необходимые для работы принтеры. Убедиться в их нормальной работе.
- Должен быть установлен 2XClient. Ссылка на страницу для скачивания: http://www.2x.com/rdp-client/downloadlinks/
Примечание: Можно использовать любой другой клиент RDP, но, по личному опыту, только 2XClient обеспечивает устойчивый проброс файловой системы внутри сессии RDP. Также, в процессе эксплуатации в офисе, никаких глюков у этого клиента выявлено не было. - Настроить подключение через RDP. Обязательно разрешить проброс диска sda1 (Disk drives).
- На сервере должен быть установлен PDF-принтер (Adobe PDF, Foxit PDF Creator и т. п.).
- В настройках принтера установить печать без запроса на папку \\tsclient\sda1\home\[user]\.pdftemp — это папка, созданная в пункте 1. Снять, если есть, галку на «открывать после печати».
- Проверка имени принтера по умолчанию
lpstat -d
Установка принтера по умолчанию
lpoptions -d [имя_принтера]
- Для удобства пользователя вывести на рабочий стол кнопку запуска программы system-config-printer для оперативного изменения принтера по умолчанию. Заранее установить требуемый принтер.
Обратить внимание!! Печать происходит только на принтер по умолчанию.
Если всё сделано правильно, при печати на сервере на PDF-принтер по окончании формирования файла PDF печать пойдёт на выбранный принтер.
Если печать производится в рамках одной сети или есть непосредственный доступ по сети к данному компьютеру, например, через туннель, то рекомендуется расшарить папку печати через Samba и производить печать в эту расшаренную папку. Связано с тем, что доступ по сети в такую папку производится быстрее и скорость ограничена только внешними условиями, тогда как через канал внутри сеанса RDP эта скорость ограничена. Кроме этого появляется возможность такого способа печати (не через IPP), для других пользователей в сети.
Автор: Олег Белоусов.
skype: p_orinoko