Виртуальный принтер в Windows. Печатаем по сети на любом Windows-принтере

30.07.2019

Выручал, когда:

- Переводил офис на линукс. Есть машина с Windows недалеко от принтера. Или принт-сервер. А дров под Линукс под него нет
- Даже если и есть дрова под Линукс, а рядом есть комп только с виндой. И принтер сей нужно подключить более чем у 10 человек. Если вы помните, в Windows XP home возможно 5 входящих подключений, а в Prof - 10. Не ставить же из-за этого Windows Server (как, кстати говоря, и было до моего прихода...)
- Обслуживал офис, где только виндовые клиенты. Но купили они ноут с супур-мега крутой Windows 7 _64 bit_. И оказалось, что на их основной принтер нет дров под vista/7 x86-64. Поставил виртуальный принтер и проблема была решена

0. Итак, первым делом нужно настроить принтер обычным образом. Убедиться, что он работает, печатает и всё такое.

1. Далее, устанавливаем последние версии Ghostscript и GSview отсюда (GSview) и redmon .

Я всё (относящиеся к виртуальному принтеру) устанавливаю в c:\gs , чтобы оно не болталось непонятно где. Через пол года-год как начнёшь вспоминать, что к чему, если мануал посеялся...

2. Так вот. Теперь заходим в директорию, куда мы установили GSview (у меня это C:\gs\Ghostgum\gsview ), и создаём файл gsprint.cfg со следующим содержанием:

Noquery -printer SHARP -ghostscript "C:\gs\gs8.54\bin\GSWIN32C.EXE"

В примере указан принтер SHARP. Вам же надо вписать туда своё название. Смотрите, не ошибитесь! Лучше зайти в свойства принтера и скопировать название, как оно есть. Последняя строчка, это путь к программе PostScript . Понятное дело, версию нужно свою указать. Так же, можно приписать отдельной строкой параметр "-color", если у вас цветной принтер. Хотя, если и не цветной, строка будет просто игнорироваться.

3. Теперь, если вы хотите проверить, работает ли всё то, что мы уже настроили, нужно открыть "командную строку" (cmd ) и в ней зайти в "C:\gs\gs8.54\examples " (с поправкой на вашу версию PostScript ). И там попробовать распечатаьь один их примеров. К примеру:

Gsprint chess.ps

В итоге должна будет напечататься страница с шахматами. Если этого не произошло, необходимо искать ошибку. Если же всё хорошо, двигаемся дальше.

4. Переходим к RedMon . Его достаточно просто распаковать в c:\gs\redmon и там запустить setup.exe . После сего действа у нас появится возможность "перенаправлять порт" с виртуального принтера на реальный.

5. Создаём виртуальный принтер: Установка принтера -> Локальный принтер -> Создать новый порт -> Redirected Port -> RPT1: -> Ok:)

Дальше всё как обычно. Драйвер можно выбрать, например, "Apple LaserWriter II NT ", или "Apple Color LW 12/660 PS ", или "HP LaserJet 4/4M PostScript ". Последний предпочтительнее. Ибо, если вдруг попадётся эта бяка vista/7 x86-64, драйверов x86-64 для первых двух не существует:(

6. Создали новый (виртуальный) принтер, открываем свойства оного, вкладку "Порты ", затем "Настройки порта ".

Очень часто возникают проблемы при сетевой печати на принтеры, подключенные
например, к компьютеру с Windows XP на компьютере с установленной ОС Window 7, нена Vista,2003,2008

Суть проблемы часто заключается в том, что под эти «современные» системы производители
«устаревших» моделей принтеров не удосуживаются выпускать драйверы.

Вот и у меня сложилась такая ситуация:

Знакомый попросил настроить печать в офисе со свежекупленного ноутбука.

1. Конечно же - ноутбук был с операционной Windows 7
2. Конечно же - Home (см. ниже в чем проблема)
3. Конечно же - она (система) была 64-х разрядной.
4. Конечно же - принтеры в оффисе были не новые: HP1320 и Canon MFxxxx
5. Конечно же - принтеры были подключены и «расшарены» на машинках с WinXP.
6. И никто не будет менять структуру сети ради одного ноутбука
Как же я решил проблему?

Сначала я пошел по неправильному пути:
Скачивал и пытался установить драйверы с официальных сайтов - не тут-то было:
Компания Canon вообще мало для каких моделей поставляет драйверы под 64-х разрядные системы.
Про МФУ вообще молчу.
Для серии MFxxxx рекомендовали костыль - использовать драйверы от серии MF57xx. Попробовал - система
показывает что драйвер подписан, но отказыватеся устанавливать, ссылаясь на то что он не подписан.
Брр, бред. Установку неподписанных дров на Home разрешит нельзя (нет gpedit.msc). Тьфу.

Компания HP вроде бы и предоставила драйвер PCL5 для модели HP1320 - но - не заработало.
При попытке установки выдавались невразумительные ошибки, гуглёж которых находил
таких же бедолаг как и я.

Особенно улыбнул один комментарий на форуме (не помню точно где, но по-моему на сайте HP):
«HP1320 - бизнес-модель, поэтому мы не предоставляем поддержки по телефону в выходные дни»

Кстати, мошенники лезут во все щели как тараканы: вы всегда можете «нагуглить» и скачать ЛЮБОЙ
драйвер любого принтера под любую систему. Но результат будет конечно же, не тот, что ожидается.

Также «гуглёж» открыл мне еще один страшный факт: ДО СИХ ПОР в серверных операционках известной
компании ЕСТЬ проблемы с подсистемой печати в терминальном режиме. И даже сторонние
решения не решают проблем окончательно.

«Хватит заниматья ерундой» - подумал я и сделал так:

1. Скачал виртуальный Free PDF Printer с сайта www.bullzip.com . Их (PDF-принтеров) вообще много, просто мой выбор пал на него по следующим причинам:
а) данный работает под 64х разрядными системами
б) бесплатный (в принципе не жалко было бы отдать и ~20 баксов, НО не отдавать же их
за КАЖДЫЙ компьютер с Windows 7 64x!)
в) он нашелся первым:)
2. Установил виртуальный PDF-принтер и настроил его (C:\Program Files\Bullzip\PDF Printer\gui.exe) так, чтобы пользователю не выдавалось никаких диалоговых окон, а в папке \\compxp\printer1\ создавался файл.pdf
3. На компьютере compxp установил Foxit Reader «расшарил» папочку printer1 и поместил в автозагрузку простенький vbs-скрипт:

