Автор Тема: Памятка: Печать с помощью удалённого принтера через SAMBA (smb:)  (Прочитано 16976 раз)

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Стояла задача печати с <ПК на котором установлен Linux> через локальную сеть с доменами на <принтере HP Laser Jet 1100, подключенном к ПК с Win-XP> (угловые скобки для лучшего смыслового разделения). Помогло использование инструкций: http://mydebianblog.blogspot.com/2007/09/linux-windows.html
При установке в системе нового принтера необходимо задать подключение к удалённому принтеру в формате:
smb://usrername:userpassword@domainname/computername/printername(например: smb://Ivanov:AltIvan123@Ogk/192.168.1.1/HPLaserJ)
В случае nt-сети без доменов:
smb://quest@computername/printername(например: smb://guest@192.168.1.1/HPLaserJ)
При этом замечу, что в качестве computername необходимо вписывать IP-адрес компьютера, а не его сетевое имя.
Проверено в AltLinux 5.0 Desktop KDE (CUPS 1.4.4)
« Последнее редактирование: 28.01.2011 15:16:50 от Mimas »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Кстати насчет IP компа - не всегда удачное решение - если IP выдаются через DHCP или может быть заменен.
Лучше побиться головой, но добиться по smb-имени. Оно получается...


Ну тогда для кучи сюда :)

Как печатать на Вин-Принтер на вин-машину если под линукс нет "дров" :)

Отличная статья на http://www.nixp.ru/articles/Рецепт-приготовления-Win-принтера-для-печати-из-Linux.html
Чем она отличная... тем что похожие статьи, в том числе и на англицком менее полные...
Печатать можно на любой принтер подключенный к винде с минимумом помех для сидящего на машине с виндой.
Тем более в статье про альт :)

Цитировать
Рецепт приготовления Win-принтера для печати из Linux 2
Аппаратное обеспечение

Автор: Aleksander N.Gorohovski

Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 16 января в 03:35.

Постоянная ссылка: http://www.nixp.ru/articles/Рецепт-приготовления-Win-принтера-для-печати-из-Linux.html

Статья была обновлена в феврале 2008 года.

Статья была обновлена в феврале 2008 года. Ее модернизировал Anatoly Akatyev (anatoly.akatyev на master-system dot ru).
1. Предисловие

Перед нами стоит задача печати документов на Win-принтере (Canon MF3110) из Linux (ALT Linux Desktop 4.0.x; далее — ALD 4). Canon MF3110 подключен (USB-подключение) и настроен на Win-компьютере (Windows XP). На другом компьютере с Linux (стандартная установка ALD 4) настроена Samba. Оба компьютера входят в локальную сеть и видят друг друга.
2. Скачиваем необходимые программы

Для решения поставленной задачи я использовал следующий софт:
RedMon — Redirection Port Monitor (redmon17.zip [592,7 КБ] с www.cs.wisc.edu/~ghost/redmon/)
GhostScript for windows (gs8.61w32.exe [9,3 МБ] с www.cs.wisc.edu/~ghost/)

Этот софт понадобится для настройки виртуального (физически не существующего, но корректно распознаваемого в Linux, например, HP LaserJet 4M Foomatic/Postsript) принтера на Win-компе, на который будем отправлять с Linux-компьютера (через Samba) задания, а он в свою очередь будет их «перенаправлять» (печатать) на реальный Win-принтер (Canon MF3110).

P.S. Не знаю, почему авторы других статей на эту тему рекомендовали дополнительно устанавливать еще и GSView — поставленная задача вполне решается предлагаемым минимумом софта.
3. Устанавливаем программное обеспечение

Здесь все операции выполняются на Windows-компьютере.
Разворачиваем Redirection Port Monitor redmon17.zip, например, в каталог: c:\redmon
Выполняем его установку: c:\redmon\setup.exe
Выполняем установку GhostScript: gs8.61w32.exe. По умолчанию GhostScript устанавливается в c:\Program Files\.


Внимание! Мы установим gs8.61w32.exe в c:\gs\ и далее будем отталкиваться от этого.

4. Устанавливаем виртуальный принтер

Все операции по-прежнему выполняются на Windows-машине.
Открываем Блокнот (а еще лучше — редактор в Far) и создаем файл настроек параметров c:\gs\mswinpr.rsp для GhostScript, чтобы он мог работать с Win-принтером (Canon MF3110). В него скопируйте (или наберите руками) следующие строки:
-IC:\gs\gs8.61\lib;C:\gs\fonts
-sDEVICE=mswinpr2
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="%printer%Canon MF3110"

Редактировать следует только 1 и последнюю (6-ю) строку. Все остальные строки редактировать не нужно. Можете сделать copy-paste указанных выше строк. Первая строка -Ic:\gs\gs8.61\lib;c:\gs\fonts должна начинаться с дефиса и большой латинской буквы «Ай» (а не «1» или «l»)! Более подробную информацию по этим и другим настройкам можно получить из файлов документации GhostScript: c:\gs\gs8.61\doc\Use.htm и c:\gs\gs8.61\doc\Install.htm

В последней строке следует указать имя вашего принтера. Например, если принтер называется Canon MF3110, то именно это и указываем. Для принтера LBP 810 строка выглядела бы так: -sOutputFile="%printer%Canon LBP810"

В практике было как минимум 3 случая, когда обходился указыванием \\spool\Canon LBP810.

Ошибка при указании имени принтера приведет к тому, что пользователя на Windows-машине придется постоянно указывать вручную принтер!
Добавляем в систему новый (виртуальный) дополнительный (к физически ранее установленному Canon MF3110) принтер: Пуск —> Настройка —> Принтеры —> Установка принтера. Появляются окна Мастера установки принтера, в которых выбираем:
Способ подключения — Локальный принтер. Затем…
Изготовитель — HP, Принтеры — HP LaserJet 4/4M PostScript. Затем…
Доступный порт — любой (LPT1: … LPT3:, потом его поменяем на RPT1:). Затем…
Название принтера — на свой вкус. Затем…
Напечатать пробную страницу — Нет.



В окне Принтеры выполняем правый щелчок мышкой по пиктограмме появившегося нового принтера HP LaserJet 4/4M PostScript и в выпавшем контекстном меню выбираем Свойства.
В появившемся окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Сведения, где выполняем:
Нажимаем кнопку Добавить порт…->Тип добавляемого порта: Другой -> Redirected Port.
В поле Порт указываем RPT1: (Redirected Port).
Нажимаем кнопку Параметры порта… и в появившемся окне диалога RPT1: Properties определяем:
В строке Redirect this port to the program: задаем: c:\gs\gs8.61\bin\gswin32c.exe. Именно gswin32c.exe, а не gswin32.exe!
В строке Arguments for this program are: задаем: @c:\gs\mswinpr.rsp -. Здесь после @c:\gs\mswinpr.rsp обязательно должен идти пробел, а за ним дефис! Иначе ваш реальный принтер распечатает страниц 30 мусора. Ранее файл c:\gs\mswinpr.rsp уже должен быть создан.
В строке Output: выбираем: Copy temporary file to printer.
В строке Printer: выбираем свой Windows-принтер (на который будет перенаправлена печать): Canon MF3110.
В строке Run: выбираем: Hidden (отказываемся от дополнительных всплывающих окон при печати).
Можно включить флажок Print Errors.
Можно определить файл лога (на любителя) через кнопку Log File, где в появившемся окне диалога RPT1: Log File Properties установить флажок Log File, а в строке Write standard output to the file: указать: c:\gs\logfile.txt.


Все, с диалогом RPT1: Properties покончено.
Нажимаем кнопку Очередь… и в появившемся окне диалога Параметры очереди устанавливаем Отключить двусторонний обмен данными. Остальные значения можно оставить без изменения (т.е. Начинать печать после помещения в очередь первой страницы; Формат данных в очереди — RAW).

Теперь в окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку PostScript, где нажимаем кнопку Дополнительно…. В появившемся окне диалога Дополнительные параметры PostScript сбрасываем (снимаем пометку) флажки:
Отправить Ctrl+D перед заданием;
Отправить Ctrl+D после задания.

Остальные параметры можно оставить без изменения.
Теперь в окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Доступ, где указываем:
Общий ресурс;
Сетевое имя — HP (или другое на свой вкус).

На этом можно считать, что работа по установке и настройкам виртуального принтера в Windows завершена. Осталось проверить печать через виртуальный принтер.
В окне диалога Свойства: HP LaserJet 4/4M PostScript выбираем вкладку Общие, где нажимаем кнопку Напечатать пробную страницу.
5. Установка доступа к Windows-принтеру из Linux

