Поделиться через


Известные проблемы с отрисовкой на стороне клиента

Отрисовка на стороне клиента включена для всех драйверов по умолчанию, так как она прозрачна для большинства драйверов принтеров и обеспечивает определенное преимущество для пользователя. Большинство драйверов принтеров не будут испытывать никаких проблем с включенной функцией.

Однако если драйвер принтера сталкивается с проблемой, вы можете отключить функцию отрисовки на стороне клиента, и драйвер принтера отрисовывает задание печати на сервере печати, как в предыдущих версиях операционной системы Windows. Системные администраторы также могут отключить отрисовку на стороне клиента с помощью задания печати Always Render в групповой политике сервера.

Примечание

Если отключить функцию отрисовки на стороне клиента, отрисовка задания печати будет перемещена на сервер печати, что может негативно повлиять на производительность сервера печати.

Драйверы принтеров, установленные в пакете драйверов, не будут иметь проблем с отрисовкой на стороне клиента.

В следующем списке описаны некоторые известные проблемы с отрисовкой на стороне клиента.

  • Отрисовка на стороне клиента автоматически отключается, если драйвер принтера использует пользовательский процессор печати, но процессор печати не установлен на клиентском компьютере.

    В некоторых случаях процессор печати драйвера принтера, который не настроен в качестве пакета драйверов, может быть не установлен на клиентском компьютере во время наводки и печати. Если очередь печати печати обнаруживает проблему, она отключает отрисовку на стороне клиента для этой очереди печати. Чтобы избежать этой проблемы, создайте пакет драйверов для драйвера принтера.

  • Отрисовка на стороне клиента для очереди печати отключена, если обработчик печати возвращает ошибку.

    После отключения отрисовки на стороне клиента для очереди печати диспетчер очереди печати выполняет повторную попытку задания печати, используя отрисовку на стороне сервера. После отключения отрисовки на стороне клиента для очереди печати очередь печати больше не будет иметь никаких преимуществ отрисовки на стороне клиента, таких как автономная печать.

  • Данные конфигурации принтера могут быть неполными для драйверов принтеров, использующих нестандартные данные конфигурации.

    Point and Print может не передавать полные данные конфигурации принтера драйверов принтеров, которые используют собственные методы для хранения и передачи этих данных. Эту проблему можно устранить с помощью функции SetPrinterData или SetPrinterDataEx для хранения данных конфигурации принтера и с помощью функции GetPrinterData или GetPrinterDataEx для отзыва данных конфигурации принтера. Дополнительные сведения об этих функциях см. в документации по Microsoft Windows SDK.

  • Отрисовка на стороне клиента с несоответствием драйвера.

    Несоответствие драйвера принтера существует, если версия драйвера принтера на клиентском компьютере отличается от версии драйвера принтера на сервере. Как правило, при возникновении несоответствия драйвера принтера функция Point and Print обновляет драйвер принтера на клиентском компьютере в соответствии с драйвером принтера на сервере. В некоторых ситуациях может потребоваться, чтобы очередь печати на клиентском компьютере использовала версию драйвера печати, которая не соответствует версии драйвера принтера на сервере печати. Например, вы можете не обновлять драйвер принтера на клиентском компьютере:

    • Если возникает проблема совместимости с драйвером принтера на сервере печати при запуске на клиентском компьютере.
    • Чтобы уменьшить сетевой трафик, который возникает при загрузке нового драйвера принтера с помощью point и print.
    • При отладке или тестировании.

    Вы можете запретить загрузку драйвера принтера для point и print и принудительно использовать на клиентском компьютере лучший драйвер, который уже установлен на клиентском компьютере. Чтобы выбрать это поведение, задайте в разделе реестра HKLM\SYSTEM\CurrentControlSet\Control\Print\PrinterName\PrinterDriverData\DriverPolicy имя драйвера принтера. Замените PrinterName именем очереди печати, чтобы использовать локально доступный драйвер принтера вместо драйвера принтера, доступного на сервере печати. Имя драйвера, введенное в этом разделе реестра, должно быть именем совместимого драйвера принтера, установленного или доступного для установки на клиентском компьютере.

    Вы также можете создать подключение принтера с несоответствием драйвера принтера программным способом, вызвав AddPrinterConnection2, установив флаг PRINTER_CONNECTION_MISMATCH и указав имя драйвера принтера в структуре PRINTER_CONNECTION_INFO_1, на которую ссылается аргумент pConnectionInfo . AddPrinterConnection2 описан в документации windows SDK.

  • Начиная с Windows 8, отрисовка на стороне клиента автоматически отключается, если значение EMFDespoolingSetting отсутствует в реестре, а профиль клиентского компьютера — Мобильная платформа.

    Если клиент является мобильной платформой, например ноутбуком или планшетным устройством, для экономии энергопотребления очередь очереди автоматически отключает отрисовку на стороне клиента, если этого значения нет в реестре. Вы можете явно включить отрисовку на стороне клиента для мобильной платформы в драйвере, вызвав Метод SetPrinterData, чтобы задать значение EMFDespoolingSetting очереди печати равным 0.

    Вы можете проверить, настроен ли ваш компьютер как мобильный или настольный профиль, с помощью msinfo32.exe:

    Снимок экрана: профиль msinfo32.exe.

Если во время тестирования вы обнаружите проблему с драйвером принтера, которую могла вызвать функция отрисовки на стороне клиента, можно отключить отрисовку на стороне клиента для драйвера. Вы можете отключить отрисовку на стороне клиента в драйвере, вызвав Метод SetPrinterData , чтобы задать значение EMFDespoolingSetting очереди печати равным 1. Это значение приводит к тому, что все клиенты, подключающиеся к очереди печати, будут отображать задания печати на сервере.