| |
Для организации доступа к Linux-принтеру из Windows-машин, вам необходимо убедиться, что принтер работает и под Linux. Если вы можете печатать из под Linux, то организация доступа к принтеру будет очень простой.
Заметьте, что для печати пользователи Windows должны быть
зарегистрированы на сервере Linux/Samba. Windows 95/98 будет
пытаться аутентифицироваться на сервере печати с теми именем и
паролем, которые использовались при ``входе'' на машину Windows Это
значит, что если Вы нажали на Cancel
(Отмена) при ``входе'' в
Windows, то не сможете ни печатать, ни подключаться к SMB
сервисам. Windows NT позволяет более эффективно задавать имя и
пароль при подключении к принтеру.
Смотрите соответствующие разделы помощи для изучения настроек печати.
Добавьте настройку принтера в файл 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
содержится в фалах помощи.
Полезным приемом при проверке сетевых соединений является модификация команды печати:
print command = cp %S /tmp/print.%P.%S \emd{verbatim} Итоговый файл может быть проанализирован. Существуют некоторые проблемы с доступом к принтерам UNIX-машин из машин Windows NT с использованием Samba. Одна из проблем состоит в том, что NT может неправильно видеть сетевой принтер. Для решения этой проблемы, смотрите замечание в файле \verb|docs/WinNT.txt| дистрибутива Samba. Другая проблема связана с паролями. Смотрите комментарий в том же самом файле. Более удобная для использования команда печати, чем в вышеприведенном примере: \begin{verbatim} print command = smb2ps %s | lpr -r -h -P %p
где smb2ps является скриптом, который преобразует буферный файл,
переданный из Windows, в обычно используемый файл Postscript. Он
также должен удалять первые три и последние две строки, потому что
эти строки содержат некоторые коды PJL или PCL (если печатается
PCL, а не настоящий Postscript). Windows 95/98/NT не имеют общего
драйвера Postscript, но драйвер принтера Digital turbo Printserver 20
может работать как хороший драйвер Postscript в большинстве
случаев. Аналогично может работать и драйвер Apple LaserWriter II NTX
.
Если Вы создали буферный каталог для печати, то будьте внимательны
с правами доступа. Можно права доступа к буферному каталогу (в
нашем случае это, /var/spool/lpd/lpr
) сделать равными 4755
(заметьте, что установлен SUID
-бит). Это решение пригодно для
локальных системных администраторов; если безопасность печати
является предметом споров, то можно остановиться на других
решениях.
Поблемы с правами доступа на запись в директорий /var/spool/lpd/
могут быть избегнуты при использованиии чего-то подобного
path=/tmp
и print command = lpr -r -P%p %s
.
Иногда возникает ошибка разбора Postscript при печати из машины
под Windows, которая вызывает печать лишних страниц в конце
каждого задания. Последняя страница всегда будет содержать
сообщение %%[ Lastpage ]%%
в заголовке. Один из способов обработки
этой ошибки - использование скрипта для удаления куска плохого
Postscript из задания печати. Другим вариантом является нахождение
лучшего драйвера Postscript для Windows. Вероятно, лучший способ
состоит в использовании LPRng
вместо Postscript для печати на
сервер Samba. На сервере Samba, запись в /etc/printcap
запись
будет выглядеть примерно так:
raw:\ :rw:sh: :lp=/dev/lp1 :sd=/var/spool/lpd/raw :fx=flp
LPRng
не требует :\
в конце каждой строки. Запись о принтере все
равно необходимо сделать в файле /etc/smb.conf
- для физического
принтера. Строка команды печати нужна для использования записи raw
из файла /etc/printcap
, данные должны посылаться в двоичной форме.
Попробуйте ввести командную строку:
print command = lpr -b -Praw %s
Вам также может понадобиться установить буферизацию печати в Windows - для вывода прямо на принтер, вместо использования буфера на сервере.
Если при печати постоянно выводятся лишние страницы в конце
заданий Windows-клиентов, то попробуйте добавить директиву sf
в
файл /etc/printcap
, что запретит прогон страниц, разделяющих
задание, но не будет влиять на прогон страниц внутри документов.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |