Рецепт приготовления Win-принтера для печати из Linux 2
Аппаратное обеспечение
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 10 февраля 2020 года в 03:31.
Постоянная ссылка: http://www.nixp.ru/articles/61.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).
-
Популярные в этом разделе:
- «Работа с USB-ключом eToken PRO под Slackware 12.2»,
- «Настройка мультимедийной клавиатуры»,
- «Рецепт приготовления Win-принтера для печати из Linux».
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
P.S. Не знаю, почему авторы других статей на эту тему рекомендовали дополнительно устанавливать еще и GSView — поставленная задача вполне решается предлагаемым минимумом софта.
В том-то и дело, что проблема не решается, а прибовляется ещё одна. Либо Вы это не использовали в реальной ситуации, а тольео заставили принтер печатать, либо я Вас не понимаю.
Огромное спасибо! Такого удовольствия от инструкции и результата действий за все три недели непрерывной борьбы с линуксом еще не получали! Подключили из-под Ubuntu именно Canon MF3110 без сучка и задоринки. Еще раз спасибо.
А у меня не хочет, вернее печатает, но исключительно лог
Environment:
ALLUSERSPROFILE=C:\Documents and Settings\All Users
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=ICCS
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 14 Stepping 12, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0e0c
ProgramFiles=C:\Program Files
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
USERPROFILE=C:\Documents and Settings\LocalService
windir=C:\WINDOWS
REDMON_PORT=RPT1:
REDMON_JOB=10
REDMON_PRINTER=HP
REDMON_MACHINE=\\ICCS
REDMON_USER=ics
REDMON_DOCNAME=Пробная страница
REDMON_FILENAME=C:\WINDOWS\TEMP\RedMon00.000
REDMON_SESSIONID=0
Unable to open command line file c:\gs\mswinpr.rsp
Автору огромное спасибо!!
Подключал HP LaserJet Pro P1102. Операция прошла без сучка и задоринки. Обошёлся без GSView.
Вместо RedMon пришлось использовать RedMonEE, так как по ссылке, данной автором в начале статьи скачать утилиту не удалось.
Спасибо, получилось!
От себя хочу добавить:
1) Естественно, программы обновились, вместо IC:\gs\gs8.61\lib;C:\gs\fonts нужно указать правильную папку
2) ВНИМАНИЕ! Папкаc:\gs\fonts не создаётся автоматически! Но без этой папки печати не будет.
3) PostScript — в ХР нет такой вкладки, просто последня вкладка, она называется по-другому.
Хм, печатает. Только вот в альбомный формат чего-то никак.
Разобрался, косяк либры — нужно в настройках принтера каждый раз постскрипт указывать. Иначе в ПДФ гонит по дефолту.
Как говорится, семь раз подумай, один раз купи.
Если бы это всегда работало… «ой, я купил/купила дешёвый принтер, он такой, ну розовенький».
Я утрирую.
сиди потом и думай как его прикрутить, раза три просто брал деньги и шёл покупать новый
«От дурной головы и ногам покоя нет» (c)