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


Обзор поставщиков частичной печати

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

В разделе Функции, определенные поставщиками печати, некоторые функции идентифицируются как обязательные. Поставщики частичной печати должны предоставлять все необходимые функции. Поставщики частичной печати обычно не реализуют какие-либо из необязательных функций.

Обязательные функции относятся к следующим группам функций:

Для поставщиков частичной печати порты принтеров должны считаться эквивалентными очередям печати. Для любой функции, получающей структуру PRINTER_INFO_2 , член pPort структуры должен иметь имя очереди печати. Таким образом, если имя очереди печати — \\Server\Printer1, имя порта также должно быть \\Server\Printer1. Реализация EnumPorts поставщиком частичной печати должна возвращать имя порта \\Server\Printer1.

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

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

Частичные поставщики не создают задания печати; они зависят от локального поставщика и его процессоров печати для создания необработанных данных , которые могут быть отправлены на принтер. Когда обработчик печати вызывает функцию StartDocPrinter локального поставщика (см. раздел Печать задания печати), а очередь печати поддерживается частичным поставщиком, локальный поставщик вызывает функцию StartDocPrinter частичного поставщика, предоставляя необработанные данные (в виде файла). Функции StartDocPrinter, WritePrinter и EndDocPrinter частичного поставщика должны отправлять необработанные данные по сети в очередь удаленной печати.