[Printing-architecture] Driverless scanning: eSCL (HTTP/XML-based) has something to do with PWG?
Till Kamppeter
till.kamppeter at gmail.com
Sun Dec 15 22:55:45 UTC 2019
Hi,
on the SANE developer mailing list is currently discussion about the eSCL
scanning protocol as they are adding an eSCL scanning backend from a contributor.
They found out that all multi-function devices which print via Apple AirPrint
support the eSCL scanning protocol, as part of AirScan. The protocol works with
communication vis HTTP(S) and in XML format. To be driverless (no
device-model-specific code or data) one can poll the capabilities of the scanner
and then set scan options and scan. Image data is returned in JPEG, PNG, or PDF,
depending on the model.
Devices advertise themselves via DNS-SD with registration type _uscan._tcp and
in the TXT record having a "rs=/eSCL" entry.
This all works principally on the network, but it also works on devices
connected by USB when they support IPP-over-USB and ippusbxd is running for
them. So this way one can for the first time print and scan through ippusbxd.
When I see the output of a capabilities poll (see below) one sees a lot of
"pwg". Is ESCL an (older) PWG standard or has it generally something to do with
the PWG?
Till
----------
Full DNS-SD record:
----------
Found service 'Deskjet 2540 series [E7DDC7]' of type '_uscan._tcp' in domain
'local' on 3.1.
Service data for service 'Deskjet 2540 series [E7DDC7]' of type '_uscan._tcp' in
domain 'local' on 3.0:
Host HP5CB901E7DDC7.local (192.168.223.1), port 8080, TXT data:
['duplex=F', 'is=platen', 'cs=binary,color,grayscale', 'rs=/eSCL',
'representation=', 'UUID=1c852a4d-b800-1f08-abcd-5cb901e7ddc7', 'note=',
'adminurl=http://HP5CB901E7DDC7.local.', 'ty=HP Deskjet 2540 series',
'pdl=application/octet-stream,application/pdf,image/jpeg', 'vers=2.0', 'txtvers=1']
----------
Get capabilities:
wget http://192.168.223.1:8080/eSCL/ScannerCapabilities
or with ippusbxd running ia USB:
wget http://localhost:60000/eSCL/ScannerCapabilities
This results in:
----------
<!-- -->
<scan:ScannerCapabilities
xmlns:scan="http://schemas.hp.com/imaging/escl/2011/05/03"
xmlns:pwg="http://www.pwg.org/schemas/2010/12/sm"
xmlns:dest="http://schemas.hp.com/imaging/destination/2011/06/06"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.hp.com/imaging/escl/2011/05/03
../../schemas/eSCL-1_92.xsd">
<pwg:Version>2.0</pwg:Version>
<pwg:MakeAndModel>xxxx</pwg:MakeAndModel>
<pwg:SerialNumber>25</pwg:SerialNumber>
<scan:Platen>
<scan:PlatenInputCaps>
<scan:MinWidth>8</scan:MinWidth>
<scan:MaxWidth>2550</scan:MaxWidth>
<scan:MinHeight>8</scan:MinHeight>
<scan:MaxHeight>3508</scan:MaxHeight>
<scan:MaxScanRegions>1</scan:MaxScanRegions>
<scan:SettingProfiles>
<scan:SettingProfile>
<scan:ColorModes>
<scan:ColorMode>Grayscale8</scan:ColorMode>
<scan:ColorMode>RGB24</scan:ColorMode>
</scan:ColorModes>
<scan:ContentTypes>
<pwg:ContentType>Photo</pwg:ContentType>
<pwg:ContentType>Text</pwg:ContentType>
<pwg:ContentType>TextAndPhoto</pwg:ContentType>
</scan:ContentTypes>
<scan:DocumentFormats>
<pwg:DocumentFormat>application/octet-stream</pwg:DocumentFormat>
<pwg:DocumentFormat>image/jpeg</pwg:DocumentFormat>
<pwg:DocumentFormat>application/pdf</pwg:DocumentFormat>
</scan:DocumentFormats>
<scan:SupportedResolutions>
<scan:DiscreteResolutions>
<scan:DiscreteResolution>
<scan:XResolution>75</scan:XResolution>
<scan:YResolution>75</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>100</scan:XResolution>
<scan:YResolution>100</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>200</scan:XResolution>
<scan:YResolution>200</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>300</scan:XResolution>
<scan:YResolution>300</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>600</scan:XResolution>
<scan:YResolution>600</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>1200</scan:XResolution>
<scan:YResolution>1200</scan:YResolution>
</scan:DiscreteResolution>
<scan:DiscreteResolution>
<scan:XResolution>2400</scan:XResolution>
<scan:YResolution>2400</scan:YResolution>
</scan:DiscreteResolution>
</scan:DiscreteResolutions>
</scan:SupportedResolutions>
<scan:ColorSpaces>
<scan:ColorSpace>YCC</scan:ColorSpace>
<scan:ColorSpace>RGB</scan:ColorSpace>
<scan:ColorSpace>sRGB</scan:ColorSpace>
</scan:ColorSpaces>
</scan:SettingProfile>
</scan:SettingProfiles>
<scan:SupportedIntents>
<scan:Intent>Document</scan:Intent>
<scan:Intent>Photo</scan:Intent>
<scan:Intent>Preview</scan:Intent>
<scan:Intent>TextAndGraphic</scan:Intent>
</scan:SupportedIntents>
<scan:MaxOpticalXResolution>2400</scan:MaxOpticalXResolution>
<scan:MaxOpticalYResolution>2400</scan:MaxOpticalYResolution>
<scan:RiskyLeftMargin>34</scan:RiskyLeftMargin>
<scan:RiskyRightMargin>33</scan:RiskyRightMargin>
<scan:RiskyTopMargin>34</scan:RiskyTopMargin>
<scan:RiskyBottomMargin>46</scan:RiskyBottomMargin>
</scan:PlatenInputCaps>
</scan:Platen>
<scan:BrightnessSupport>
<scan:Min>0</scan:Min>
<scan:Max>2000</scan:Max>
<scan:Step>1</scan:Step>
</scan:BrightnessSupport>
<scan:ContrastSupport>
<scan:Min>0</scan:Min>
<scan:Max>2000</scan:Max>
<scan:Step>1</scan:Step>
</scan:ContrastSupport>
<scan:HighlightSupport>
<scan:Min>0</scan:Min>
<scan:Max>255</scan:Max>
<scan:Normal>179</scan:Normal>
<scan:Step>1</scan:Step>
</scan:HighlightSupport>
<scan:ShadowSupport>
<scan:Min>0</scan:Min>
<scan:Max>255</scan:Max>
<scan:Normal>25</scan:Normal>
<scan:Step>1</scan:Step>
</scan:ShadowSupport>
<scan:SharpenSupport>
<scan:Min>0</scan:Min>
<scan:Max>255</scan:Max>
<scan:Step>1</scan:Step>
</scan:SharpenSupport>
<scan:ThresholdSupport>
<scan:Min>0</scan:Min>
<scan:Max>255</scan:Max>
<scan:Normal>128</scan:Normal>
<scan:Step>1</scan:Step>
</scan:ThresholdSupport>
</scan:ScannerCapabilities>
More information about the Printing-architecture
mailing list