вторник, 1 марта 2011 г.

Старый принтер в Win7 x64

Суть проблемы: на предприятии куча десктопных принтеров типа Canon LBP-1120 и подобных, для которых нет драйверов ни для 64битных систем, ни для Linux. Что было сделано:
1) Ставим свежий VirtualBox, не забываем установить Extension-pack для полноценной поддержки USB

2) Поднимаем виртуальную машину Windows XP, настраиваем виртуальную сеть (например в режиме Host only network)
3) Подключаем принтер
3) Создаем в VirtualBox USB-фильтр для автоматического захвата USB-порта с подключенным принтером
4) Ставим в виртуалку драйвер реального принтера
5) Скачиваем и ставим туда же программу PDFCreator в режиме "сервер", указываем при установке, что нужно обеспечить дрова для Windows x64
6) Расшариваем виртуальный принтер
7) Включаем в PDFCreator-е режим Autosave и режим автоматической печати на реальный принтер. С этим пунктом и возникли сложности. Как выяснилось, настройки в реестре сохранялись, но при перезапуске они оттуда не подхватывались. После долгого шаманства с бубном и ProcessMonitor-ом было установлено, что наличие двух ключей:
HKLM\Policies\PDFCreator\Program\UseAutosave=1
HKLM\Policies\PDFCreator\Program\PrintAfterSaving=1
таки заставляют PDFCreator включить нужные режимы при старте
8) Подключаем в основной системе наш расшаренный принтер и радуемся.

Upd: при печати некоторых документов всплыли косяки в виде наезжающих друг на друга букв. Это было вылечено добавлением еще двух ключей:
HKLM\Policies\PDFCreator\Program\AdditionalGhostscriptParameters=-dTextAlphaBits=4|-dGraphicsAlphaBits=4|-dDOINTERPOLATE
HKLM\Policies\PDFCreator\Program\AddWindowsFontpath=0
(что именно из двух ключей положительно повлияло, не проверял)

Комментариев нет: