Suporte de driver para impressão protegida
Importante
A plataforma de impressão moderna é o meio preferencial do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.
Para obter mais informações, consulte Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.
O Windows 8.1 inclui suporte para impressão protegida, que permite aos usuários especificar um PIN (número de identificação pessoal) que é usado na impressora, antes da impressão do trabalho.
O Windows 8.1 também permite que os administradores especifiquem um PIN padrão para reduzir o consumo de papel desperdiçado relacionado a conteúdo que é impresso, mas nunca recuperado pelo usuário. Este tópico explica as alterações que possibilitaram o fornecimento de suporte para impressão protegida e também descreve as etapas necessárias para adicionar esse suporte a um driver de impressão v4.
Alterações no esquema de impressão
O Windows 8.1 introduziu novas palavras-chave no Esquema de Impressão que podem ser usadas em documentos PrintTicket e PrintCapabilities a fim de especificar a impressão protegida. Essas palavras-chave são definidas no novo namespace printschemakeywordsv11. Veja aqui o URI deste namespace:
https://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11
Para ver como especificar a impressão protegida em um arquivo PrintTicket, consulte Exemplo de arquivo PrintTicket para impressão de PIN. Para ver como especificar a impressão protegida em um arquivo PrintCapabilities, consulte Exemplo de arquivo PrintCapabilities para impressão de PIN.
As especificações podem ser baixadas aqui:
Especificação do Esquema de Impressão 1.1
Especificação do Esquema de Impressão 2.0
Alterações no driver
Se você estiver trabalhando com um driver v4, será necessário fazer alterações no arquivo de descrição genérica da impressora (GPD) ou no arquivo de descrição de impressora PostScript (PPD), além de outros arquivos de código relacionados ao driver. Os arquivos de código relacionados ao driver que são afetados pelas alterações podem ser categorizados da seguinte forma:
- Arquivo de configuração do driver (GPD ou PPD)
- Filtros de renderização XPS
- Extensões da impressora
- Aplicativos de dispositivo UWP
Você pode usar um driver v3 com as palavras-chave do Esquema de Impressão para impressão protegida, desde que faça as alterações necessárias no código do PTProvider. No entanto, as etapas para realizar essas alterações estão fora do escopo deste tópico.
As seções a seguir fornecem mais informações sobre como implementar alterações que permitirão que o driver v4 dê suporte à impressão protegida.
Arquivo de configuração do driver
Você indica suporte à impressão protegida no DataFile do driver de impressão v4. O DataFile é o arquivo GPD ou PPD, dependendo de qual o driver utiliza. É necessário especificar as diretivas MinLength e MaxLength para habilitar a impressão protegida. As tabelas a seguir descrevem as palavras-chave relevantes que é preciso adicionar ao arquivo GPD ou PPD do driver.
O que adicionar a um arquivo GPD
Se o driver usar um arquivo GPD, adicione as seguintes novas palavras-chave usando esta sintaxe:
Palavra-chave | Descrição | Nível | Valor permitido | Exemplo |
---|---|---|---|---|
*JobPasscodeMinLength | Comprimento mínimo da cadeia de caracteres numérica de PIN com suporte. Esse valor deve ser pelo menos 4 e não maior que 15. |
Raiz | Qualquer valor numérico GPD | *JobPasscodeMinLength: 4 |
*JobPasscodeMaxLength | Comprimento máximo da cadeia de caracteres numérica de PIN com suporte. Esse valor deve ser pelo menos 4 e não maior que 15. Ele deve ser maior ou igual ao valor de *JobPasscodeMinLength. |
Raiz | Qualquer valor numérico GPD | *JobPasscodeMaxLength: 9 |
O que adicionar a um arquivo PPD
Se o driver usar um arquivo PPD, adicione as seguintes novas palavras-chave usando esta sintaxe:
Palavra-chave | Descrição | Nível | Valor permitido | Exemplo |
---|---|---|---|---|
MSJobPasscodeMinLength | Comprimento mínimo da cadeia de caracteres numérica de PIN com suporte. Esse valor deve ser pelo menos 4 e não maior que 15. |
Raiz | "int" (QuotedValue) Em outras palavras, o valor inteiro deve ser expresso entre aspas. |
*MSJobPasscodeMinLength: "4" |
MSJobPasscodeMaxLength | Comprimento máximo da cadeia de caracteres numérica de PIN com suporte. Esse valor deve ser pelo menos 4 e não maior que 15. Ele deve ser maior ou igual ao valor de *MSJobPasscodeMinLength. |
Raiz | "int" (QuotedValue) Em outras palavras, o valor inteiro deve ser expresso entre aspas. |
*MSJobPasscodeMaxLength: "9" |
Especificar restrições de hardware
Se você tiver um dispositivo que não é compatível com a impressão por PIN sem hardware instalável, como um disco rígido, especifique essas restrições usando o arquivo GPD ou PPD. Para fazer isso, é necessário editar o arquivo GPD ou PPD para mostrar o recurso JobPasscode e as duas opções JobPasscode (Ativado e Desativado). As opções ATIVADO/DESATIVADO devem definir PrintSchemaKeywordMap ou MSPrintSchemaKeywordMap para os valores apropriados.
Restrições de software
Não são compatíveis.
Restrições de hardware
A tabela a seguir exibe os valores válidos para as palavras-chave que é preciso usar se quiser especificar o suporte para impressão protegida e restrições de hardware.
Tipo de arquivo: Palavra-chave: Valores válidos: GPD *Recurso, JobPasscode, *Opção
- OFF
- ATIVADO
*PrintSchemaKeywordMap
- "Off"
- "On"
- "JobPasscode"
PPD *Recurso JobPasscode *Opção
- OFF
- ATIVADO
*MSPrintSchemaKeywordMap
- "Off"
- "On"
- "JobPasscode"
Exemplos de arquivos GPD e PPD
Este é um exemplo de um arquivo GPD que especifica JobPasscode com uma restrição de hardware instalável.
*%
*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
}
}
É necessário usar a palavra-chave *ConcealFromUI e defini-la como TRUE para evitar que a opção de impressão protegida seja exibida de forma não intencional. Veja o exemplo anterior de arquivo GPD.
Veja a seguir um exemplo de um arquivo PPD que especifica JobPasscode com uma restrição de hardware instalável.
*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
Como você pode ver no exemplo de arquivo PPD anterior, a palavra-chave *UIConstraints indica a restrição de hardware.
O sistema operacional Windows exibe automaticamente cadeias de caracteres específicas de localidade para o recurso de impressão protegida e suas opções associadas. É possível especificar um novo nome localizado para esse recurso ou suas opções.
Filtros de renderização XPS
Os drivers para dispositivos existentes precisarão de alterações no código de renderização para que possam converter a representação PrintTicket do valor do PIN em um valor que o dispositivo compreenda. Geralmente, isso exigirá a adição de código a um filtro de renderização XPS existente ou a adição de um novo filtro de renderização XPS para dar suporte à impressão protegida. Os drivers que utilizam os filtros de renderização XPS padrão para PCL6 e PostScript devem desenvolver um novo filtro de fluxo para o pipeline de filtro. Esse novo filtro de fluxo injetará um comando apropriado no fluxo PDL pré-renderizado no pipeline de filtros, após o fluxo passar pelo filtro padrão.
A Microsoft recomenda que, para minimizar os requisitos de renderização no computador cliente ou servidor, todos os novos dispositivos compatíveis com XPS ou OpenXPS devem oferecer suporte às novas palavras-chave sem usar transformações adicionais.
Extensões da impressora
É necessário que as extensões da impressora consigam exibir um controle para impressão protegida na interface de preferências de impressão. Isso garante que os usuários de aplicativos da área de trabalho possam configurar o recurso de impressão protegida ao usar a extensão da impressora. A Microsoft está fazendo alterações que permitirão que a família de APIs IPrintSchemaTicket ofereça suporte à impressão protegida a partir de extensões de impressora.
Aplicativos de dispositivo UWP
A Microsoft também está fazendo alterações para permitir que a família de APIs IPrintSchemaTicket funcione com aplicativos de dispositivo UWP para exibir um controle para impressão protegida na interface do usuário de preferências de impressão.