Для организации доступа к Linux-принтеру с Windows машин, вам необходимо
убедиться, что принтер работает под Linux. Если вы можете печатать под
Linux, то организация доступа к принтеру будет очень проста.
Заметьте, что для того, чтобы печатать пользователи Windows должны быть
зарегистрированы на сервере Linux/Samba. Windows 95/98 будет пытаться
аутентифицироваться на сервер печати с тем именем и паролем, который
использовался для входа на машину с Windows Это значит, что если вы нажали
на 'Cancel (Отмена)' при входе в Windows, то вы не сможете печатать, или
подключаться к SMB сервисам! Windows NT позволяет явно задавать имя и
пароль при подключении к принтеру.
Смотрите Printing HOWTO для дополнительной информации о настройке печати.
Добавьте настройку принтера в ваш файл smb.conf:
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
[printers]
comment = All Printers
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
[ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
Убедитесь, что путь к принтеру (в этом случае для [ljet]) соответствует
буферной директории, указанной в файле /etc/printcap!
Строки:
printcap name = /etc/printcap
load printers = yes
контролируют должны ли все принтера, перечисленные в /etc/printcap по
умолчанию быть загружены. Если вы сделаете это, то нет причины для
настройки каждого принтера в отдельности. Раздел [printers] указывает
настройки для принтеров, которые вы хотите определить явно. Если
используемая вами подсистема печати не работает этим образом (BSD), то вам
необходимо настроить фальшивый файл printcap (или используйте 'print
command', смотрите ниже). Для дополнительной информации о системе printcap
смотрите Printing-HOWTO.
Полезным приемом для проверки сетевых соединений является изменение команды
печати на:
print command = cp %S /tmp/print.%P.%S
Итоговый файл может быть проанализирован.
ЗАМЕЧАНИЕ: Существуют некоторые проблемы с доступом к принтерам на
UNIX-машинах для машин с Windows NT используя Samba. Одна из проблем в том,
что NT неправильно видит сетевой принтер. Для решения этой проблемы,
смотрите замечание в файле docs/WinNT.txt дистрибутива
Samba. Другая проблема связана с проблемой пароля. Смотрите комментарий в
том же самом файле.
Oleg L. Machulskiy (
machulsk@shade.msu.ru) предложил более удобную для использования
команду печати, чем в вышеприведенном примере:
print command = smb2ps %s | lpr -r -h -P %p
где 'smb2ps' является скриптом, который преобразует буферный файл,
переданный из под Windows в обычно используемый файл Postscript. Он должен
удалять первые три и последние две строки, потому что эти строки содержат
некоторые коды PJL или PCL.
Такой подход нужен только если ваша машина с Windows печатает PCL, а не
настоящий Postscript. Я обнаружил, что Windows 95/98/NT не имеют общего
драйвера Postscript, но драйвер принтера "Digital turbo Printserver
20" может работать как хороший драйвер Postscript для большинства
случаев. Я также слышал, что для этих же целей может работать драйвер
"Apple LaserWriter II NTX".
Если вы создали буферный каталог для печати, вместо использования созданных
при установке дистрибутива Linux, то будьте внимательны с правами доступа!
Neil Fraser (
neilf@necon.co.za) предложил права доступа к буферному каталогу (в
нашем случае это, /var/spool/lpd/lpr) сделать равными 4755 (заметьте, что
установлен suid-бит). Это работает в его конфигурации, если владельцем
каталога является пользователь 'root', а группа равна 'lp'.
Jeff Stern (
jstern@eclectic.ss.uci.edu) написал, что он установил права доступа
к каталогу равными 777, для того, чтобы обычные пользователи могли
печатать, хотя он заметил, что он также добавил пользователей в группу
'lp'. Это решение пригодно для локальных системных администраторов; если
безопасность печати является предметом споров, то не используйте данное
решение. В домашних условиях, вы вероятно захотите, чтобы все могли
печатать.
Dr. Michael Langner (
langner@fiz-chemie.de) указал, что проблема прав доступа на запись
на дерево директорий /var/spool/lpd/ может быть избегнута, использованием
чего-то подобного "path=/tmp" и "print command = lpr -r -P%p
%s".
Иногда возникает ошибка разбора Postscript при печати Postscript с машины
под Windows, что вызывает печать лишних страниц в конце каждого
задания. Последняя страница всегда будет содержать сообщение "%%[
Lastpage ]%%" в заголовке. Это кажется случается только на машинах с
Windows 95 и 98 и это происходит из-за того, что Postscript является
плохо-сформированным.
Одним из способов обработки этой ошибки --- использовать скрипт для
удаления куска плохого Postscript из задания печати. Другим способом
является нахождение лучшего драйвера Postscript для Windows. Вероятно
лучший способ для нас это использовать LPRng вместо Postscript для печати
на сервер Samba.
Erik Ratcliffe (
erik@caldera.com), Caldera, сообщил, что использование LPRng
означает, что любой драйвер принтера может быть использован с машин под
Windows. На сервере Samba, они используют запись в /etc/printcap, которая
выглядит примерно так:
LPRng не требует : в конце каждой строки. Запись о принтере все равно
необходимо сделать в файле /etc/smb.conf для физического принтера. Строка
команды печати нужна для использования записи "raw" из файла
/etc/printcap и данные должны посылаться в двоичной форме. Попробуйте вот
такую командную строку:
print command = lpr -b -Praw %s
Вам также может понадобиться установить буферизацию печати на Windows95 для
печати прямо на принтер, вместо использования буферизации на сервере.
Если вы при печати постоянно получаете лишние страницы в конце задания с
клиентов с Windows, то попробуйте добавить директиву "sf" в файл
/etc/printcap. Это запретит прогон страниц, разделяющих задание, но не
будет влиять на прогон страниц внутри документов.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!