裝置上的 Web 服務以進行列印 (WS-Print)
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
引進了列印裝置上的 Web 服務(WS-Print),以提供列印和掃描周邊的連線通訊協定。
概觀
Web 服務技術提供描述和共用資訊的通用架構。 因此,Windows 隨附一組通訊協定,用於取用和控制網路連線裝置上的服務。
有四個 Web 服務規格可用於列印和掃描,以協助裝置製造商利用改善的客戶體驗來連接、安裝及使用裝置與 Windows。
WS-Print v1.1
針對 Windows 8,裝置上 Web 服務的列印架構已更新為 v1.1。 此版本的架構(稱為 WS-Print v1.1)已更新,以支援增強的驅動程式設定、更適合筆跡/色調的色彩表示法,以及裝置型號標識碼。
WS-Print v1.2
針對Windows 8.1,WS-Print 包含 WS-Print v1.1 中使用的所有作業和架構元素,但裝置上的 Web 服務的列印服務定義已更新。 因此,用於列印的裝置上產生的新 Web 服務是 WS-Print v1.2。
在 WS-Print v1.2 中,已新增架構元素和新作業的支援。 新的架構元素 「SupportsWSPrintV12」 用來識別 WS-Print V1.2 的支援。 新的作業 「SetPrinterElements」 可讓用戶端在印表機上設定架構元素的值。 例如,用戶端可以設定名為 「InkHeadAlignmentValue」 的自定義專案,列印機會用來重新對齊噴墨機頭。
為了方便起見,這些規格會在下載一節中提供,完整且獨立的表單,以及其相關聯的Web服務描述語言 (WSD) 和 XML 架構定義 (XSD)。 這四個裝置上的 Web 服務規格涵蓋於包含的技術檔許可協定中,該合約參考 Windows 驅動程式開發工具包 (WDK)。
下列各節提供 WS-Print 各層面的詳細資訊。
順序圖表
下列順序圖說明用戶端與印表機之間的互動,以判斷支援的WS-Print 命名空間版本,然後擷取擴充架構元素。
WS-Print v1.1 時序圖
以下是支援 WS-Print v1.1 之印表機的互動順序圖表:
如果印表機支援 WS-Print v1.1,則為了回應來自用戶端的 GetPrinterElements(wprt:PrinterDescription) 查詢,列印機會傳回資訊以指出它確實如此。
印表機確認它支援 WS-Print v1.1 之後,用戶端會傳送 GetPrinterElements(wprt11:DriverConfiguration) 查詢,而列印機會以要求的驅動程式組態信息回應。
WS-Print v1.2 時序圖
以下是支援 WS-Print v1.2 之印表機的互動順序圖表:
如果印表機支援 WS-Print v1.2,則為了回應來自用戶端的 GetPrinterElements(wprt:PrinterDescription) 查詢,列印機會傳回資訊以指出它確實如此。
此外,印表機應該傳回 wprt12:SupportsWSPrintV12,以回應 GetPrinterElements(wprt:PrinterDescription) 呼叫。 之後,用戶端可以呼叫 SetPrinterElements 作業,以在 WS-Print 裝置支援的架構中設定一或多個數據元素。
印表機確認它支援 WS-Print v1.2 之後,用戶端會傳送 GetPrinterElements(wprt12:DriverConfiguration) 查詢,而列印機會以要求的驅動程式組態信息回應。
命名空間
WS-Print v1.1 命名空間
Namespace:<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>
XML Namespace定義: xmlns:wprt12="<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>"
WS-Print v1.2 命名空間
Namespace:<https://schemas.microsoft.com/windows/2012/10/wdp/printV12>
XML Namespace定義: xmlns:wprt11="<https://schemas.microsoft.com/windows/2010/06/wdp/printv11>"
指定 WS-Print 1.1 支援
支援 WS-Print 1.1 元素的印表機必須更新其 PrinterDescription,以包含 wprt11:SupportsWSPrintv11。 如果未指定 wprt11:SupportsWSPrintv11 並設定為 true,則 WSDMon 將不會從印表機要求任何 WS-Print 1.1 元素。
支援 WS-Print v1.1 的列印裝置必須在其 PrinterDescription 中包含下列內容,Windows 才能查詢該命名空間中的任何其他元素。
<soap:Envelope
...
xmlns:wprt11="https://schemas.microsoft.com/windows/2010/06/wdp/printv11">"
...
<wprt11:SupportsWSPrintv11>true</wprt11:SupportsWSPrintv11>
...
下列 XML 代碼段衍生自 WSD 列印服務規格 v1.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 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"/>
指定 WS-Print 1.2 支援
支援 WS-Print 1.2 元素的印表機必須更新其 PrinterDescription,以包含 wprtV12:SupportsWSPrintV12。 如果未指定 wprtV12:SupportsWSPrintV12,並將 設定為 true,則 WSDMon 將不會從印表機要求任何 WS-Print 1.2 元素。
支援 WS-Print v1.2 的列印裝置必須在其 PrinterDescription 中包含下列內容,Windows 才能查詢該命名空間中的任何其他元素。
<soap:Envelope
…
xmlns:wprtV12="https://schemas.microsoft.com/windows/2012/10/wdp/printV12">
…
<wprtV12:SupportsWSPrintV12>true</wprtV12:SupportsWSPrintV12>
…
</soap:Envelope>
下列 XML 代碼段衍生自 WSD 列印服務規格 v1.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 V1.1 引進的一些新元素。 如需 WS-Print V1.1 命名空間引進之所有元素的詳細資訊,請參閱下方下載一節所列 WS-Print v1.0 – v1.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>
筆跡/Toner 色彩表示值
下列架構會擷取 RGB 三重,代表特定筆跡或色調類型的色彩。 應該針對任何筆跡或色調消費性產品指定此值,以便讓應用程式 UI 中顯示較佳的色彩表示法。
<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 v1.2 一節中,WS-Print V1.2 命名空間引進了下列新作業。
SetPrinterElements
SetPrinterElements 作業是新的,可讓用戶端在印表機上設定架構元素的值。 SetPrinterElements 作業有八個要求元素和四個響應元素。 要求和回應元素可讓用戶端精確控制與 WS-Print 裝置架構連線的數據插入和擷取。
例如,ElementPath 數據元素(SetPrinterElements 作業的一部分),是 XPath 字串,代表要設定之 Data Element 的 Printer 架構內的位置。
如需 SetPrinterElements 作業的詳細資訊,請參閱下列下載一節所列 WS-Print v1.0 – v1.2 的支援檔案。
下載
WS-Print v1.0 – v1.2 的規格和支持檔案
檔案:列印裝置定義 V1.0 for Web Services on DevicesDescription: 2.64 MB zip 檔案,其中包含 Microsoft Word 文件和支援檔案;2013年9月16日
規格和支援檔案
檔案:針對裝置上的 Web 服務列印裝置定義 V1.0 描述:76 KB 的自我擷取檔案,其中包含Microsoft Word 檔和支援檔案;2007年1月29日
檔案:掃描裝置上 Web 服務的服務定義 V1.0 描述:(1.5 MB zip 檔案,包含Microsoft Word 檔及支援檔案:2012 年 2 月 9 日)
檔案:掃描裝置定義 V1.0 上的裝置服務描述:(76 KB 自我解壓縮檔案,包含 Microsoft Word 檔及支援檔案;2007 年 1 月 29 日)