12.2.5. Доступ к Windows-принтеру с компьютера, работающего под Linux
12.2.5. Доступ к Windows-принтеру с компьютера, работающего под Linux
Настройки сетевого принтера находятся в файле /etc/printcap. Примерное содержание этого файла с комментариями приведено в листинге 12.8.
Листинг 12.8. Файл /etc/prtntcap
# //nt_ws1/hp5m via smbprint
#
lp:
# описание принтера
:cm=HP 5MP Postscript hp5in on nt_ws1:
# имя устройства, открываемого для вывода
:lp=/dev/lp0:
# каталог спула принтера (на локальной машине)
:sd=/var/spool/lpd/lp:
# файл учета использования принтера
:af=/var/spool/lpd/lp/acct:
# максимальный размер файла. Значение 0 означает отсутствие ограничений
:mx# 0:
# имя входного фильтра
:if=/usr/bin/smbprint:
В пакет Samba входит сценарий smbprint. С помощью этого сценария можно распечатывать документы на сетевом принтере, используя сервисы SMB. Возможно, в состав вашего пакета он не входит, поэтому я воссоздал его в листинге 12.9. Этот листинг частично позаимствован из руководства по пакету Samba.
Листинг 12.9. Сценарий smbprint
#!/bin/sh -х
# (с) Andrew Tridgell
# Этот скрипт является фильтром для системы печати,
# использующей
# файл /etc/printcap
# Он использует программу smbclient для печати файла на
# сетевом принтере,
# который подключен к рабочей станции Windows.
#
#
# Эта запись создает unix-принтер, названный "smb",
# который будет печатать с помощью этого сценария. Вам
# необходимо создать каталог спула /usr/spool/smb с
# соответствующими правами и владельцем
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:
# if=/usr/local/samba/smbprint
# Далее сценарий был изменен Майклом Гамильтоном
# так что сервер, сервис и пароль могут быть считаны из
# файла
# /usr/var/spool/lpd/PRINTNAME/.config
#
# Для того, чтобы это работало, запись в /etc/printcap
# должна включать файл учета использования (af=...):
#
#cdcolour:
# :cm=CD IBM Colorjet on 6th:
# :sd=/var/spool/lpd/cdcolour:
# :af=/var/spool/lpd/cdcolour/acct:
# :if=/usr/local/etc/smbprint:
# :mx=0:
# :lp=/dev/null:
#
# Файл /usr/var/spool/lpd/PRINTNAME/.config должен
# содержать
# server=PC_SERVER
# serviсe=PR_SHARENAME
# password="password"
#
#Например,
# server=PAULS_PC
# service=CJET_371
# password=""
#
# Файл для отладочной информации, можно изменить на /dev/null
#
logfile=/tmp/smb-print.log
spool_dir=/var/spool/lpd/lp
config_file=$spool_dir/.config
eval `cat $config_file`
echo "server $server, service $service" >> $logfile
(
echo translate
echo "print -"
cat
) | /usr/bin/smbclient "\\$server\$service" $password -U $user -N -P >> $logfile
Теперь вы можете печатать на сетевом принтере. Но, тем не менее, я все же рекомендую прочитать руководство по пакету Samba для получения более подробной информации о печати на сетевых принтерах.
Данный текст является ознакомительным фрагментом.