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


Веб-службы на устройствах для печати (WS-Print)

Внимание

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

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

Веб-службы на устройствах для печати (WS-Print) были представлены для предоставления протокола подключения для печати и сканирования периферийных устройств.

Обзор

Технология веб-служб предоставляет общую платформу для описания и предоставления общего доступа к информации. В результате Windows поставляется с набором протоколов для использования и управления службами на подключенных к сети устройствах.

Четыре спецификации веб-служб существуют для печати и сканирования, чтобы помочь производителям устройств воспользоваться улучшенным взаимодействием с клиентами при подключении, установке и использовании устройств с Windows.

WS-Print версии 1.1

Для Windows 8 схема печати веб-служб на устройствах (WSD) была обновлена до версии 1.1. Эта версия схемы (с именем WS-Print версии 1.1) была обновлена для поддержки расширенной конфигурации драйвера, улучшения цветового представления для рукописного и тонера и идентификаторов моделей устройств.

WS-Print версии 1.2

Для Windows 8.1 WS-Print включает все операции и элементы схемы, используемые в WS-Print версии 1.1, но определение службы печати для веб-служб на устройствах обновлено. И результирующий новый веб-службы на устройствах для печати — WS-Print версии 1.2.

В WS-Print версии 1.2 добавлена поддержка нового элемента схемы и добавлена новая операция. Новый элемент схемы "SupportWSPrintV12" используется для идентификации поддержки WS-Print версии 1.2. Новая операция SetPrinterElements позволяет клиенту задать значение элемента схемы на принтере. Например, клиент может задать пользовательский элемент с именем InkHeadAlignmentValue, который принтер будет использовать для перестроения головки струйной струи.

Для удобства спецификации приведены здесь в разделе "Загрузки" в полной автономной форме вместе со связанными языками описания веб-служб (WSDLs) и определениями схемы XML (XSD). Эти четыре веб-службы на устройствах охватываются включенным лицензионным соглашением технической документации, который ссылается на комплект средств разработки драйверов Windows (WDK).

В следующих разделах приведены более подробные сведения о различных аспектах WS-Print.

Схемы последовательностей

На следующих схемах последовательности показано взаимодействие между клиентом и принтером, чтобы определить версию поддерживаемого пространства имен WS-Print, а затем получить расширенные элементы схемы.

Схема последовательности WS-Print версии 1.1

Ниже приведена схема последовательности взаимодействия для принтера, поддерживающего WS-Print версии 1.1:

Схема последовательности, показывающая взаимодействие с клиентом и принтером в отношении поддержки ws-print версии 1.1, а также последующие запросы на описание принтера и конфигурацию.

Если принтер поддерживает WS-Print версии 1.1, то в ответ на запрос GetPrinterElements(wprt:PrinterDescription) от клиента принтер отправляет обратную информацию, чтобы указать, что это делает.

После подтверждения того, что принтер поддерживает WS-Print версии 1.1, клиент отправляет запрос GetPrinterElements(wprt11:DriverConfiguration), а принтер отвечает с запрошенными сведениями о конфигурации драйвера.

Схема последовательности WS-Print версии 1.2

Ниже приведена схема последовательности взаимодействия для принтера, поддерживающего WS-Print версии 1.2:

Схема последовательности, показывающая взаимодействие с клиентом и принтером в отношении поддержки ws-print версии 1.2, а также последующие запросы на описание принтера и конфигурацию.

Если принтер поддерживает WS-Print версии 1.2, то в ответ на запрос GetPrinterElements(wprt:PrinterDescription) от клиента принтер отправляет обратную информацию, чтобы указать, что это делает.

Кроме того, принтер должен возвращать wprt12:SupportsWSPrintV12 в ответ на вызов GetPrinterElements(wprt:PrinterDescription). После этого клиент может вызвать операцию SetPrinterElements, чтобы задать один или несколько элементов данных в схеме, поддерживаемой устройством WS-Print.

После подтверждения того, что принтер поддерживает WS-Print версии 1.2, клиент отправляет запрос GetPrinterElements(wprt12:DriverConfiguration), а принтер отвечает с запрошенными сведениями о конфигурации драйвера.

Пространства имен

Пространство имен WS-Print версии 1.1

Пространство имен: определение пространства имен XML: <https://schemas.microsoft.com/windows/2010/06/wdp/printv11> xmlns:wprt12="<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>"

Пространство имен WS-Print версии 1.2

Пространство имен: определение пространства имен XML: <https://schemas.microsoft.com/windows/2012/10/wdp/printV12> xmlns:wprt11="<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>"

