О драйверах для устаревших принтеров

6wings

Сломался у меня как-то старый добрый HP LaserJet 4, отслуживший верой и правдой более 10 лет. Чинить его (менять резинки и барабан) уже не имело смысла т.к. новые картриджи к нему не раздобудешь - сняты с производства, а старые картриджи перезаправлялись уже столько раз, что просто износились.

Пока я собирался покупать себе новый и современный принтер, почти принудительно на работе мне всучили тоже довольно старый, но полностью рабочий лазерный принтер Canon LBP-800 (600 dpi и довольно быстрый). Надо сказать, что по опыту эксплуатации у пользователей, эта модель всегда отличалась супер надёжностью, практически не ломаясь вообще. Картриджи тоже к нему пока что существуют и стоят недорого.

Всем хорош был этот Кэнон, вот только драйверы под Семерку к нему найти было невозможно. Нигде. Их просто не существовало в природе. Заставить его работать можно было максимум под ХР или 2003, причём, со старыми драйверами от Windows 2000, да и то с определенными ухищрениями. Что я и сделал, установив его на специальную созданную для этого виртуальную машину 2003 под VMware.

Но проблема оставалась - вокруг в локальной сети стояли одни Семерки и 2008, которые печатать на этом принтере как на сетевом всё равно не могли - дело в том, что когда в Windows устанавливается сетевой принтер, система берет к нему драйверы с принт-сервера (в данном случае с виртуальной 2003, где он установлен) и где, естественно, никаких драйверов для современных ОС нет. Если бы вокруг были ХР, то они прекрасно работали бы с этим сетевым принтером, но увы - рабочих ХР у меня уже давно нигде нет и возвращаться к ним я никак не могу.

Что же делать? Жалко отдавать назад такой надёжный и замечательно работающий девайс (я уже проверил и хорошенько потестировал его в локальном режиме с виртуальной машины), но использовать принтер в качестве сетевого нельзя - этому мешает отсутствие драйверов для 7. Получилась как бы “вещь в себе” - сама по себе прекрасно работает, но использовать для дела невозможно! Даже несмотря на то, что к этому моменту уже был куплен новый современный Самсунг ML-2160 - недорогой, компактный и шустренький лазерный принтер на 1200 dpi, решивший все мои проблемы с печатью, но возвращать “непобежденного” Кэнона было обидно - это стало уже делом принципа ))

И решение-таки нашлось! Один из коллег-админов на iXBT вспомнил, что однажды он уже создавал виртуальный принтер, служивший “прослойкой” между локальной сетью и физическим принтером. При этом, виртуальный принтер представлялся в сети как обычный LaserJet 4 PostScript, драйверы которого есть для любой ОС, а на деле этот “виртуальный LaserJet” редиректил (перенаправлял) весь свой поток печати на настоящий физический принтер. Технология, по которой всё это делалось, описана здесь: рецепт для линукса

Конечно, реально есть некоторые отличия в том, что мне реально пришлось сделать по сравнению с текстом статьи. Так что статья - это “полуфабрикат”. Но кому интересно - разберется. Или можно меня спросить о деталях - я отвечу т.к. у меня всё работает на 100%.

И теперь у меня 2 рабочих лазерных принтера ))

MWW

Букв много, читал долго, и где-то к концу третьего абзаца родилась в голове мысль(мозги в многозадачном режиме, параллельно с чтением 😃 ), использовать для этой цели BiPrint 😃. Это такая банковская примочка(бесплатная), которая создает в винде виртуальный принтер, который перехватывает задание на печать платежного поручения, и впечатывает в него двухмерный штрихкод. Все остальное он пропускает через себя без изменений. Установить его на той машине, к которой реально подключен Canon, указать его как “Принтер для печати”, а сам виртуальный принтер расшарить… Вобщем-то, должно работать. В принципе, то-же самое, что Вы и сделали, только простыми визуальными средствами…

6wings

здорово, если нашлось еще одно решение! Спасибо.
а) а этот BiPrint где берут?
б) если его шарить, то с Семерками он работать будет (драйверы есть)?

Кстати, забыл сказать, что установка виртуального принтера с редиректом потока печати полезна не только в случае использования устаревших принтеров. Ситуация характерна и для Линуксов (об этом как раз и статья), и для Макинтошей, к которым далеко не все принтеры снабжаются драйверами.

qbq

Да. Для Маков большая часть принтеров непригодна. Однако, на сетевых Вин-принтерах они печатать могут.
Интересная мысль!
Запускаем Параллелс с виндой, там устанавливаем любой физический принтер, а в сети показываем его как какой-нибудь ImageWriter, например.
И спокойно печатаем на нём.

MWW
6wings:

а) а этот BiPrint где берут?

Например здесь: www.biprint.ru

Ну да… Свежие версии работают с любой семеркой, старые - нет.

6wings

