Печатаем на любом старом принтере (например, Canon Laser Shot LBP 1120) из 64-разрядной операционной системы Windows через VirtualBox с установленной в ней 32-разрядной Windows: новый способ

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

           Привет, друзья! Я расскажу об одном из множества существующих способов заставить печатать старый принтер Canon Laser Shot LBP 1120 из любой 64-х разрядной операционной системы Windows, хотя официального драйвера для работы в 64-х разрядных системах семейства Windows не существует.


Если быть точным, то мой способ достаточно универсален и позволяет запустить печать на любом старом принтере (не только Canon LBP 1120), не поддерживаемыми новыми операционными системами Windows.

Как обычно, рулит «теория заговора». Разработка драйвера находится в компетенции производителя, так как необходимо знать, как работает принтер. Основная проблема использования старых моделей принтеров состоит в том, что производители, по мнению сообщества Internet, для увеличения продаж новых моделей принтеров перестают разрабатывать драйверы для старых принтеров с поддержкой новых операционных систем Windows, особенно 64-х разрядных. На многие старые принтеры, которые проявили себя надежными и экономичными устройствами для домашнего использования, производителями разработаны драйверы только для 32-х разрядных версий Windows. Если производитель не считает нужным разработать драйвер для своего устройства—это политика производителя, мы повлиять на это не сможем. Поэтому крутимся ужом и находим альтернативу.

Для примера несколько вариантов запуска принтера на который отсутствуют драйверы под современные системы Windows:

Те, кто используют до сих пор 64-х разрядные Windows 7 (Ultimate, Professional и Enterprise) и процессор поддерживает аппаратную виртуализацию—устанавливают XP Mode, устанавливают в нем драйвер для Windows XP и печатают, используя XP Mode, что может позволить использовать старый принтер еще долгое время.

Другие делают принт-сервер на отдельном совместимом компьютере, на базе Raspberry Pi или другом подобном устройстве и печатают по локальной сети.


Третий способ для тех, кто использует только один компьютер и если им нужно печатать на принтерах не поддерживаемыми новыми операционными системами Windows, например из 64-х разрядной Windows, ставят VirtualBox (бесплатная виртуальная машина от Oracle), в ней устанавливают 32-х разрядную версию Windows, например Windows XP как не сильно требовательную к ресурсам, ставят набор драйверов и программ, немного настроек и всё готово, можно печатать.

Я так и сделал. Использовал рецепт https://forum.ixbt.com/topic.cgi?id=58:4892, установил:

VirtualBox Oracle 6.0.10, VirtualBox Extension Pack и VBoxGuestAdditions_6.0.10.iso http://download.virtualbox.org/virtualbox/6.0.10/, для установки на Host Windows.

VBoxHeadlessTray https://www.toptensoftware.com/vboxheadlesstray/, для установки на Host Windows.

Драйвер принтера HP LaserJet 4100 Series PS (HP Universal Print Driver for Windows PostScript (64-bit)) https://www.support.hp.com/ua-ru/drivers/selfservice/hp-laserjet-4100-printer-series/83436, для установки на Host Windows.

Дистрибутив Windows XP Professional with Service Pack 3


Драйвер принтера Canon Laser Shot LBP-1120 https://www.canon-europe.com/support/consumer_products/products/printers/laser/laser_shot_lbp1120.html?type=drivers&language=ru&os=windows%207%20(32-bit), для установки на гостевой Windows XP.

Эмулятор PostScript принтера GPL Ghostscript Windows 32 https://code.google.com/archive/p/ghostscript/downloads, для установки на гостевой Windows XP.

RedMon — Redirection Port Monitor http://www.ghostgum.com.au/software/redmon.htm, для установки на гостевой Windows XP

Intel PRO/1000 MT Desktop Adapter https://downloadcenter.intel.com/download/18717/Network-Adapter-Drivers-for-Windows-XP-Final-Release?product=50485, для установки на гостевой Windows XP.   

Все заработало, принтер печатает, но открылся один недостаток: при печати файлов в формате PDF очень долго готовится файл к печати, одна страница заполненная рисунками высокого разрешения преобразовывается в файл для печати размером около 100 Мб, что занимает много времени, порядка 10 минут. Явный недостаток. Устал ждать пока закончится печать. Именно этот недостаток заставил меня искать другой способ печати на принтере Canon Laser Shot LBP-1120 из 64-х разрядной Windows 10.

Представляю метод лишенный вышеуказанного недостатка.

Описываемый далее способ я отношу к третьему типу (по моей классификации), но используется другой набор программного обеспечения. Как уже говорилось – «Если быть точным, то мой способ достаточно универсален и позволяет запустить печать на любом старом принтере (не только Canon LBP 1120), не поддерживаемыми новыми операционными системами Windows». Эта универсальность получена благодаря применению программы PDFCreator! Любые файлы печатаются максимально быстро, без задержки. Спасибо создателям этой замечательной бесплатной программы!

Краткий обзор наших действий для достижения результата: Устанавливаем на гостевой Windows XP драйвер для принтера Canon Laser Shot LBP-1120, устанавливаем на гостевой Windows XP программу PDFCreator в серверном режиме с дополнительным 64-х разрядным драйвером, в результате создается виртуальный принтер PDFCreator, настраиваем PDFCreator, делаем его доступным по сети, устанавливаем этот принтер на хост-машине как сетевой принтер. Все готово, можно печатать!

 

Для простоты понимания приведу блок-схему обоих методов третьего типа (по моей классификации), сразу и наглядно видно преимущество моего способа в минимальном наборе используемого программного обеспечения и скорости печати «тяжелых» файлов.

Общеизвестный способ

Способ описываемый в этой статье

Итак, приступим к установке и настройке.

Устанавливаем PDFCreator в серверном режиме. Считаем, что у вас уже установлена виртуальная машина VirtualBox Oracle 6.0.10, VirtualBox Extension Pack и VBoxGuestAdditions_6.0.10.iso, установлена Windows XP (я имя ей присвоил-PRINT), установлен драйвер для принтера Canon Laser Shot LBP-1120, настроена сеть между виртуальной машиной и хостом. Рекомендую установить на виртуальной машине сетевую карту Intel PRO/1000 MT Desktop Adapter для гигабитной сети между гостевой Windows XP и хостом.

Скачиваем установочный файл PDFCreator версии 1.5.1 PDFCreator-1_5_1_setup.exe, это самая старшая версия найденная мной с поддержкой Windosw XP и готовым EXE файлом: https://sourceforge.net/projects/pdfcreator/files/PDFCreator/PDFCreator%201.5.1/

Установку производим на гостевой Windows XP, запускаем установочный файл, выбираем «Экспертные настройки»:

Выбираем язык установки:

Принимаем условия соглашения:

Выбираем «Серверная установка»:

Видим предупреждение:

Далее соглашаемся:

Устанавливаем дополнительный драйвер для 64-х разрядных систем:

Выбираем папку для установки:

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

Настраиваем под себя «Дополнительные задачи»:

Снимаем галочки, чтоб не устанавливать антивирус (что-то эта версия 1.5.1 заглючила с русским языком только в этом окне, до нее устанавливал версию 1.5.0, там все было превосходно):

Нажимаем кнопку «Установить»:

Установка завершена:

Для продолжения настройки создадим пакетный файл, я его назвал print_cleaning.bat с текстом из четырех строк:

 

rem удаление файлов печати из каталога

PUSHD C:\Print_tmp

2>Nul RD /S/Q «C:\Print_tmp»

POPD

 

Этот командный файл понадобится для удаления временных файлов, создаваемых при печати, которые мы будем складывать в папку c:\Print_tmp на гостевой Windows XP. Логика работы такова: при печати PDFCreator формирует файл PDF, печатает его на принтере, по окончанию печати запускает файл print_cleaning.bat, который очищает папку C:\Print_tmp.

Поместим файл print_cleaning.bat в папку:

C:\ Program Files\PDFCreator\Scripts\RunProgramAfterSaving\

 

Переходим к настройке программы PDFCreator:

Открываем «Настройки»:

Переходим последовательно по пунктам, здесь ничего не меняем:

Следующий пункт без изменений:

Пункт без изменений:

А вот здесь внесем изменения, выберем нужные «галочки» и выберем ранее созданную папку для сохранения:

Следующий важный пункт: открываем закладку «Действие после сохранения», выбираем из выпадающего списка доступный скрипт print_cleaning.bat (мы его ранее поместили в эту папку C:\ Program Files\PDFCreator\Scripts\RunProgramAfterSaving\), отмечаем нужные галочки:

Следующий важный пункт: выбираем установленный принтер для печати, ставим галочки и выбираем нужные пункты меню:

На этом настройка PDFCreator закончена.

 

 

Делаем принтер PDFCreator доступным по сети и принтером по умолчанию в гостевой системе Windows XP:

 

 

Перезагружаем компьютеры, для большей верности, проверяем видимость сетевого принтера из хост-компьютера, устанавливаем 64-разрядный драйвер на сетевой принтер PDFCreator, вдруг если по сети не видно Windows XP, возможный вариант – «Windows 10 при попытке открыть по сети компьютер с ОС Windows XP, скорее всего выдадут ошибку “Windows не может получить доступ, с кодом ошибки 0x80070035”. При этом обе машины друг друга пингуют без проблем. Windows XP работает на протоколе SMBv1, который в Windows 10 отключен по умолчанию из соображений безопасности. Клиентскую часть SMBv1 можно включить в Windows 10 набрав в поиске меню Пуск “Панель управления”, далее Программы -> В разделе “Программы и компоненты” выбрать пункт Включение или отключение компонентов Windows. В открывшемся дереве выбрать “Поддержка общего доступа к файлам SMB 1.0/CIFS”, далее “Клиент SMB 1.0/CIFS”»:

 

Если Все прошло как надо, система готова к печати:

 

 

Ну и в качестве «вишенки на торте» применяем программу VBoxHeadlessTray https://www.toptensoftware.com/vboxheadlesstray/, для установки на хост машине Windows.

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

И в результате выглядеть это будет так:

 На этом всё, только один недостаток у меня вылез и я его не смог решить — это появление окна при загрузке компьютера с сообщением:

Понятно, что VBoxHeadlessTray не может почему-то найти Log файл, но закрыв это окно все продолжает работать хорошо.