Поддержка драйверов для защищенной печати
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Для получения дополнительной информации см. руководство по проектированию приложения поддержки печати .
Windows 8.1 включает поддержку защищенной печати, которая позволяет пользователям указывать личный идентификационный номер (ПИН-код), который затем используется на принтере до печати задания.
Windows 8.1 также позволяет администраторам указывать ПИН-код по умолчанию, чтобы уменьшить потребление расточительной бумаги, связанное с содержимым, которое печатается, но никогда не извлекается пользователем. В этом разделе описываются изменения, которые позволили обеспечить поддержку защищенной печати, а также описывает шаги, необходимые для добавления этой поддержки в драйвер печати версии 4.
Изменение схемы печати
Windows 8.1 появились новые ключевые слова схемы печати, которые можно использовать в документах PrintTicket и PrintCapabilities для указания защищенной печати. Эти ключевые слова определены в новом пространстве имен printschemakeywordsv11 . Ниже приведен универсальный код ресурса (URI) для этого пространства имен:
https://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11
Чтобы узнать, как указать защищенную печать в файле PrintTicket, см. пример файла PrintTicket для печати ПИН-кода. Чтобы узнать, как указать защищенную печать в файле PrintCapabilities, см . пример файла PrintCapabilities для печати ПИН-кода.
Спецификации можно скачать здесь:
Изменения драйвера
Если вы работаете с драйвером версии 4, необходимо внести изменения в универсальный файл описания принтера (GPD) или описания принтера PostScript (PPD) и других файлов кода, связанных с драйвером. Файлы кода, связанные с драйвером, затронутые изменениями, можно классифицировать следующим образом:
- Файл конфигурации драйвера (GPD или PPD)
- Фильтры отрисовки XPS
- Расширения принтера
- Приложения устройств UWP
ou может использовать драйвер версии 3 с ключевыми словами схемы печати для защищенной печати, если вы вносите необходимые изменения в коде PTProvider. Но шаги по внесению этих изменений находятся вне области этой статьи.
В следующих разделах приведены дополнительные сведения о реализации изменений, позволяющих драйверу версии 4 поддерживать защищенную печать.
Файл конфигурации драйвера
Вы указываете поддержку защищенной печати в DataFile для драйвера печати версии 4. DataFile — это GPD или PPD-файл, независимо от того, какой из них использует ваш драйвер. Для включения защищенной печати необходимо указать директивы MinLength и MaxLength. В следующих таблицах описываются соответствующие ключевые слова, которые необходимо добавить в файл GPD или PPD драйвера.
Что добавить в GPD-файл
Если драйвер использует GPD-файл, добавьте следующие новые ключевые слова с помощью этого синтаксиса:
Ключевое слово | Description | Уровень | Допустимое значение | Пример |
---|---|---|---|---|
*JobPasscodeMinLength | Минимальная длина поддерживаемой числовой строки ПИН-кода. Это значение должно быть не менее 4 и не превышает 15. |
Корневой | Любое числовое значение GPD | *JobPasscodeMinLength: 4 |
*JobPasscodeMaxLength | Максимальная длина поддерживаемой числовой строки ПИН-кода. Это значение должно быть не менее 4 и не превышает 15. Оно должно быть больше или равно значению *JobPasscodeMinLength . |
Корневой | Любое числовое значение GPD | *JobPasscodeMaxLength: 9 |
Что добавить в PPD-файл
Если драйвер использует PPD-файл, добавьте следующие новые ключевые слова с помощью этого синтаксиса:
Ключевое слово | Description | Уровень | Допустимое значение | Пример |
---|---|---|---|---|
MSJobPasscodeMinLength | Минимальная длина поддерживаемой числовой строки ПИН-кода. Это значение должно быть не менее 4 и не превышает 15. |
Корневой | Int (QuotedValue) Другими словами, целочисленное значение должно быть выражено в кавычках. |
*MSJobPasscodeMinLength: "4" |
MSJobPasscodeMaxLength | Максимальная длина поддерживаемой числовой строки ПИН-кода. Это значение должно быть не менее 4 и не превышает 15. Оно должно быть больше или равно значению *MSJobPasscodeMinLength . |
Корневой | Int (QuotedValue) Другими словами, целочисленное значение должно быть выражено в кавычках. |
*MSJobPasscodeMaxLength: "9" |
Указание ограничений оборудования
Если у вас есть устройство, которое не поддерживает печать ПИН-кода без устанавливаемого оборудования, например жесткого диска, укажите эти ограничения с помощью GPD или PPD-файла. Для этого необходимо изменить GPD или PPD-файл, чтобы отобразить функцию JobPasscode и параметры JobPasscode (вкл. и выкл.). Параметры ON/OFF должны задать значение PrintSchemaKeywordMap или MSPrintSchemaKeywordMap соответствующим значениям.
Ограничения программного обеспечения
Они не поддерживаются.
Аппаратные ограничения
В следующей таблице показаны допустимые значения ключевых слов, которые необходимо использовать, если требуется указать поддержку защищенных ограничений печати и оборудования.
Допустимые значения ключевого слова типа файла GPD *Feature JobPasscode *Option
- ВЫКЛ.
- DNS
*PrintSchemaKeywordMap
- "Off"
- "On"
- JobPasscode
PPD *Feature JobPasscode *Option
- ВЫКЛ.
- DNS
*MSPrintSchemaKeywordMap
- "Off"
- "On"
- JobPasscode
Примеры файлов GPD и PPD
Ниже приведен пример файла GPD, указывающего JobPasscode с ограничением устанавливаемого оборудования.
*%
*GPDSpecVersion: "1.0"
*GPDFileVersion: "1.0"
*Include: "StdNames.gpd"
*Include: "MSxpsinc.gpd"
*ResourceDLL: "unires.dll"
*GPDFileName: "FAsmpl.gpd"
*ModelName: "Fabrikam JobPasscode Sample"
*MasterUnits: PAIR(1200, 1200)
*PrinterType: PAGE
*MaxCopies: 999
*JobPasscodeMinLength: 4
*JobPasscodeMaxLength: 15
*%******************************************************************************
*% JobPasscode
*%******************************************************************************
*Feature: JobPasscode
{
*Name: "Job Passcode"
*DefaultOption: OFF
*ConcealFromUI: TRUE
*PrintSchemaKeywordMap: "JobPasscode"
*Option: OFF
{
*PrintSchemaKeywordMap: "Off"
*Name: "Off"
}
*Option: ON
{
*PrintSchemaKeywordMap: "On"
*Name: "On"
}
}
*Feature:PrinterHardDisk
{
*rcNameID: RESDLL.PCL5ERES.430
*FeatureType: PRINTER_PROPERTY
*DefaultOption: FALSE
*Option: FALSE
{
*DisabledFeatures: LIST(JobPasscode)
*rcNameID: RESDLL.PCL5ERES.444
}
*Option: TRUE
{
*rcNameID: RESDLL.PCL5ERES.443
}
}
Необходимо использовать ключевое слово *ConcealFromUI и задать для него значение TRUE, чтобы предотвратить непреднамеренно отображать защищенный параметр печати. См. предыдущий пример файла GPD.
Ниже приведен пример PPD-файла, указывающего JobPasscode с ограничением устанавливаемого оборудования.
*MSJobPasscodeMinLength: "4"
*MSJobPasscodeMaxLength: "15"
*OpenGroup: InstallableOptions/Installable Options
*% ===== Optional Hard Disk =====
*OpenUI *HardDisk/Printer Hard Disk: Boolean
*DefaultHardDisk: False
*HardDisk False/Not Installed: ""
*HardDisk True/Installed: ""
*CloseUI: *HardDisk
*CloseGroup: InstallableOptions
*% ===== JobPasscode Feature =====
*OpenUI *JobPasscode: PickOne
*DefaultJobPasscode: On
*JobPasscode On: ""
*CloseUI: *JobPasscode
*MSPrintSchemaKeywordMap: JobPasscode *JobPasscode
*MSPrintSchemaKeywordMap: JobPasscode On *JobPasscode On
*UIConstraints: *HardDisk False *JobPasscode
Как видно в предыдущем примере PPD-файла, ключевое слово *UIConstraints указывает ограничение оборудования.
Операционная система Windows автоматически отображает строки, относящиеся к языковому стандарту, для защищенной функции печати и связанных с ней параметров. Невозможно указать новое локализованное имя для этой функции или его параметров.
Фильтры отрисовки XPS
Драйверы для существующих устройств потребуют изменений в коде отрисовки, чтобы эти драйверы могли преобразовать представление PIN-кода PrintTicket в значение, которое устройство понимает. Как правило, для этого потребуется добавление кода в существующий фильтр отрисовки XPS или добавление нового фильтра отрисовки XPS для поддержки защищенной печати. Драйверы, использующие стандартные фильтры отрисовки XPS для PCL6 и PostScript, должны разработать новый фильтр потока для конвейера фильтрации. Этот новый фильтр потоков введет соответствующую команду в предварительно отрисованный поток PDL в конвейере фильтров после передачи потока через стандартный фильтр.
Корпорация Майкрософт рекомендует свести к минимуму требования к отрисовке на клиентском или серверном компьютере, все новые устройства, поддерживающие XPS или OpenXPS, должны поддерживать новые ключевые слова без использования дополнительных преобразований.
Расширения принтера
Расширения принтера должны отображать элемент управления для защищенной печати в пользовательском интерфейсе печати. Это гарантирует, что пользователи классических приложений могут настроить защищенную функцию печати при использовании расширения принтера. Корпорация Майкрософт вносит изменения, позволяющие семейству API IPrintSchemaTicket поддерживать защищенную печать от расширений принтера.
Приложения устройств UWP
Корпорация Майкрософт также вносит изменения, чтобы разрешить семейству API IPrintSchemaTicket работать с приложениями устройств UWP для отображения элемента управления для защищенной печати в пользовательском интерфейсе параметров печати.