прочитал описание, но качать не стал т.к. возникли реальные сомнения:

  • клиент в конце каждой страницы присобачивает неотключаемую печать штрих-кода (нафих она нужна при обычной печати?)
  • клиентский принтер надо всегда делать “принтером по умолчанию”
  • клиентский принтер ориентирован именно на п/п и пытается их распознавать. А если не распознаёт и если у нас не п/п а произвольный текст/графика?

Короче, весьма специфическая штучка, которая редирект, наверное, делает, но присобачивает к нему массу ненужных/вредных для произвольной печати вещей. Не говоря уже о том, что используется EMF, а не PS и RAW.

qbq

Похоже, что БиПринт - весьма специфическая вещь, которая не годится для обычной печати. Только для печати платежных поручений (п/п), уходящих в банк с банковской частью программы.

MWW

Все, что не платежное поручение, пролетает насквозь без изменений. Ничего он не присобачивает в конце страницы, если это не платежное поручение, или оно “кривое” и ему не удается его распознать. По умолчанию его совершенно не обязательно ставить. Это рекомендация для тупых бухгалтеров, что-бы не забывали его выбирать при печати платежек. Кроме того, если его выбрать по умолчанию, на него все идет, и тексты и графика, но штрихкод впечатывается только на платежки. Да, используется именно EMF, но, видимо именно для распознавания платежек… Если установить например RAW, то абсолютно все печатается нормально, но платежки печатаются без штрихкода, не понимает он, что это платежка…

PS Да и на самом деле, я не предлогаю его “повсеместно” использовать… Просто, это виртуальный принтер, который создается при элементарной установке, без всяких заморочек… Когда читал проблемму, возникшую у Андрея, первое, что мне пришло в голову, еще не дочитав до конца… Вполне возможно, что существуют программы, работающие аналогично, но без лишних заморочек типа штрихкодов:)… Но, мне они не известны…

qbq

Собственно, в статье, ссылку на которую дал Шестикрыл, и используются две маленьких программки: redmon и GhostScript, которые настраиваются при помощи своих конфигурационных файлов. Примеры настроек в статье есть, так что повторить всё это с минимальными отличиями (для других принтеров, например) не составит особого труда.

lelik
6wings:

Ситуация характерна и для Линуксов (об этом как раз и статья)

Эта статья о прикручивании GDI-принтера, который без венды не живет, линуксового там только один абзац про SMB-принтер. Если же принтер железный, то, как мне кажется, проще вместо винды в виртуалке поднять мелкий линух с CUPS и GS, настроить там принтер и экспортировать его через LPD/IPP/SMB, а уж из винды его юзать как сетевой HP LJ4 или Apple Laser Writer II (кстати, драйвера к нему попрямее). Так, по крайней мере, никаких костылей не надо, все штатными средствами делается.

6wings

а конкретно Canon LBP-800 или тот же конкретно упомянутый в статье MF3110 прикрутить к Линуксу сможешь? Т.е. просто заставить линуксовые проги на них естественным образом печатать.
Если да, то опиши вкратце как, плз. Интересно чисто практически. Это же решение проблемы, с которой не справился автор статьи, и из-за которой он использовал Винду.
Вопрос о редиректе с виртуального принтера не стоИт - и так понятно, что он возможен. Какой редиректить - не суть важно. Я пробовал разные, включая ImageWriter - всё работает прекрасно и одинаково.

lelik

Canon LBP-800 - прикручивается, 3110 - вроде нет, это ж win-printerы, с ними всегда засады какие-нибудь и единого рецепта, увы, нет. Я же к тому, что любой принтер, будь он хоть PS, хоть PCL, хоть ESC/P, прикрученный к CUPS, автоматом понимает PostScript и его можно юзать со стандартными PPD. А на винде это надо костылями городить.

6wings
lelik:

это ж win-printerы, с ними всегда засады какие-нибудь и единого рецепта, увы, нет

о чем тогда спор?
А насчёт “костылей”, так это как раз всё то, что описывается в твоём прикручивается

Кстати, раньше далеко не все принтеры понимали PostScript и GhostScript как раз для этого и делался, насколько я понимаю.

Кроме того, виртуальный сервер 2003 у меня всё равно всегда запущен на одном из хостов - он много чего делает, поэтому добавить к нему физический и виртуальный принтеры не составило труда. Ресурсов они почти не жрут. Ни молча, ни в работе.

lelik

Мне очень не понравился порт редиректор. Но, похоже, на винде другого решения нет.

6wings
lelik:

Мне очень не понравился порт редиректор

а чем?
Он создает вирт. порт RPT1 (или RPTn - столько штук, сколько надо, я создавал несколько одновременно), на них ставятся практически ЛЮБЫЕ вирт принтеры, с которых, в свою очередь весь поток забирает GhostScript и отправляет его на физический принтер, который стоит в режиме просто RAW (хотя возможны и все остальные варианты).
Вполне удобно и логично.