Copy Source | Copy HTML
  1. "On Error Resume Next
  2. "Автоматическая печать PDF-файлов, появляющихся в определенной папке
  3. "Глобальные переменные
  4. Set gFSO = CreateObject("Scripting.FileSystemObject" )
  5. Set gShell = CreateObject("WScript.Shell" )
  6. "Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
  7. gWatchFolder = "E:\master\printer\"
  8. "Основной цикл
  9. While true
  10. Set lFolder = gFSO.GetFolder(gWatchFolder)
  11. Set lFiles = lFolder.Files
  12. For Each lFile In lFiles
  13. PrintFile(gWatchFolder & lFile.Name)
  14. Next
  15. WScript.Sleep(1)
  16. WEnd
  17. "Функция печати конкретного pdf-файла
  18. Sub PrintFile(pFileName)
  19. "Ждем некоторе время (пока файл до конца запишется)
  20. WScript.Sleep(3)
  21. "msgbox(pFileName)
  22. "Мы (больше) не боимся пробелов:Р
  23. s = """E:\master\foxit\Foxit Reader.exe"" /p """ & pFileName & """"
  24. "msgbox (s)
  25. Call gShell.Run(s,0,true )
  26. gFSO.DeleteFile(pFileName)
  27. If gFSO.FileExists(pFileName) Then
  28. "Мало ли чего может случиться, лучше пусть у Иван Иваныча перестанет печатать, чем один файл много раз уйдет на принтер
  29. "msgbox("Не удалось удалить файл " & pFileName & "! Позвоните Василию по т. 123-456)
  30. WScript.Quit
  31. "Else
  32. "Пока не реализовано
  33. "ToLog("Файл " & lFileName & " удален.")
  34. End If
  35. End sub

За скрипт прошу не пинать - писался быстро и чтоб заработало.

Вуаля:
Пользователь просто нажимает в программе кнопку «Печать» - и через минуту забирает из принтера документ.
Виртуальных принтеров можно установить несколько и обозвать их произвольно. Главное - при переименовании принтера настройки нужно производить заново.

Дополнительный профит от такого решения:
Для особо параноидальных начальников хитрый админ может наваять целую систему протоколирования
печати со складыванием в архив всего, что распечатали работники.

P.S. Те, кто ненавидит adobe могут сделать связку bullzip->BMP(JPG)->irfan - но возникнут проблемы с ландшафтной ориентацией (надо будет в скрипте определять ориентацию).

Данная статья является заключительной в серии статей, связанных с развертыванием виртуальных машин в среде Windows 7. В этой статье описываются возможные методы печати из виртуальной машины. Существует несколько способов для того, чтобы сделать принтер доступным на виртуальной машине. На способы, которые можно использовать, воздействуют некоторые факторы: доступен ли драйвер принтера на Windows 7 и подключен ли принтер локально или через сеть. Также можно использовать формат XPS в том случае, если ваш компьютер поддерживает этот метод печати.

Использование локального USB принтера

Внимание!

Этот способ подходит в том случае, если доступны драйвера на обе системы - хостовую систему Windows 7 и гостевую операционную систему. Необходимо только пройти несколько шагов для установки принтера на виртуальную машину. Следующие действия предполагают, что вы уже печатали на принтере, используя хостовую операционную систему.



Убедитесь, что принтер включен и доступен для установки драйверов. Например, можно устанавливать на него драйвера используя CD диск.

  1. Подключите принтер к виртуальной машине. Для этого в окне виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Совместный доступ» .
  2. Установите драйвер принтера на гостевую операционную систему. Вы можете воспользоваться установкой драйвера через Интернет или использовать CD диск.
  3. Отключите принтер от виртуальной машины. Для этого из окна виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Освободить» .
  4. Перезагрузите виртуальную машину. Для этого, из окна виртуальной машины нажмите на «Действие» , а затем на «Перезагрузить» .
  5. Принтер будет доступен на обеих системах, как на хостовой, так и на гостевой.

Настройка сетевого принтера на виртуальной машине

Если вы используете гостевую систему Windows XP, то необходимо вручную установить драйвер для принтера, который будет использоваться.

Установка драйвера для принтера в Windows XP


Печать из виртуальной машины

  1. Перейдите в виртуальную машину и зайдите в учетную запись, если это необходимо (вы авторизируетесь автоматически, если установлена опция, связанная с сохранением пароля).
  2. Сделайте следующее:
    • На рабочем столе в виртуальной машине нажимаем правой кнопкой на файле и выбираем из контекстного меню опцию «Печать»
    • Открываем приложение, у которого доступна опция печати и используем команду печать.
  3. Все принтеры, которые доступны в виртуальной машине есть в списке принтеров. Выбираем нужный принтер и нажимаем на кнопку ОК

Также можно использовать печать в документ XPS из вашего виртуального приложения или виртуальной сессии для сохранения печатаемого файла на хосте, а затем можно распечатать файл, используя принтер, установленный на хостовом компьютере. Эта опция полезна тогда, когда драйвера не доступны для гостевой операционной системы или вы не хотите устанавливать на ней принтер. Для этого способа требуется следующая конфигурация:

  • Microsoft XPS Essentials Pack установленный на гостевой операционной системе. Microsoft XPS Essentials Pack можно загрузить по следующей ссылке: Windows Hardware Developer Central site .

  • Виртуальная машина настроена и имеет доступ к дискам и разделам на хостовом компьютере, так что можно просто сохранить файл (По умолчанию, когда устанавливается Windows XP Mode система настроена так, что открыт доступ к дискам и разделам хостовой системы. Для остальных виртуальных машин необходимо устанавливать компоненты интеграции).
  • На хостовой операционной системе должен быть установлен работающий принтер.

Печать с использованием XPS формата


Заключение

В этой заключающей статье серии статей о развертовании Windows Virtual PC и Windows XP Mode в операционной системе Windows 7 я рассказал о средствах печати из виртуальной машины. Рассмотрена установка локального и сетевого принтера, печать из виртуальной машины, а также печать документа в XPS файл.

Данная статья является заключительной в серии статей, связанных с развертыванием виртуальных машин в среде Windows 7. В этой статье описываются возможные методы печати из виртуальной машины. Существует несколько способов для того, чтобы сделать принтер доступным на виртуальной машине. На способы, которые можно использовать, воздействуют некоторые факторы: доступен ли драйвер принтера на Windows 7 и подключен ли принтер локально или через сеть. Также можно использовать формат XPS в том случае, если ваш компьютер поддерживает этот метод печати.

Использование локального USB принтера

Внимание!

Этот способ подходит в том случае, если доступны драйвера на обе системы - хостовую систему Windows 7 и гостевую операционную систему. Необходимо только пройти несколько шагов для установки принтера на виртуальную машину. Следующие действия предполагают, что вы уже печатали на принтере, используя хостовую операционную систему.

Убедитесь, что принтер включен и доступен для установки драйверов. Например, можно устанавливать на него драйвера используя CD диск.

  1. Подключите принтер к виртуальной машине. Для этого в окне виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Совместный доступ» .
  2. Установите драйвер принтера на гостевую операционную систему. Вы можете воспользоваться установкой драйвера через Интернет или использовать CD диск.
  3. Отключите принтер от виртуальной машины. Для этого из окна виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Освободить» .
  4. Перезагрузите виртуальную машину. Для этого, из окна виртуальной машины нажмите на «Действие» , а затем на «Перезагрузить» .
  5. Принтер будет доступен на обеих системах, как на хостовой, так и на гостевой.

Настройка сетевого принтера на виртуальной машине

Если вы используете гостевую систему Windows XP, то необходимо вручную установить драйвер для принтера, который будет использоваться.

Установка драйвера для принтера в Windows XP


Печать из виртуальной машины

  1. Перейдите в виртуальную машину и зайдите в учетную запись, если это необходимо (вы авторизируетесь автоматически, если установлена опция, связанная с сохранением пароля).
  2. Сделайте следующее:
    • На рабочем столе в виртуальной машине нажимаем правой кнопкой на файле и выбираем из контекстного меню опцию «Печать»
    • Открываем приложение, у которого доступна опция печати и используем команду печать.
  3. Все принтеры, которые доступны в виртуальной машине есть в списке принтеров. Выбираем нужный принтер и нажимаем на кнопку ОК

Также можно использовать печать в документ XPS из вашего виртуального приложения или виртуальной сессии для сохранения печатаемого файла на хосте, а затем можно распечатать файл, используя принтер, установленный на хостовом компьютере. Эта опция полезна тогда, когда драйвера не доступны для гостевой операционной системы или вы не хотите устанавливать на ней принтер. Для этого способа требуется следующая конфигурация:

  • Microsoft XPS Essentials Pack установленный на гостевой операционной системе. Microsoft XPS Essentials Pack можно загрузить по следующей ссылке: Windows Hardware Developer Central site.
  • Виртуальная машина настроена и имеет доступ к дискам и разделам на хостовом компьютере, так что можно просто сохранить файл (По умолчанию, когда устанавливается Windows XP Mode система настроена так, что открыт доступ к дискам и разделам хостовой системы. Для остальных виртуальных машин необходимо устанавливать компоненты интеграции).
  • На хостовой операционной системе должен быть установлен работающий принтер.

Печать с использованием XPS формата


Заключение

В этой заключающей статье серии статей о развертывании Windows Virtual PC и Windows XP Mode в операционной системе Windows 7 я рассказал о средствах печати из виртуальной машины. Рассмотрена установка локального и сетевого принтера, печать из виртуальной машины, а также печать документа в XPS файл.