Указание поддержки WS-Print 1.1

Принтеры, поддерживающие элементы WS-Print 1.1, должны обновить принтерDescription, чтобы включить wprt11:SupportWSPrintv11. Если wprt11:SupportsWSPrintv11 не указан и задано значение true, WSDMon не будет запрашивать какие-либо элементы WS-Print 1.1 на принтере.

Устройства печати, поддерживающие WS-Print версии 1.1, должны включать в него следующее содержимое, чтобы Windows запрашивала другие элементы в этом пространстве имен.

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

Следующий фрагмент XML-кода является производным от спецификации службы печати WSD версии 1.0, и он показывает правильное использование содержимого в предыдущем разделе.

<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>

В следующем фрагменте XML показана схема устройства печати, поддерживающего WS-Print версии 1.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"/>

Указание поддержки WS-Print 1.2

Принтеры, поддерживающие элементы WS-Print 1.2, должны обновить принтерDescription, чтобы включить wprtV12:SupportWSPrintV12. Если wprtV12:SupportsWSPrintV12 не указан и задано значение true, WSDMon не будет запрашивать какие-либо элементы WS-Print 1.2 на принтере.

Устройства печати, поддерживающие WS-Print версии 1.2, должны включать в него следующее содержимое, чтобы Windows запрашивала любые другие элементы в этом пространстве имен.

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

Следующий фрагмент XML-кода является производным от спецификации службы печати WSD версии 1.2 и показывает правильное использование содержимого в предыдущем разделе.

<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>

Примеры схемы в следующих трех разделах показывают, как использовать некоторые из новых элементов, которые были представлены в WS-Print версии 1.1. Дополнительные сведения обо всех элементах, появившихся в пространстве имен WS-Print версии 1.1, см. в вспомогательных файлах для WS-Print версии 1.0 – версии 1.2, перечисленных в разделе "Загрузки" ниже.

Расширенная конфигурация драйвера

Эта схема предоставляет файлы конфигурации GPD или PPD для конкретного устройства.

   <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>

Идентификатор модели устройства

Следующая схема описывает ModelID для устройства и используется для извлечения метаданных устройства. Дополнительные сведения об идентификаторах ModelID см. в разделе "Элемент 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>

Значение представления цвета ink/Toner

Следующая схема извлекает rgb-тройник, представляющий цвет для определенного типа рукописного ввода или тонера. Это значение следует указать для любых рукописных или тонерных расходных материалов, чтобы обеспечить лучшее представление цвета, отображаемого в пользовательском интерфейсе приложения.

    <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>

Как упоминалось ранее в этом разделе, в разделе WS-Print версии 1.2 впервые появилась следующая новая операция с пространством имен WS-Print V1.2.

SetPrinterElements

Операция SetPrinterElements является новой и позволяет клиенту задать значение элемента схемы на принтере. Операция SetPrinterElements содержит восемь элементов запроса и четыре элемента ответа. Элементы запроса и ответа обеспечивают клиенту точное управление вставкой и извлечением данных в связи с схемой устройства WS-Print.

Например, элемент данных ElementPath (часть операции SetPrinterElements), представляет собой строку XPath, представляющую расположение в схеме принтера элемента data, который нужно задать.

Дополнительные сведения об операции SetPrinterElements см. в вспомогательных файлах для WS-Print версии 1.0 – версии 1.2, перечисленных в разделе "Загрузки" ниже.

Скачиваемые файлы

Спецификации и вспомогательные файлы для WS-Print версии 1.0 — v1.2

Файл: печать определения устройства версии 1.0 для веб-служб на устройствахОписание: zip-файл 2,64 МБ, содержащий документ Microsoft Word и вспомогательные файлы; 16 сентября 2013 г.

Спецификации и вспомогательные файлы

Файл: печать определения устройства версии 1.0 для веб-служб на устройствахОписание: 76 КБ самораспаковывая файл, содержащий документ Microsoft Word и вспомогательный файл; 29 января 2007 г.

Файл: Сканирование определения службы версии 1.0 для веб-служб на устройствахDescription: (zip-файл размером 1,5 МБ, содержащий документ Microsoft Word и вспомогательные файлы; 9 февраля 2012 г.)

Файл: сканирование определения устройства версии 1.0 для веб-служб на устройствахDescription: (76 КБ самораспаковывая файл, содержащий документ Microsoft Word и вспомогательный файл; 29 января 2007 г.)

Подключение драйвера принтера версии 4