Enable WSPrint 2.0 on a device
This topic describes the settings required to enable WSPrint 2.0 on a device.
Broadcast a Mdns printer service
This must be done using the service type of PrintService._printer._tcp.local on port 80.
Implement a HTTP endpoint
The endpoint needs to be able to respond to WSPrint 2.0 operations. You do not need to perform SOAP validation and processing. You can instead use string detection and replacement.
Once the WSPrint endpoint is functioning, you need to customize the XML returned from the GetPrinterElements call with a custom device id:
<wprt:DeviceId>MFG:MS3D; CMD:XPS; MDL:Compat; CLS:Printer; DES:Compat; CID:MS3DWSD</wprt:DeviceId>
This matches with the Compatible ID in the published INF:
WSDPRINT\MS3DCompatE2D2
WSPrint interactions
The following diagram shows WSPrint 2.0 interactions:
The following steps are a more detailed description of WSPrint 2.0 interactions:
Probe – Network Discovery bootstrap
Resolve – Network Discovery bootstrap
Get – Printer MetaData Query
GetPrinterElements – Printer MetaData Query
Subscribe – Event model registration
Unsubscribe – Event unregistration
SetEventRate – Event rate
Renew – Renew
PrepareToPrint – Print initialization
CreatePrintJob – Print submission
CreatePrintJob2 – Print submission
GetPrintDeviceResources – Allows retrieval of localized resources in ResX (Multi Part Outgoing Response)
GetPrintDeviceCapabilities - Allows retrieval of Print Device Capabilities (Multi Part Outgoing Response)
GetBidiSchemaExtensions - Allows retrieval of Bidi Schema extensions (Multi Part Outgoing Response)
CancelJob – Job cancellation
GetActiveJobs – Job progress
GetJobHistory – Job history
AddDocument – Add document to current print
GetJobElements – Get job statuses
SendDocument – Actual print data (Multi Part Incoming Request)
For more information on WSPrint 2.0, see the following resources: