Обработка форматов цветов
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Каждый формат цвета, поддерживаемый принтером, указывается в качестве параметра функции ColorMode. Используя атрибуты параметров для функции ColorMode, можно описать каждый формат цвета, который принимает принтер. В следующей таблице показаны форматы данных цвета, которые может обрабатывать Unidrv.
Количество цветовых плоскостей | Количество битов на пиксель |
---|---|
in Device (*DevNumOfPlanes) | in Device (*DevBPP) |
1 | 1 (черный и белый) |
1 | 8 |
1 | 24 |
3 | 1 (CMY и RGB) |
4 | 1 (CMYK) |
Для этих форматов Unidrv может преобразовать данные, независимые от устройства (DIB), в правильный формат и отправить его на принтер. (Операции полутонирования, которые могут выполняться для этих данных, описаны в разделе Полутонирование с Unidrv.)
Если принтер поддерживает цветовые форматы, которые не перечислены в предыдущей таблице, необходимо выполнить следующие действия:
Задайте для атрибутов *DevNumOfPlanes и *DevBPP значение нулю. Это позволяет Unidrv отправлять данные DIB на принтер.
Укажите подключаемый модуль отрисовки, реализующий метод IPrintOemUni ImageProcessing.
Метод IPrintOemUni ImageProcessing должен выполнять следующие операции:
Преобразуйте данные DIB в цветной формат принтера.
Выполнение полутонных операций с данными.
Отправьте данные в средство spooler печати.
Дополнительные сведения о предоставлении функции IPrintOemUni ImageProcessing см. в разделе "Настраиваемые форматы цветов".
Отрисовка высококачественных изображений
Для каждого формата цвета необходимо указать оба бита на пиксель, которые принимает оборудование принтера, и биты на пиксели, которые требуется использовать Unidrv при создании DIOB-объектов. Эти значения задаются атрибутами *DevBPP и *DrvBPP соответственно. Иногда желательно, чтобы изображения отображались как растровые изображения с большим количеством битов на пиксель, чем принтер может обрабатывать (например, чтобы попытаться воспроизвести высококачественные фотографии). Поэтому можно указать значение *DrvBPP, превышающее результат умножения значения *DevBPP на значение *DevNumOfPlanes.
Например, предположим, что вы хотите определить параметр ColorMode, который приводит к отображению изображений в виде 24 бит/пиксельных растровых изображений, но затем необходимо, чтобы растровое изображение было отправлено на принтер как данные CMYK . Этот режим можно определить следующим образом:
*Feature: ColorMode
{
*Option: 24toCMYK
{
*Name: "Photographic Quality"
*DrvBPP: 24
*DevNumOfPlanes: 4
*DevBPP: 1
*ColorPlaneOrder: LIST(CYAN, MAGENTA, YELLOW, BLACK)
*IPCallbackID: 1
}
other options
}
В этом примере атрибуты *DevBPP и *DevNumOfPlanes представляют четырехуровневый формат CMYK, который Unidrv может отрисовывать и отправлять на принтер. Однако в этом случае операции полутонирования должны выполняться на отрисованном изображении перед печатью. Необходимо использовать полутонирование мини-накопителей .