Compartilhar via


Serviços Web em dispositivos para impressão (WS-Print)

Importante

A plataforma de impressão moderna é o meio preferido 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.

Os serviços da Web em dispositivos para impressão (WS-Print) foram introduzidos para fornecer um protocolo de conexão para periféricos de impressão e digitalização.

Visão geral

A tecnologia de serviços Web fornece uma estrutura comum para descrever e compartilhar informações. Como resultado, o Windows vem com um conjunto de protocolos para consumir e controlar serviços em dispositivos conectados à rede.

Existem quatro especificações de serviços Web de impressão e digitalização, para ajudar os fabricantes de dispositivos a aproveitar a experiência do cliente aprimorada em relação à conexão, instalação e uso de dispositivos com o Windows.

WS-Print v1.1

Para Windows 8, o esquema de impressão para serviços Web em dispositivos (WSD) foi atualizado para v1.1. Essa versão do esquema (chamada WS-Print v1.1) foi atualizada para oferecer suporte à configuração aprimorada do driver, melhor representação de cores para tinta/toner e IDs de modelos de dispositivo.

WS-Print v1.2

Para o Windows 8.1, o WS-Print inclui todas as operações e elementos de esquema usados no WS-Print v1.1, mas a definição do serviço de impressão para serviços Web em dispositivos foi atualizada. E os novo serviços Web resultantes em dispositivos para impressão é o WS-Print v1.2.

No WS-Print v1.2, o suporte para um novo elemento de esquema e uma nova operação foram adicionados. O novo elemento de esquema "SupportsWSPrintV12" é usado para identificar o suporte para WS-Print V1.2. A nova operação , "SetPrinterElements", permite que um cliente defina o valor de um elemento de esquema na impressora. Por exemplo, o cliente poderia definir um elemento personalizado chamado "InkHeadAlignmentValue" que a impressora usaria para realinhar a ponta do jato de tinta.

Para sua conveniência, as especificações são fornecidas aqui na seção Downloads, de forma completa e independente, juntamente com suas WSDLs (Web Services Description Languages, Linguagens de descrição de serviços Web) e XSDs (XML Schema Definitions, Definições de esquema XML) associadas. Essas quatro especificações de serviços Web em dispositivos são cobertas pelo contrato de licença de documentação técnica incluído, que faz referência ao WDK (Windows driver development kit, Kit de desenvolvimento de driver do Windows).

As seções a seguir fornecem informações mais detalhadas sobre os vários aspectos do WS-Print.

Diagramas de sequência

Os diagramas de sequência a seguir ilustram a interação entre o cliente e a impressora para determinar a versão do namespace WS-Print compatível e, em seguida, recuperar os elementos de esquema estendidos.

Diagrama de sequência do WS-Print v1.1

Aqui está o diagrama de sequência de interação para uma impressora que suporta WS-Print v1.1:

diagrama de sequência mostrando a interação cliente-impressora em relação ao suporte ao WS-Print v1.1 e às consultas posteriores para descrição e configuração da impressora.

Se a impressora for compatível com WS-Print v1.1, em resposta à consulta GetPrinterElements(wprt:PrinterDescription) do cliente, ela enviará informações de volta para indicar que sim.

Depois que a impressora confirmar que é compatível com WS-Print v1.1, o cliente enviará uma consulta GetPrinterElements(wprt11:DriverConfiguration) e a impressora responderá com as informações de configuração do driver solicitadas.

Diagrama de sequência do WS-Print v1.2

Aqui está o diagrama de sequência de interação para uma impressora compatível com WS-Print v1.2:

diagrama de sequência mostrando a interação cliente-impressora em relação à compatibilidade com WS-Print v1.2 e às consultas posteriores para descrição e configuração da impressora.

Se a impressora for compatível com WS-Print v1.2, em resposta à consulta GetPrinterElements(wprt:PrinterDescription) do cliente, ela enviará informações de volta para indicar que sim.

Além disso, a impressora deve retornar wprt12:SupportsWSPrintV12 em resposta à chamada GetPrinterElements(wprt:PrinterDescription). Depois disso, o cliente pode chamar a operação SetPrinterElements para definir um ou mais elementos de dados no esquema compatível com o dispositivo WS-Print.

