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


Изменения поведения API Win32 DeviceCapabilities

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Драйвер Unidrv/PScript5, работающий в режиме XPSDrv, создает следующие изменения в функции Microsoft Win32 DeviceCapabilities .

Если функция или параметр GPD/PPD сопоставляются с ключевым словом схемы печати с помощью ключевого слова GPD PrintSchemaKeywordMap или MSPrintSchemaKeywordMap MSPrintSchemaKeywordMap, GPD или PPD поддерживает это ключевое слово схемы печати.

(В следующей таблице "Только PS" означает, что изменение поведения зависит от драйвера PScript5. "Только Unidrv" означает, что изменение поведения зависит от драйвера Unidrv. Если оба этих фраз не отображаются, изменение поведения применяется как к драйверам Unidrv, так и к PScript5.)

Возможность Поведение, отличное от XPSDrv Поведение XPSDrv
DC_COPIES (Только Unidrv) Если emF включен, DeviceCapabilitiesreturns жестко закодированное значение, которое является максимальным значением 9999 или указанным значением GPD-файла *MaxCopies.

Если EMF отключен, DeviceCapabilities возвращает значение GPD*MaxCopies.

(только PS) DeviceCapabilities возвращает жестко закодированное значение 9999.
(Только Unidrv) DeviceCapabilities возвращает значение GPD *MaxCopies.

(только PS) DeviceCapabilities возвращает значение *MSXPSMaxCopies файла PPD или значение 1, если значение не указано в PPD-файле.
DC_TRUETYPE Если задано ключевое слово *FontFormat GPD, функция DeviceCapabilities возвращается (DCTT_BITMAP | DCTT_DOWNLOAD); в противном случае DeviceCapabilities возвращает DCTT_BITMAP.

Для PS устройствоCapabilities всегда возвращает (DCTT_DOWNLOAD | DCTT_SUBDEV).
Если GPD или PPD поддерживает функцию с ключевым словом "PageDeviceFontSubstitution", флаг DCTT_SUBDEV задается в возвращаемом значении.

Если GPD или PPD поддерживает функцию с ключевым словом "PageTrueTypeFontMode" Print Schema, происходит следующее:

Если функция поддерживает параметр с ключевым словом "DownloadAsOutlineFont" Print Schema, то флаги DCTT_DOWNLOAD и DCTT_DOWNLOAD_OUTLINE задаются в возвращаемом значении.

Если функция поддерживает параметр с ключевым словом "Automatic", "DownloadAsRasterFont" или DownloadAsNativeTrueTypeFont, флаг DCTT_DOWNLOAD задан в возвращаемом значении.

Если функция поддерживает параметр с ключевым словом "RenderAsBitmap" Print Schema, флаг DCTT_BITMAP задан в возвращаемом значении.

Если ни один из флагов DCTT_Xxx не задан, DeviceCapabilities возвращает значение 0.
DC_ORIENTATION (только PS) DeviceCapabilities возвращает значение 90 или 270 на основе значения *LandscapeOrientation PPD и настройки жестко закодированного параметра ориентации альбомной ориентации в входной структуре DEVMODE. (только PS) Возвращаемое значение по умолчанию равно 0, что означает, что альбомная ориентация отсутствует.

Если PPD поддерживает функцию с ключевым словом "PageOrientation" Print Schema, происходит следующее:

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

Если функция поддерживает параметр с ключевым словом "ReverseLandscape" Print Schema, DeviceCapabilities возвращает значение 270.
DC_COLLATE Если emF включен, DeviceCapabilities жестко закодирован для возврата 1 (что означает, что сортировка поддерживается).

Если EMF отключен, DeviceCapabilities возвращает значение 1, если GPD или PPD задает Collate как поддерживаемую функцию, а если функция Collate GPD или PPD не ограничена любыми функциями параметров устройства. В противном случае DeviceCapabilities возвращает значение 0.
Поведение совпадает с поведением драйверов, отличных от XPSDrv, с отключенным EMF.
DC_NUP DeviceCapabilities возвращает жестко закодированное значение, указывающее поддержку 1, 2, 4, 6, 9 или 16 ups. Если GPD или PPD определяет функцию с ключевым словом "DocumentNUp" Print Schema (функция DocumentNUp используется только в том случае, если функция JobNUpAllDocumentsContiguously) не существует), то для всех параметров этой функции с именем ключевого слова GPD/PPD в качестве числового числа (т. е. 1, 2, 6 и т. д.), числовое число сообщается как одна из поддерживаемых страниц на листе.

В противном случае XPSDrv сообщает, что NUp не поддерживается.
DC_PERSONALITY Unidrv возвращает строку, определенную по ключевому слову Personality илиrcPersonalityID GPD.

PS всегда возвращает "PostScript".
Сохраните поведение так же, как и для драйверов, отличных от XPSDrv.
DC_MEDIAREADY Если таблица назначений form-Tray когда-либо создана, DeviceCapabilities возвращает уникальные имена форм, перечисленные в таблице с назначенной областью.

Если таблица назначений form-Tray не создана, DeviceCapabilities возвращает значение "Letter" для языкового стандарта по умолчанию неметрики, "A4" для языкового стандарта системы метрик по умолчанию, или GPD или PPD, определенный по умолчанию размер бумаги, если принтер не поддерживает "Буква" и "A4".
Такое же поведение, как и при использовании non-XPSDrv без таблицы назначения области форм.
DC_STAPLE (только PS) PPD не имеет одной функции "Stapling". Драйвер PScript5 проверяет, определены ли какие-либо из следующих функций PPD в PPD и не ограничены параметрами устройства, чтобы определить, может ли устройство поддерживать скобок.

"StapleLocation"
"StapleX", "Stapley"
"StapleWhen"
"StapleOrientation"
(только PS) Если PPD поддерживает функцию с ключевым словом "JobStapleAllDocuments" или "DocumentStaple" Print Schema, DeviceCapabilities возвращает значение 1, чтобы указать на поддержку среза. В противном случае DeviceCapabilities возвращает значение 0.