02-06-2008 14:44
Использование Windows-принтера из Linux-а очень простО. Не считая небольшого конфигурирования, единственное, что потребуется, -- это утилита smbprint. Помимо этого Samba предоставляет утилиту smbspool, которая выполняет точно такую же задачу как и smbprint. Однако аргументы ее командной строки сделаны таким образом, чтобы она могла быть использована как спулер (spooler) Common Unix Printing System. В этом разделе мы рассмотрим только smbprint.
Чтобы настроить Windows-принтер, для начала потребуется создать конфигурационный файл, следующий спецификации SMB. Рекомендуемое местоположение такого файла $SPOOL_DIR/lpd/<printer-name>, где $SPOOL_DIR стандартный spool-каталог вашей системы. Например, в системе Debian таким каталогом является /var/spool. Создайте такой каталог и затем создайте файл, содержащий имя print-сервера, наименование общедоступного ресурса и пароль (если это необходимо). Сохраните такой файл в новом каталоге с именем .config. Например, на моем Linux-компьютере, удаленный принтер Canon BJ-200, установлен следующим образом:
$ cat /var/spool/lpd/canon/.configserver=KEARNEYservice=CANONpassword=""
Теперь можно отправить задание на печать на удаленный принтер выполнением команды smbprint:
$ smbprint /var/spool/lpd/canon/acct < print.job
Первый аргумент это имя учетного файла (accounting file), в который lpd должен журналировать задание на печать. Этот файл не обязан существовать, однако он должен быть в правильном spool-подкаталоге. Утилита smbprint предполагает, что конфигурационный файл находится в том же самом каталоге, что и этот учетный файл. Вторым аргументом является файл, составляющий задание на печать, форматированный в соответствии с языком управления принтера. Если Вы недостаточно компетентны в PostScript-е, то потребуется использовать Ghostscript (gs), чтобы конвертировать PostScript-файл в конкретный язык управления принтером. В моем случае (принтер Canon bubble jet), я использую драйвер bj200, что выражается в следующей командной строке:
$ cat myfile.ps | gs -q -dSAFER -sDEVICE=bj200 -dQuality=1 -dNOPAUSE \ \\-sOutputFile=- - | smbprint /var/spool/lpd/canon/acct
Я поместил эту командную строку в shell-скрипт, и тогда всякий раз когда я перенаправляю PostScript-документ на этот скрипт, происходит удаленная печать.
Последний штрих состоит в том, чтобы объединить вызов этого скрипта с той print-архитектурой, которую Вы предпочитаете. Например, если Вы используете lpd/lprng, то потребуется изменить строку в /etc/printcap, чтобы заявить этот скрипт как output-фильтр:
# /etc/printcap: printer capability database. See printcap(5).# You can use the filter entries df, tf, cf, gf, etc. for# your own filters. See /etc/filter.ps, /etc/filter.pcl, and# the printcap(5) manual page for further details.canon|Canon BJ-200 on Kearney:\ \\:sd=/var/spool/lpd/canon:\ \\:af=/var/spool/lpd/canon/acct:\ \\:mx#0:\ \\:sh:\ \\:of=/etc/printing/canon.filter:
<< Доступ к ресурсам с помощью smbsh и smbfs | Multi Tool Linux | Графические клиенты >>