Здесь все операции выполняться на Linux-компьютере.
Если у вас ALT Master/Junior 2.2, тогда просто запустите: # printerdrake. Далее в диалогах укажите имя Windows-компьютера и принтер HP LaserJet 4M Foomatic/Postscript.
Если у вас ALD 4, тогда еще проще. Можно выполнить, например, из KDE: K -> Принтеры -> Добавить -> Добавить принтер/класс. В окнах диалога Мастера установки принтера задать:
Принтер SMB (Windows). Далее…
Далее…
Рабочая группа — <своя> (или кнопка Опрос); выбрать Windows-компьютер и принтер HP. Далее…
Задать производителя — HP; модель — HP LaserJet 4M. Далее…
HP LaserJet 4M (Foomatic + Postsript). Далее…
Далее…
Далее…
Далее…
Имя — HP (или свое). Далее…
Имя пользователя — root; пароль — **********.

Отправьте на печать какой-нибудь документ. Все должно работать превосходно!

6. Благодарности
Автору Redirection Port Monitor: Russell Lang, Ghostgum Software Pty Ltd., ghostgum.com.au
Авторам Ghostscript, ghostscript.com.
Рассылке Community ALT Linux и лично Alex Ogurtsov (aogurtsov@geeksforless.net) и еще Michael Shigorin (mike@altlinux.ru).
Авторам подобных статей на эту тему: Сеник Миколi (senyk_cw@mail.ru) и Игорю Чумак (zigoor@zmail.ru).

Кажется, перечистил всех :-)

P.S.
Надо признать, что в процессе решения этой задачи я потратил достаточное количество времени. Однако надеюсь на то, что этот документ позволит другим достигнуть желаемого результата гораздо быстрее.


По личным ощущениям, сравнивая печать на Win-принтере (Canon LBP-810) непосредственно из Win4Lin и через виртуальный HP LaserJet 4M, в последнем случае производительность несколько выше (+ неограниченная возможность прямой печати не только из Windows-приложений в Win4Lin, но и из Linux-программ).

Меня не покидает уверенность в том, что описанный рецепт на 100% будет работать с любым принтером независимо от способа подключения (USB/LPT).
http://www.nixp.ru/articles/Рецепт-приготовления-Win-принтера-для-печати-из-Linux.html
« Последнее редактирование: 28.01.2011 17:27:10 от YYY »

Оффлайн vanchope

  • Завсегдатай
  • *
  • Сообщений: 93
Цитировать
В случае nt-сети без доменов:
smb://quest@computername/printername
(например: smb://guest@192.168.1.1/HPLaserJ)
При отправке на принтер пробной страницы не печатает. :( Статус задания:
Can't load /etc/samba/smb.conf - run testparm to debug itP.S. Компьютеры друг друга видят и заходят в расшаренные папки...

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Ну и запустите testparm для анализа

Оффлайн vanchope

  • Завсегдатай
  • *
  • Сообщений: 93
Запустил
[comp_informatika_1@comp_informatika_1 ~]$ testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
workgroup = MSHOME
netbios name = INFORMATIKA_1
server string = Ученический компьютер №1
security = SHARE
printcap name = cups

[printers]
comment = All Printers
path = smb://guest@192.168.0.1/Samsung
guest ok = Yes
printable = Yes
browseable = No

[homes]
path = /home/comp_informatika_1
force user = comp_informatika_1
force group = comp_informatika_1
read only = No
guest ok = Yes
Что делать - не знаю, не печатает  :(

Оффлайн vanchope

  • Завсегдатай
  • *
  • Сообщений: 93
Подскажите, что нужно написать в smb.conf секции [printers] чтобы иметь возможность печатать по сети с компа Windows?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
 path = smb://guest@192.168.0.1/Samsun
Явная лажа - тут должен быть на файловой системе. что-то типа

[DCP7010]
printable = yes
printer name = DCP7010
comment = DCP7010
guest ok = yes
read only = no
path = /var/spool/cups/tmp/

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Второй вариант
Цитировать
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Да, и в первом случае надо включить пользователя pcguest (или от того, от имени которого у вас работает самба) в группу lp

Оффлайн МИНЗДРАВ

  • Странник_
  • *
  • Сообщений: 3 045
  • ALWK8 х64 Branch sysd & server-light_1.9.3sysV noX
    • http://yx-kak.ru/linux.htm
задача печати с <ПК на котором установлен Linux> через локальную сеть с доменами на <принтере HP Laser Jet 1100, подключенном к ПК с Win-XP>
А, как интересно, наоборот можно печатать из венды на линуксовый принтер?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 918
    • Домашняя страница
    • Email
А, как интересно, наоборот можно печатать из венды на линуксовый принтер?
Объявляете по Samba и он доступен в Windows. Нюансы обычно с драйверами, но обычный Postscript работает.
Андрей Черепанов (cas@)