Depois que a impressora confirmar que é compatível com WS-Print v1.2, o cliente enviará uma consulta GetPrinterElements(wprt11:DriverConfiguration) e a impressora responderá com as informações de configuração do driver solicitadas.

Namespaces

Namespace do WS-Print v1.1

Namespace: <https://schemas.microsoft.com/windows/2010/06/wdp/printv11>Definição de namespace do XML: xmlns:wprt12="<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>"

Namespace do WS-Print v1.2

Namespace: <https://schemas.microsoft.com/windows/2012/10/wdp/printV12>Definição de namespace do XML: xmlns:wprt11="<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>"

Especificando o suporte ao WS-Print 1.1

As impressoras que são compatíveis com elementos do WS-Print 1.1 devem atualizar seu PrinterDescription para incluir wprt11:SupportsWSPrintv11. Se wprt11:SupportsWSPrintv11 não for especificado e definido como true, o WSDMon não solicitará nenhum elemento WS-Print 1.1 da impressora.

Os dispositivos de impressão compatíveis com o WS-Print v1.1 devem incluir o conteúdo a seguir em seu PrinterDescription para que o Windows consulte quaisquer outros elementos nesse namespace.

<soap:Envelope
...
  xmlns:wprt11="https://schemas.microsoft.com/windows/2010/06/wdp/printv11">"
...
  <wprt11:SupportsWSPrintv11>true</wprt11:SupportsWSPrintv11>
...

O snippet XML a seguir é derivado da Especificação do Serviço de Impressão WSD v1.0 e mostra o uso adequado do conteúdo na seção anterior.

<soap:Envelope
        xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
        xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
        xmlns:wprt="https://schemas.microsoft.com/windows/2006/08/wdp/print"
        xmlns:wprt11="https://schemas.microsoft.com/windows/2010/06/wdp/printv11">"
  <soap:Header>
    <wsa:To>https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
    <wsa:Action>
      https://schemas.microsoft.com/windows/2006/08/wdp/print/GetPrinterElementsResponse
    </wsa:Action>
    <wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
    <wsa:RelatesTo>uuid:MsgIdOfTheGetPrinterElementsRequest</wsa:RelatesTo>
  </soap:Header>
  <soap:Body>
    <wprt:GetPrinterElementsResponse>
      <wprt:PrinterElements>
        <wprt:ElementData Name="wprt:PrinterDescription" Valid="true">
          <wprt:PrinterDescription>
            <wprt:ColorSupported>true</wprt:ColorSupported>
            <wprt:DeviceId>MFG:Acme;MDL:PrintMaster 9020</wprt:DeviceId>
            <wprt:MultipleDocumentJobsSupported>true</wprt:MultipleDocumentJobsSupported>
            <wprt:PagesPerMinute>20</wprt:PagesPerMinute>
            <wprt:PagesPerMinuteColor>8</wprt:PagesPerMinuteColor>
            <wprt:PrinterName xml:lang="en-AU, en-CA, en-GB, en-US">
              Accounting Printer in Copy Room 2
            </wprt:PrinterName>
            <wprt:PrinterInfo xml:lang="en-AU, en-CA, en-GB, en-US">
              Printer for use of Accounting only
            </wprt:PrinterInfo>
            <wprt:PrinterLocation xml:lang="en-AU, en-CA, en-GB, en-US">
              LA Campus – Building 3
            </wprt:PrinterLocation>
            <wprt11:SupportsWSPrintv11>true</wprt11:SupportsWSPrintv11>
          </wprt:PrinterDescription>
        </wprt:ElementData>
      </wprt:PrinterElements>
    </wprt:GetPrinterElementsResponse>
  </soap:Body>
</soap:Envelope>

O snippet XML a seguir mostra o esquema de um dispositivo de impressão compatível com o WS-Print v1.1.

<xs:schema targetNamespace="https://schemas.microsoft.com/windows/2010/06/wdp/printv11"
           xmlns:wprt11="https://schemas.microsoft.com/windows/2010/06/wdp/printv11"
           xmlns:xs="https://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">

