BASH Programming - Введение



                

Доступ к принтеру Linux для Windows-машин - часть 2


print command = cp %S /tmp/print.%P.%S

Итоговый файл может быть проанализирован.

ЗАМЕЧАНИЕ: Существуют некоторые проблемы с доступом к принтерам на UNIX-машинах для машин с Windows NT используя Samba. Одна из проблем в том, что NT неправильно видит сетевой принтер. Для решения этой проблемы, смотрите замечание в файле docs/WinNT.txt дистрибутива Samba. Другая проблема связана с проблемой пароля. Смотрите комментарий в том же самом файле.

Oleg L. Machulskiy ( ) предложил более удобную для использования команду печати, чем в вышеприведенном примере:

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 ( ) предложил права доступа к буферному каталогу (в нашем случае это, /var/spool/lpd/lpr) сделать равными 4755 (заметьте, что установлен suid-бит). Это работает в его конфигурации, если владельцем каталога является пользователь 'root', а группа равна 'lp'.

Jeff Stern ( ) написал, что он установил права доступа к каталогу равными 777, для того, чтобы обычные пользователи могли печатать, хотя он заметил, что он также добавил пользователей в группу 'lp'. Это решение пригодно для локальных системных администраторов; если безопасность печати является предметом споров, то не используйте данное решение. В домашних условиях, вы вероятно захотите, чтобы все могли печатать.

Dr. Michael Langner ( ) указал, что проблема прав доступа на запись на дерево директорий /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 ( ), Caldera, сообщил, что использование LPRng означает, что любой драйвер принтера может быть использован с машин под Windows. На сервере 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

Вам также может понадобиться установить буферизацию печати на Windows95 для печати прямо на принтер, вместо использования буферизации на сервере.

Если вы при печати постоянно получаете лишние страницы в конце задания с клиентов с Windows, то попробуйте добавить директиву "sf" в файл /etc/printcap. Это запретит прогон страниц, разделяющих задание, но не будет влиять на прогон страниц внутри документов.




Содержание  Назад  Вперед