пятница, 7 сентября 2012 г.

Windows 7. Не печатают все принтеры

  На Windows 7 уже несколько раз видел одинаковые проблемы с принтерами. Симптомы следующие:
  1. Ни один принтер в Windows 7 не печатает.
  2. Попытка посмотреть установленные принтеры в "Пуск" \ "Устройства и принтеры" заканчивается тем, что это окно висит пустое и никакого принтера и устройства не отображает.
  3. Если посмотреть состояние службы "Диспетчер печати" (я смотрю по команде services.msc), в столбце "Состояние" пусто вместо положенного "Работает". Если перезапустить эту службу то через некоторое время (от нескольких секунд до нескольких минут или при попытке печати) она снова останавливается сама по себе.
  Во всех случаях причиной оказались некорректные драйвера какого либо принтера.
  Я подозреваю, что чаще всего это происходит когда к компьютеру с Windows 7 подключали сетевой принтер, стоящий на Windows XP, драйвера принтера от XP копируются на Windows 7. И иногда после такого и начинаются вышеперечисленные проблемы.
  Всегда помогало:
  1. Полное удаление принтеров.
  2. Удаление драйверов принтеров из системы.
  3. Установка драйверов принтеров от Windows 7.
  А теперь по пунктам:
  1. На каждый принтер найти драйвера от Windows 7. Если производитель их не поставляет, то возможно поможет Каталог центра обновления Microsoft упоминавшийся мною в этой статье о подключении старичка DocuPrint P8e к Windows 7 и в этой статье о непечатающих сетевых принтерах HP LaserJet 1020. Там лежат драйвера под Windows 7 для многих старых устройств. Еще можно попробовать подобрать принтер из тех, что уже встроены в Windows 7. Допустим принтеры от HP хорошо заменяют других собратьев.
  2. Удалить все установленные принтеры, кроме виртуальных принтеров. Под виртуальными я имею в виду принтеры факсов, устройства вроде "Microsoft XPS document printer" и "Отправить в OneNote 2010". Т.е. не реальные принтеры.
  3. После предыдущего пункта в системе все равно остаются драйвера принтеров. Их надо удалить. Для этого отключаем локальные принтеры и в "Пуск" \ "Устройства и принтеры" кликаем на  любой принтер. После чего сверху окна, там где кнопки "Добавление устройства " и "Установка принтера" появляется "Свойства сервера печати". В нем на вкладке "Драйверы" видим список драйверов принтеров. Так как мне неизвестны способы определить какой из них вызывает сбой, то я удаляю все драйверы, кроме виртуальных (см. пункт 2). Некоторые драйверы Windows 7 откажется удалять. Обычно это те принтеры, которые мы удаляли в пункте 2. Просто перегрузите компьютер и тогда Windows 7 даст удалить эти драйвера. В особо тяжелом случае я вручную чистил драйвера из реестра и папки Windows \ System32 \ Spool.
  4. Установить в Windows драйвера принтеров, которые мы искали в 1-м пункте. При этом если на локальные принтеры можно просто  запустить программу установки, то с сетевыми этот номер не пройдет. Заходим в место из п.2. На всякий случай повторюсь: "Пуск" \ "Устройства и принтеры" кликаем на  любой принтер. После чего сверху окна, там где кнопки "Добавление устройства " и "Установка принтера" появляется "Свойства сервера печати". В нем на вкладке "Драйверы" видим список драйверов принтеров. Кнопкой "Добавить" указываем inf-файл драйвера принтера. И он появляется в списка добавленных в систему. Добавив все нужные драйвера можно подключать сетевые принтеры.
  После выполнения этих пунктов проблемы исчезали.
  По поводу inf-файлов из п.4. Драйвера для принтеров поставляются любо в виде одной большой программы, которая сама устанавливается, либо в виде нескольких папок в одной из которых надо запустить setup.exe. В первом случае большую программу надо распаковать любым архиватором. Я это делаю свободным 7-ZIP, сайт здесь  Во втором случае в одной из папок обязательно лежит нужный inf-файл. Только inf-ов в обоих случаях может быть несколько на разные версии операционной системы.