Статья: «Рецепт "приготовления" Win-принтера для печати из Linux» [http://www.nixp.ru/cgi-bin/go.pl?q=articles;a=win_printing_in_linux]
Автор: Aleksander N.Gorohovski
E-mail: [angel на feht.dgtu.donetsk.ua]

1. Предисловие

Перед нами стоит задача печати документов на Win-принтере (Canon LBP-810) из Linux (ALT Master 2.2/2.4). Canon LBP-810 подключен (USB-подключение) и настроен на Win-компьютере (Windows 98). На другом компьютере с Linux (стандартная установка ALT Master 2.2/2.4, Junior 2.2, Compact 2.3) настроена Samba. Оба компьютера входят в локальную сеть и видят друг друга.


2. Скачиваем необходимые программы

Для решения поставленной задачи я использовал следующий софт:

Этот софт понадобится для настройки виртуального (физически не существующего, но корректно распознаваемого в Linux, например, HP LaserJet 4M Foomatic/Postsript) принтера на Win-компе, на который будем отправлять с Linux-компьютера (через Samba) задания, а он в свою очередь будет их "перенаправлять" (печатать) на реальный Win-принтер (Canon LBP-810).
P.S.
Не знаю, почему авторы других статей на эту тему рекомендовали дополнительно устанавливать еще и GSView — поставленная задача вполне решается предлагаемым минимумом софта.


3. Устанавливаем софт

Здесь все операции выполняются на Win-компе.

  • Разворачиваем Redirection Port Monitor redmon17.zip, например, в папку
    c:\redmon
  • Выполняем его установку:
    c:\redmon\setup.exe
  • Выполняем установку GhostScript:
    gs815w32.exe
    По умолчанию GhostScript устанавливается в c:\gs


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

Здесь все операции продолжают выполняться на Win-компе.

  • Открываем Блокнот (а еще лучше редактор в Far) и создаем файл настроек параметров c:\gs\mswinpr.rsp для GhostScript, чтобы он мог работать с Win-принтером (Canon LBP-810). В этом файле набираем следующие строки:
    -Ic:\gs\gs8.15\lib;c:\gs\fonts
    -sDEVICE=mswinpr2
    -dNOPAUSE
    -dSAFER
    -sPAPERSIZE=a4

    Первая строка -Ic:\gs\gs8.15\lib;c:\gs\fonts должна начинаться с дефиса и большой латинской буквы "Ай" (а не "1" или "l")! Более подробную информацию по этим и другим настройкам можно получить из файлов документации GhostScript: c:\gs\gs8.15\doc\Use.htm и c:\gs\gs8.15\doc\Install.htm
  • Добавляем в систему новый (виртуальный) дополнительный (к физически ранее установленному Canon LBP-810) принтер:
    Пуск->Настройка->Принтеры->Установка принтера
    Появляются окна Мастера установки принтера, в которых выбираем:
    • Способ подключения - Локальный принтер. Затем…
    • Изготовитель - 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.15\bin\gswin32c.exe
        Именно gswin32c.exe, а не gswin32.exe !
      • В строке Arguments for this program are: задаем:
        @c:\gs\mswinpr.rsp -sOutputFile="%1" -
        Здесь после -sOutputFile="%1" обязательно должен идти пробел, а за ним дефис!
        Ранее файл c:\gs\mswinpr.rsp уже должен быть создан.
      • В строке Output: выбираем:
        Copy temporary file to printer
      • В строке Printer: выбираем свой Win-принтер (на который будет перенаправлена печать):
        Canon LBP-810
      • В строке 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. Установка доступа к Win-принтеру из Linux

Здесь все операции выполняться на Linux-компе.

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


6. Благодарности
  • Автору Redirection Port Monitor: Russell Lang, Ghostgum Software Pty Ltd. http://www.ghostgum.com.au/
  • Авторам Ghostscript. http://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).

Идея, создание и поддержка сайта — Дмитрий Шурупов.
© nixp.ru 2001—2005.

Полное или частичное использование любых материалов с сайта допустимо только с разрешения со стороны их авторов. При полном или частичном использовании любых материалов с сайта вы обязаны явным образом указывать наш сайт (http://www.nixp.ru) в качестве источника.