CreateScanJobRequest 元素
所需的 CreateScanJobRequest 操作准备扫描设备进行扫描。
使用情况
<wscn:CreateScanJobRequest>
child elements
</wscn:CreateScanJobRequest>
特性
没有属性。
文本值
无
子元素
元素 |
---|
DestinationToken |
ScanIdentifier |
ScanTicket |
父元素
没有父元素。
注解
WSD 扫描服务必须支持 CreateScanJobRequest 操作。
CreateScanJobRequest 操作是准备扫描设备对可用的图像进行扫描的主要机制。 此操作可以通过两种不同的方法启动。 每种方法都会向 CreateScanJobRequest 发送不同的参数。 这两种方法和参数是:
用户选择目标,并按下设备上的扫描按钮。 在此方法中,客户端发送一个 CreateScanJobRequest,其中包含以下子元素:
扫描服务通过 ScanAvailableEvent 返回给客户端的 ScanIdentifier 元素。 扫描服务应检查此标识符,以确保在用户选择了目标后,请求扫描的客户端是正确的。
WSD 扫描服务订阅接收 ScanAvailableEvent 事件时返回给客户端的 DestinationToken 元素。 扫描服务应通过检查此令牌来检查请求扫描的客户端是否正确。
用于控制扫描处理的 ScanTicket 元素。 扫描票证中的值是在用户前往设备启动扫描之前在客户端设置的默认值。
用户在客户端上启动应用程序并获取图像。 在此方法中,客户端仅发送包含 ScanTicket 元素的 CreateScanJobRequest。
CreateScanJobRequest 层次结构中的某些元素可以包含 MustHonor 布尔值属性。 如果 MustHonor 存在且为 true,则 WSD 扫描服务必须遵循请求的元素及其值,否则拒绝扫描作业请求。 如果不支持的元素没有 MustHonor 属性,或者其 MustHonor 属性为 false,则 WSD 扫描服务必须忽略它。 如果支持的元素的 MustHonor 属性为 false,则 WSD 扫描服务必须将请求的值替换为受支持的值。
如果客户端在扫描作业请求(如 InputSource 和 Resolution)中提供了元素的冲突组合,则如果冲突元素的 MustHonor 属性值为 true,WSD 扫描服务必须拒绝扫描作业请求。
以下元素可以具有 MustHonor 属性:ColorProcessing、CompressionQualityFactor、ContentType、Exposure、FilmScanMode、ImagesToTransfer、InputSize、InputSource、MediaSides、Resolution、Rotation、Scaling、ScanRegionHeight、ScanRegionWidth、ScanRegionXOffset 和 ScanRegionYOffset。
此操作可以返回所有常见的 WSD 扫描服务操作错误代码。 有关如何报告错误的详细信息,请参阅 WSD 扫描服务操作错误报告。
CreateScanJobRequest 还可以返回以下错误:
ServerErrorNotAcceptingJobs 服务器无法接受新的扫描作业。 出现此错误的原因可能是扫描程序已进入服务模式,或者存在用户干预情况,所有内存缓冲区都已耗尽。 客户端可以在稍后的某个时间点再次尝试未修改的请求,并期望服务器已解除阻止,扫描程序正在再次接受作业。
错误属性 定义 [代码] soap:Receiver [子代码] wscn:ServerErrorNotAcceptingJobs [原因] 服务暂时被阻止,无法接受新的作业或文档请求。 [详细信息] 无 ClientErrorFormatNotSupported 扫描程序不支持提供的 Format 值。
错误属性 定义 [代码] soap:Sender [子代码] wscn:ClientErrorFormatNotSupported [原因] 不支持“文档格式”参数值。 [详细信息] 可选。 扫描服务可以返回受支持的格式列表。 此元素中的数据类型应为 <wscn:FormatSupportedType>。 ClientErrorInvalidScanIdentifier 提供的 ScanIdentifier 值在扫描设备中当前无效。
错误属性 定义 [代码] soap:Sender [子代码] wscn:ClientErrorInvalidScanIdentifier [原因] ScanIdentifier 参数值当前无效。 [详细信息] 无 ClientErrorInvalidDestinationToken 提供的 DestinationToken 值对扫描设备无效。
错误属性 定义 [代码] soap:Sender [子代码] wscn:ClientErrorInvalidDestinationToken [原因] DestinationToken 参数值当前无效。 [详细信息] 无 ClientErrorNoImagesAvailable 服务器无法接受新的扫描作业,因为没有要扫描的媒体。 例如,当从连接到扫描仪的自动文档进纸器执行扫描作业时,如果进纸器为空,则会产生此错误。 客户端可以稍后再次尝试未修改的请求,期望条件已修复,扫描仪现在有要扫描的媒体。
错误属性 定义 [代码] soap:Sender [子代码] wscn:ClientErrorNoImagesAvailable [原因] 服务器没有可获取的图像。 [详细信息] 无
示例
以下代码示例显示了从扫描设备启动扫描时的扫描作业请求。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="https://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan"
soap:encodingStyle='https://www.w3.org/2002/12/soap-encoding' >
<soap:Header>
<wsa:To>AddressofScannerService</wsa:To>
<wsa:Action>
https://schemas.microsoft.com/windows/2006/01/wdp/scan/CreateScanJob
</wsa:Action>
<wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
</soap:Header>
<soap:Body>
<wscn:CreateScanJobRequest>
<wscn:ScanIdentifier>
uuid:12e7a983-1034-5428-d298-0016f11097fa
</wscn:ScanIdentifier>
<wscn:DestinationToken>
Dest1234TokenString
</wscn:DestinationToken>
<wscn:ScanTicket>
<wscn:JobDescription>
<wscn:JobName>Photo Scan</wscn:JobName>
<wscn:JobOriginatingUserName>RogerSmith</JobOriginatingUserName>
</wscn:JobDescription>
<wscn:DocumentParameters>
<wscn:Format>jfif</wscn:Format>
<wscn:CompressionQualityFactor>45</wscn:CompressionQualityFactor>
<wscn:InputSource>Platen</wscn:InputSource>
<wscn:ContentType>Auto</wscn:ContentType>
<wscn:InputSize>
<wscn:DocumentSizeAutoDetect>true</wscn:DocumentSizeAutoDetect>
</wscn:InputSize>
<wscn:Scaling wscn:MustHonor="1">
<wscn:ScalingWidth>125</wscn:ScalingWidth>
<wscn:ScalingHeight>125</wscn:ScalingHeight>
</wscn:Scaling>
<wscn:MediaSides>
<wscn:MediaFront>
<wscn:Resolution wscn:MustHonor="1">
<wscn:Width>300</wscn:Width>
<wscn:Height>300</wscn:Height>
</wscn:Resolution>
</wscn:MediaFront>
</wscn:MediaSides>
</wscn:DocumentParameters>
</wscn:ScanTicket>
</wscn:CreateScanJobRequest>
</soap:Body>
</soap:Envelope>
以下代码示例显示了从客户端上的应用程序启动扫描时的扫描作业请求。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="https://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan"
soap:encodingStyle='https://www.w3.org/2002/12/soap-encoding' >
<soap:Header>
<wsa:To>AddressofScannerService</wsa:To>
<wsa:Action>
https://schemas.microsoft.com/windows/2006/01/wdp/scan/CreateScanJob
</wsa:Action>
<wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
</soap:Header>
<soap:Body>
<wscn:CreateScanJobRequest>
<wscn:ScanTicket>
<wscn:JobDescription>
<wscn:JobName>Application Scan</wscn:JobName>
<wscn:JobOriginatingUserName>RogerSmith</JobOriginatingUserName>
</wscn:JobDescription>
<wscn:DocumentParameters>
<wscn:Format>xps</wscn:Format>
<wscn:ImagesToTransfer>0</wscn:ImagesToTransfer>
<wscn:InputSource>ADF</wscn:InputSource>
<wscn:ContentType>Auto</wscn:ContentType>
<wscn:InputSize>
<wscn:DocumentSizeAutoDetect>true</wscn:DocumentSizeAutoDetect>
</wscn:InputSize>
<wscn:MediaSides>
<wscn:MediaFront>
<wscn:ColorProcessing>RGB48</wscn:ColorProcessing>
<wscn:Resolution>
<wscn:Width>1200</wscn:Width>
</wscn:Resolution>
</wscn:MediaFront>
</wscn:MediaSides>
</wscn:DocumentParameters>
<wscn:DocumentDescription>
<wscn:DocumentName>Scan001.jpg</DocumentName>
</wscn:DocumentDescription>
</wscn:ScanTicket>
</wscn:CreateScanJobRequest>
</soap:Body>
</soap:Envelope>