Драйвер MacOS для принтера Canon LaserJet LBP-1120
Как печатать на принтере, для которого нет драйвера под MacOS?
По случаю я дешево купил лазерный принтер Canon LaserJet LBP-1120.
Для него нет драйверов под последние версии MacOS. Но есть драйвера под Windows XP.
Решение напрашивается. Установим принтер в виртуальной машине Windows, используя имеющиеся Windows-драйвера. Также установим в Windows виртуальный принтер, который умеет документ PostScript отправить на настоящий принтер. А в MacOS установим Generic PostScript Printer, который отправляет на принтер PostScript. И направим его на виртуальный принтер в виртуальной Windows.
Такая вот двойная виртуализация. Но давно известно, что для автоматизации работы на пару часов, любой программист не задумываясь потратит пару дней. Потому что так он избежит двухчасовой работы и получит два дня на развлечения 8-)
Итого, наш план:
- Ставим виртуальный Windows на MacOS (уверен, в будущем вы найдете ему и иные применения)
- Настраиваем в Windows физический принтер с настоящим драйвером от Canon
- Настраиваем в Windows виртуальный принтер, который PostScript документ отправит на физический принтер
- Настраиваем в MacOS удаленный принтер с драйвером Generic PostScript Printer, направленным на виртуальный принтер Windows
Виртуальный Windows на MacOS
Нам нужна виртуальная машина и дистрибутив Windows.
Виртуальная машина
Я использую Oracle Virtual Box. Нам нужен дистрибутив
OS X hosts
.
Ставится легко и не требует специальной настройки.
Установка Windows XP
Microsoft все еще хочет денег за Windows XP, но регистрировать ее не обязательно - она всего лишь будет вам напоминать о необходимости это сделать.
Так что я советую не ковыряться в заполненных вирусами пиратских развалах, а одеть белые штаны
и скачать дистрибутив с сайта microsoft. Я использовал
эту ссылку но Microsoft
славится тем, что ссылки на ее сайте работают недолго. Если ссылка не работает - не паникуйте,
поищите Windows XP Mode
в Microsoft Download Center.
Чтобы не тратить время на инсталляцию Windows, я советую вам использовать следующий трюк.
- Установите в MacOS The Unarchiver.
- С его помощью распаковать скачанный вами архив
Windows XP Mode
. - Затем долнительно распаковать файл
xpm
в распакованном каталогеsources/xpminstl64
. У него нет расширения, так что явно выберите для негоOpen With..
->other...
->The Unarchiver.app
. - В распакованном каталоге надо сделать еще одно магическое действие. Файл
VirtualXPVHD
переименуйте вVirtualXP.VHD
. Подтвердив MacOS, что вы осознаете все возможные ужасные последствия столь смелого действия.
В результате этого трюка мы получаем готовый диск для Oracle Virtual Box с уже установленной Windows XP.
Теперь мы создаем новую виртуальную машину в Oracle Virtual Box - нажимаем на синюю иконку new:
Выбираем тип Windows XP 32bit. Билл Гейтс обещал, что всем хватит 640Кб, но я все же рекомендую выбрать примерно в восемьсот раз больше - 512Мб.
Выберите Use an existing virtual hard disk file
. Нажмите на пиктограмку справа с папочкой и
зеленой стрелкой.
В открывшемся далее окне нажмите на иконку Add
с зеленым плюсиком и выберите
с таким трудом извлеченный VirtualXP.VHD
.
Настройте Video Memory 128MB для этой машины.
При ее старте там уже будет установленная Windows XP.
Как нажать правую кнопку мыши (часто необходимая оперция в Windows)
Нажмите Shift+Cmd
и удерживая их кликните кнопкой мыши.
VirtualBox Guest Additions
Для корректной работы мышки, буфера обмена и прочего вам надо установить
Oracle's Guest Additions
в нашу виртуальную Windows (Guest Windows
как это называет Oracle).
Выберите в меню Devices
Oracle VM VirtualBox пункт Insert Guest Additions CD Image
.
Это подключит виртуальный лазерный диск Guest Additions ISO к нашей виртуальной Windows.
И далее Windows автоматически запустит с него инсталлятор Guest Additions
который и установит
Guest Additions.
Физический принтер Windows
Его ставите самым стандартным для Windows образом - кнопка в левом нижнем углу Start
->
Printers and Faxes
-> в вертикальном меню слева Add a printer
. Драйвер используем для вашего
принтера.
Тестовую страницу советую распечатать, чтобы точно знать, что у нас все правильно установилось.
Внимание - имя у принтера не должно включать пробелов и других спец-символов. Это существенно упростит настройку виртуального принтера.
Свой я назвал canon
.
Виртуальный принтер Windows
GhostScript
Чтобы разобрать PostScript файлы, которые нам будет присылать MacOS, мы будем использовать бесплатный пакет GhostScript.
Последняя версия у меня не заработала в Windows XP, поэтому я скачивал версию
9.50 - файл
ghostpcl-9.50-win32.zip
.
Распакуйте его и запустите инсталлятор в Windows.
Внимание для упрощения настройки укажите каталог для установки C:\gs
.
Параметры командной строки GhostScript
Чтобы далее при настройке виртуального принтера не писать длиннющую командную строку, давайте положим все в файлик.
В каталоге C:\gs
создайте файлик с именем попроще и любыи расширением - в моем случае
canon.rsp
. Например, с помощью Notepad
.
В файлике должно быть:
-IC:\gs\lib;C:\gs\Resource\Font
-sDEVICE=mswinpr2
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="%printer%canon"
В последней строке после %printer%
должно быть имя вашего физического принтера.
RedMon
Чтобы перехватывать отправляемые на печать файлы PostScript мы будем использовать
RedMon. Я устанавливал версию 1.9
.
Распакуйте архив и запустите инсталлятор в Windows.
Настройка виртуального принтера
Нам надо настроить обеспечиваемое RedMon перенаправление так, чтобы расшифрованный PostScript отправлялся на настоящий принтер.
Создаем виртуальный принтер. Start
-> Printers and Faxes
-> Add a printer
.
В мастере настройки выбираем локальный принтер, отключаем
Automatically detect..
чтобы зря не ждать, пока оно ничего не найдет.
На следующем шаге мастера переключаемся на Create a new port
и выбираем тип Redirected port
.
В качестве драйвера я выбрал Apple LaserWriter
.
Не забудьте расшарить этот принтер (Printer Sharing):
Завершаем создание, не надо делать его принтером по умолчанию и не надо печатать тестовую страницу.
Теперь открываем Properties
свежесозданного принтера, и для выбранного Redirected port
настраиваем командную строку C:\gs\bin\gswin32c.exe
. Обратите внимание на c
в имени.
Аргументы должны указывать на созданный нами выше файлик: @C:\gs\canon.rsp -
. Обратите
внимание, что в конце пробел и тире.
В Output
выбираем Copy temporary file to printer
. В printer
выбираем наш физический принтер.
Сохраняем кнопкой Ok
.
Я назвал принтер canonrd
.
Вот теперь стоит напечатать на этом виртуальном принтере тестовую страницу, чтобы убедится,
что у нас все корректно работает - клик правой кнопкой мыши на принтере Properties
-> General
-> Print Test Page
.
Удаленный Windows принтер в MacOS
Стандатным образом устанавливаем принтер. System preferences
-> Printers & Scanners
Нажимаем плюсик внизу списка принтеров.
Выбираем вверху Windows
, в появившемся списке сеток Windows выбираете нужную сеть, в ней наш
виртуальный компьютер с Windows, и там должел появиться список принтеров. Выбираете виртуальный
принтер (тот что мы выше назвали canonrd
). Драйвер должен выбраться по умолчанию,
Generic PostScript Printer
.
Все - мы можем из MacOS печатать на нашем принтере. Надо только не забывать запускать виртуальную машину с Windows. Благо она стартует за полсекунды. И можно автоматизировать ее запуск с помощью Alfred, указав командную строку
VirtualBoxVM --startvm "<your virtual machine name>"