<xs:annotation>
    <xs:documentation>
        WS-Print Extensions for Driver Configuration and Consumable Definition
        Copyright 2010 Microsoft Corp. All rights reserved
    </xs:documentation>
</xs:annotation>

<xs:annotation>
    <xs:documentation> A Boolean element that denotes support for WS-Print V11 extensions
    </xs:documentation>
</xs:annotation>

<xs:element name="SupportsWSPrintv11" type="xs:boolean"/>

Especificando o suporte ao WS-Print 1.2

As impressoras que são compatíveis com elementos do WS-Print 1.2 devem atualizar seu PrinterDescription para incluir wprtV12:SupportsWSPrintV12. Se wprtV12:SupportsWSPrintV12 não for especificado e definido como true, o WSDMon não solicitará nenhum elemento WS-Print 1.2 da impressora.

Os dispositivos de impressão compatíveis com o WS-Print v1.2 devem incluir o conteúdo a seguir em seu PrinterDescription, para que o Windows consulte quaisquer outros elementos nesse namespace.

<soap:Envelope
…
    xmlns:wprtV12="https://schemas.microsoft.com/windows/2012/10/wdp/printV12">
…
    <wprtV12:SupportsWSPrintV12>true</wprtV12:SupportsWSPrintV12>
…
</soap:Envelope>

O snippet XML a seguir é derivado da Especificação do serviço de impressão WSD v1.2 e mostra o uso adequado do conteúdo na seção anterior.

<soap:Envelope
     xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
     xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
     xmlns:wprt="https://schemas.microsoft.com/windows/2006/08/wdp/print"
     xmlns:wprtV12="https://schemas.microsoft.com/windows/2012/10/wdp/printV12">
     <soap:Header>
          <wsa:To>https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
          <wsa:Action>
               https://schemas.microsoft.com/windows/2006/08/wdp/print/GetPrinterElementsResponse
          </wsa:Action>
          <wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
          <wsa:RelatesTo>uuid:MsgIdOfTheGetPrinterElementsRequest</wsa:RelatesTo>
     </soap:Header>
     <soap:Body>
         <wprt:GetPrinterElementsResponse>
            <wprt:PrinterElements>
             <wprt:ElementData Name="wprt:PrinterDescription" Valid="true">
                <wprt:PrinterDescription>
                     <wprt:ColorSupported>true</wprt:ColorSupported>
                         <wprt:DeviceId>MFG:Acme;MDL:PrintMaster 9020</wprt:DeviceId>
                         <wprt:MultipleDocumentJobsSupported>true</wprt:MultipleDocumentJobsSupported>
                     <wprt:PagesPerMinute>20</wprt:PagesPerMinute>
                     <wprt:PagesPerMinuteColor>8</wprt:PagesPerMinuteColor>
                     <wprt:PrinterName xml:lang="en-AU, en-CA, en-GB, en-US">
                             Accounting Printer in Copy Room 2</wprt:PrinterName>
                         <wprt:PrinterInfo xml:lang="en-AU, en-CA, en-GB, en-US">
                             Printer for use of Accounting only</wprt:PrinterInfo>
                         <wprt:PrinterLocation xml:lang="en-AU, en-CA, en-GB, en-US">
                             LA Campus – Building 3</wprt:PrinterLocation>
                         <wprtV12:SupportsWSPrintV12>true</wprtV12:SupportsWSPrintV12>
                    </wprt:PrinterDescription>
             </wprt:ElementData>
            </wprt:PrinterElements>
         </wprt:GetPrinterElementsResponse>
      </soap:Body>
</soap:Envelope>

Os exemplos de esquema nas três seções a seguir mostram como usar alguns dos novos elementos que foram introduzidos com o WS-Print V1.1. Para obter mais informações sobre todos os elementos que foram introduzidos com o namespace WS-Print V1.1, consulte os arquivos de suporte para WS-Print v1.0 – v1.2 listados na seção Downloads abaixo.

Configuração aprimorada do driver

