[sane-devel] Driverless IPP Scanning with SANE
till.kamppeter at gmail.com
Tue Jan 30 11:22:06 UTC 2018
the Printing Working Group (http://www.pwg.org/) has developed several
standards for printers and multi-function devices (print, scan, copy,
fax) to allow its use without hardware-model-specific software or data
There are already all standards needed for driverless printing and they
are actually implemented in printers on the market. The PWG's own
driverless printing standard is IPP Everywhere, but AirPrint, Wi-Fi
Direct, and Mopria us also a lot of the PWG's standards. All of these
standards use the PWG's Internet Printing Protocol (IPP) and DNS-SD but
different standardized formats for the print jobs. Wi-Fi Direct adds a
printer-internal Wi-Fi server for wireless printing without Wi-Fi
router. Via IPP-over-USB also devices connected to USB are supported
(Linux support via ippusbxd, https://github.com/OpenPrinting/ippusbxd).
These driverless printing standards are fully supported in Linux, from
Ubuntu 17.10 on and continuously improved.
The PWG has recently also developed an IPP scanning standard, which
provides a standard protocol for communicating with scanners in IPP
multi-function devices (via network or IPP-over-USB):
The best way to access this class of scanners from Linux would be to
create a SANE backend for IPP Scan.
Therefore I have opened a project for the Google Summer of Code 2018:
SANE module for IPP driverless scanning
Version 2.0 and newer of the Internet Printing Protocol (IPP) support
polling the full set of capabilities of a printer and if the printer
supports a known Page Description Language (PDL), like PWG Raster, Apple
Raster, PCLm, or PDF, it is possible to print without
printer-model-specific software (driver) or data (PPD file), so-called
“driverless” printing. This concept was introduced for printing from
smartphones and IoT devices which do not hold a large collection of
printer drivers. Driverless printing is already fully supported under
Linux. Standards following this scheme are IPP Everwhere, Apple
AirPrint, Mopria, and Wi-Fi Direct Print.
As there are many multi-function devices (printer/scanner/copier
all-in-one) which use the IPP, the Printing Working Group (PWG) has also
worked out a standard for IPP-based scanning, “driverless” scanning, to
also allow scanning from a wide range of client devices, independent of
which operating systems they are running.
Conventional scanners are supported under Linux via the SANE (Scanner
Access Now Easy) system and require drivers specific to the different
scanner models. Most of them are written based on reverse-engineering
due to lack of support by the scanner manufacturers. To get driverless
scanning working with the software the users are used to the best
solution is to write a SANE module for driverless IPP scanning. This
module will then automatically support all IPP scanners, thousands of
scanners where many of them do not yet exist.
The student's task is to write this SANE module for IPP driverless
scanning and so make Linux ready for the future of driverless devices.
Mentors: Till Kamppeter, Project Leader OpenPrinting (till at linux dot
com), SANE upstream developers TBD
Desired knowledge: C programming, DNS-SD, IPP
Code license: GPL 2+
I want to ask whether someone of you would (together with me) mentor a
student to do this project.
The SANE project does not need to be mentoring organization at the GSoC
for that. Mentoring organization will be the Linux Foundation.
Thank you very much in advance
More information about the sane-devel