Servizi Web nei dispositivi per la stampa (WS-Print)
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per ulteriori informazioni, consultare la guida alla progettazione dell'app di supporto per la stampa .
I servizi Web nei dispositivi per la stampa (WS-Print) sono stati introdotti per fornire un protocollo di connessione per la stampa e l'analisi delle periferiche.
Panoramica
La tecnologia servizi Web fornisce un framework comune per descrivere e condividere informazioni. Di conseguenza, Windows include un set di protocolli per l'utilizzo e il controllo dei servizi nei dispositivi connessi alla rete.
Esistono quattro specifiche di servizi Web per la stampa e l'analisi, per aiutare i produttori di dispositivi a sfruttare l'esperienza dei clienti migliorata per la connessione, l'installazione e l'uso di dispositivi con Windows.
WS-Print v1.1
Per Windows 8, lo schema di stampa per i servizi Web nei dispositivi (WSD) è stato aggiornato alla versione 1.1. Questa versione dello schema (denominata WS-Print v1.1) è stata aggiornata per supportare la configurazione avanzata dei driver, una rappresentazione del colore migliore per l'input penna/toner e gli ID modello di dispositivo.
WS-Print v1.2
Per Windows 8.1, WS-Print include tutte le operazioni e gli elementi dello schema usati in WS-Print v1.1, ma la definizione del servizio di stampa per i servizi Web nei dispositivi è stata aggiornata. E i nuovi servizi Web risultanti nei dispositivi per la stampa sono WS-Print v1.2.
In WS-Print v1.2 è stato aggiunto il supporto per un nuovo elemento dello schema e una nuova operazione. Il nuovo elemento dello schema "SupportsWSPrintV12" viene usato per identificare il supporto per WS-Print V1.2. La nuova operazione "SetPrinterElements" consente a un client di impostare il valore di un elemento dello schema nella stampante. Ad esempio, il client potrebbe impostare un elemento personalizzato denominato "InkHeadAlignmentValue" che la stampante utilizzerebbe per riallineare la testa dell'inchiostro.
Per praticità, le specifiche sono disponibili qui nella sezione Download, in formato completo e autonomo, insieme ai relativi linguaggi WSDL (Web Services Description Languages) e XML Schema Definitions (XSDD). Questi quattro servizi Web nelle specifiche dei dispositivi sono coperti dal contratto di licenza della documentazione tecnica inclusa, che fa riferimento al Kit di sviluppo driver Windows (WDK).
Le sezioni seguenti forniscono informazioni più dettagliate sui vari aspetti di WS-Print.
Diagrammi sequenza
I diagrammi di sequenza seguenti illustrano l'interazione tra il client e la stampante per determinare la versione dello spazio dei nomi WS-Print supportato e quindi recuperare gli elementi dello schema esteso.
Diagramma di sequenza WS-Print v1.1
Ecco il diagramma della sequenza di interazione per una stampante che supporta WS-Print v1.1:
diagramma di sequenza che mostra l'interazione della stampante client per il supporto di ws-print v1.1 e le query successive per la descrizione e la configurazione della stampante.
Se la stampante supporta WS-Print v1.1, in risposta alla query GetPrinterElements(wprt:PrinterDescription) dal client, la stampante invia informazioni per indicare che lo fa.
Dopo che la stampante conferma che supporta WS-Print v1.1, il client invia una query GetPrinterElements(wprt11:DriverConfiguration) e la stampante risponde con le informazioni di configurazione del driver richieste.
Diagramma di sequenza WS-Print v1.2
Ecco il diagramma di sequenza di interazione per una stampante che supporta WS-Print v1.2:
diagramma di sequenza che mostra l'interazione della stampante client per il supporto di ws-print v1.2 e le query successive per la descrizione e la configurazione della stampante.
Se la stampante supporta WS-Print v1.2, in risposta alla query GetPrinterElements(wprt:PrinterDescription) dal client, la stampante invia informazioni per indicare che lo fa.
Inoltre, la stampante deve restituire wprt12:SupportsWSPrintV12 in risposta alla chiamata GetPrinterElements(wprt:PrinterDescription). Successivamente, il client può chiamare l'operazione SetPrinterElements per impostare uno o più elementi di dati nello schema supportato dal dispositivo WS-Print.
Dopo che la stampante conferma che supporta WS-Print v1.2, il client invia una query GetPrinterElements(wprt12:DriverConfiguration) e la stampante risponde con le informazioni di configurazione del driver richieste.
Namespaces (Spazi dei nomi)
Spazio dei nomi WS-Print v1.1
Spazio dei nomi:<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>
definizione dello spazio dei nomi XML:xmlns:wprt12="<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>"
Spazio dei nomi WS-Print v1.2
Spazio dei nomi:<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>
definizione dello spazio dei nomi XML:xmlns:wprt12="<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>"
Specifica del supporto WS-Print 1.1
Le stampanti che supportano gli elementi WS-Print 1.1 devono aggiornare il valore PrinterDescription per includere wprt11:SupportsWSPrintv11. Se wprt11:SupportsWSPrintv11 non è specificato e impostato su true, WSDMon non richiederà alcun elemento WS-Print 1.1 dalla stampante.
I dispositivi di stampa che supportano WS-Print v1.1 devono includere il contenuto seguente nella relativa proprietà PrinterDescription per consentire a Windows di eseguire una query per tutti gli altri elementi in tale spazio dei nomi.
<soap:Envelope
...
xmlns:wprt11="https://schemas.microsoft.com/windows/2010/06/wdp/printv11">"
...
<wprt11:SupportsWSPrintv11>true</wprt11:SupportsWSPrintv11>
...
Il frammento XML seguente è derivato dalla specifica del servizio di stampa WSD v1.0 e mostra l'utilizzo corretto del contenuto nella sezione precedente.
<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>
Il frammento XML seguente illustra lo schema per un dispositivo di stampa che supporta 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"/>
Specifica del supporto WS-Print 1.2
Le stampanti che supportano gli elementi WS-Print 1.2 devono aggiornare il valore PrinterDescription per includere wprtV12:SupportsWSPrintV12. Se wprtV12:SupportsWSPrintV12 non è specificato e impostato su true, WSDMon non richiederà alcun elemento WS-Print 1.2 dalla stampante.
I dispositivi di stampa che supportano WS-Print v1.2 devono includere il contenuto seguente nella relativa proprietà PrinterDescription per consentire a Windows di eseguire una query per tutti gli altri elementi in tale spazio dei nomi.
<soap:Envelope
…
xmlns:wprtV12="https://schemas.microsoft.com/windows/2012/10/wdp/printV12">
…
<wprtV12:SupportsWSPrintV12>true</wprtV12:SupportsWSPrintV12>
…
</soap:Envelope>
Il frammento XML seguente è derivato dalla specifica del servizio di stampa WSD v1.2 e mostra l'uso corretto del contenuto nella sezione precedente.
<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>
Gli esempi di schema nelle tre sezioni seguenti illustrano come usare alcuni dei nuovi elementi introdotti con WS-Print V1.1. Per altre informazioni su tutti gli elementi introdotti con lo spazio dei nomi WS-Print V1.1, vedere i file di supporto per WS-Print v1.0 - v1.2 elencati nella sezione Download di seguito.
Configurazione avanzata dei driver
Questo schema fornisce file di configurazione GPD o PPD specifici del dispositivo per questo 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 modello di dispositivo
Lo schema seguente descrive un ModelID per il dispositivo e viene usato per il recupero dei metadati del dispositivo. Per altre informazioni sui ModelID, vedere Elemento 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>
Valore rappresentazione colori input penna/toner
Lo schema seguente recupera una triple RGB che rappresenta il colore per un particolare tipo di input penna o toner. Questo valore deve essere specificato per tutti i componenti di consumo di input penna o toner per consentire una rappresentazione migliore del colore da visualizzare nell'interfaccia utente dell'app.
<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>
Come accennato in precedenza in questo argomento, nella sezione WS-Print v1.2 è stata introdotta la nuova operazione seguente con lo spazio dei nomi WS-Print V1.2.
SetPrinterElements
L'operazione SetPrinterElements è nuova e consente a un client di impostare il valore di un elemento dello schema nella stampante. L'operazione SetPrinterElements include otto elementi della richiesta e quattro elementi di risposta. Gli elementi di richiesta e risposta forniscono al client un controllo fine sull'inserimento e il recupero dei dati in connessione allo schema del dispositivo WS-Print.
Ad esempio, l'elemento dati ElementPath (parte dell'operazione SetPrinterElements), è una stringa XPath che rappresenta una posizione all'interno dello schema Printer dell'elemento Dati da impostare.
Per informazioni più dettagliate sull'operazione SetPrinterElements, vedere i file di supporto per WS-Print v1.0 - v1.2 elencati nella sezione Download di seguito.
Download
Specifica e file di supporto per WS-Print v1.0 - v1.2
File:stampare la definizione del dispositivo V1.0 per i servizi Web nei dispositiviDescrizione: file ZIP da 2,64 MB contenente i file di supporto e documento di Microsoft Word; 16 settembre 2013
Specifica e file di supporto
File:Stampa definizione dispositivo V1.0 per i servizi Web nei dispositiviDescrizione: 76 KB file autoestraendo contenente il documento e il file di supporto di Microsoft Word; 29 gennaio 2007
File: Scan Service Definition V1.0 for Web Services on DevicesDescription(File:file ZIP da 1,5 MB contenente i file di supporto e documento di Microsoft Word; 9 febbraio 2012)
File: Scan Device Definition V1.0 for Web Services on DevicesDescription(File:76 KB autoestraendo file contenenti il documento e il file di supporto di Microsoft Word; 29 gennaio 2007)