Esse esquema fornece arquivos de configuração GPD ou PPD específicos do dispositivo para esse dispositivo.

   <xs:annotation>
        <xs:documentation>Driver Configuration File definition</xs:documentation>
    </xs:annotation>
    <xs:element name="DriverConfiguration" type="wprt11:DriverConfigurationType"/>
    <xs:complexType name="DriverConfigurationType">
        <xs:sequence>
            <xs:element name="GPDConfigFile" type="xs:string" minOccurs="0" />
            <xs:element name="PPDConfigFile" type="xs:string" minOccurs="0" />
            <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax" />
    </xs:complexType>

ID do modelo de dispositivo

O esquema a seguir descreve um ModelID para o dispositivo e é usado para recuperação de metadados do dispositivo. Para obter mais informações sobre ModelIDs, veja Elemento do ModelID.

    <xs:annotation>
        <xs:documentation> Print Device Model Id value for device differentiation</xs:documentation>
        <xs:documentation> Always represented as a GUID</xs:documentation>
    </xs:annotation>
    <xs:element name="DeviceModelId" type="wprt11:DeviceModelIdGuidType"/>
    <xs:simpleType name="DeviceModelIdGuidType">
        <xs:restriction base="xs:string">
            <xs:length value="36"/>
        </xs:restriction>
    </xs:simpleType>

Valor de representação de cores de tinta/toner

O esquema a seguir recupera um triplo RGB que representa a cor de um determinado tipo de tinta ou toner. Esse valor deve ser especificado para qualquer consumível de tinta ou toner, para permitir uma melhor representação da cor a ser mostrada na interface do usuário do aplicativo.

    <xs:annotation>
        <xs:documentation>
            Ink/Toner Color Representation definition
            A 6-digit hex representation of the RGB color value this Consumable entry represents.
            Examples of these values are:
                Black – 000000
                Red – FF0000
                White – FFFFFF
                Magenta – FF00FF
                Cyan – 00FFFF
                Yellow – FFFF00
                Blue – 0000FF
        </xs:documentation>    </xs:annotation>
    <xs:element name="ColorRepresentation" type="wprt11:ColorRepType"/>
    <xs:simpleType name="ColorRepType">
        <xs:restriction base="xs:string">
            <xs:length value="6"/>
        </xs:restriction>
    </xs:simpleType>

Conforme mencionado anteriormente neste tópico, na seção WS-Print v1.2, a nova operação a seguir foi introduzida com o namespace WS-Print V1.2.

SetPrinterElements

A operação SetPrinterElements é nova e permite a um cliente definir o valor de um elemento de esquema na impressora. A operação SetPrinterElements tem oito elementos de solicitação e quatro elementos de resposta. Os elementos de solicitação e de resposta fornecem ao cliente um controle preciso sobre a inserção e a recuperação de dados em conexão com o esquema do dispositivo WS-Print.

Por exemplo, o elemento de dados ElementPath (parte da operação SetPrinterElements) é uma cadeia de caracteres XPath que representa um local dentro do esquema da impressora do elemento de dados a ser definido.

Para obter informações mais detalhadas sobre a operação SetPrinterElements, consulte os arquivos de suporte para WS-Print v1.0 – v1.2 listados na seçãoDownloads abaixo.

Downloads

Arquivos de especificação e de suporte do WS-Print v1.0 – v1.2

Arquivo: Definição de dispositivo de impressão V1.0 para serviços Web em dispositivosDescrição: arquivo zip de 2,64 MB contendo documento do Microsoft Word e arquivos de suporte; 16 de setembro de 2013

Arquivos de especificação e de suporte

Arquivo: Definição de dispositivo de impressão V1.0 para serviços Web em dispositivosDescrição: Arquivo de extração automática de 76 KB contendo documento do Microsoft Word e arquivo de suporte; 29 de janeiro de 2007

Arquivo: Definição do serviço de digitalização V1.0 para serviços Web em dispositivosDescrição: (arquivo zip de 1,5 MB contendo documento do Microsoft Word e arquivos de suporte; 9 de fevereiro de 2012)

Arquivo: Definição de dispositivo de digitalização V1.0 para serviços Web em dispositivosDescrição: (Arquivo de extração automática de 76 KB contendo documento do Microsoft Word e arquivo de suporte; 29 de janeiro de 2007)

Conectividade do driver de impressora V4