This page is about scanning API and UI for the GNOME desktop. The GnomeScan project was started as a SoC2006 project by ÉtienneBersac and mentored by VincentUntz.


Scanning is problematic accross almost libre or proprietary desktops. While printing is easy and very common, scanning is harder to use and users often don't want to dive into different unaccessible software. Currently, each hardwares comes with it's own software which try to integrate with as much as possible applications. However, this always break the workflow using intermediate files and additionnal operation for the users.

In free software, we have a important key piece of software : SANE. SANE is very nice in the sense it's highly UI independent ! On top of SANE we have the main scanner software used by Gnome users : XSane. We can also notify OpenOffice scanning feature (very very hard to use) using SANE too. talks directly with SANE and creates its own interface, because there is no shared scan UI like we have for printing.

In order to address this problem in Gnome, we will provide a new plateform component exposing a high-level API for applications developper and tools for users.

Our goal is to make scanning as easy as printing for both users and developers.


The first attempt for a Gnome Scan solution was done by †MarkFinlay during 2003. Since Mark death, the project was stopped. We only have mockup screenshots from these days. During 2005, ÉtienneBersac released gokr. A Gtk+ wrapper around gocr. (Well, i develop it because i didn't saw that feature in XSane.) This project is aborted.

Early 2006, ÉtienneBersac with collaboration of MartinSchön began to discuss and design a library for scanning on d-d-l. Finaly, ÉtienneBersac started GnomeScan with the great help of the Google Summer of Code 2006, mentored by VincentUntz (aka God). Gnome Scan 0.4 was released end 2006. Gnome Scan 0.4 was still a "proof of concept".

Interesting bits comes with 0.5 series. Gnome Scan has been totally rewritten after some weeks of design (see /Spec) and important decision : make Gnome Scan more dynamic (e.g. less hard coded features). Device properties and processing are no more hard-coded. Another extremly important note about this series is the use of Gegl as ground for processing.

Toward OCR integration in Gnome, Gnome Scan shows it limits. OCR integration will be done in a seperate project : LibAccroc. Gnome Scan will provide ready to use base class for OCR. LibAccroc will allow to choose OCR backend (OCRopus, tesseract, gocr, ocrad, hocr, claraocr, etc.) and provide a unique output format (possibily hOCR) and should expose backend options.

Use Cases

  • Bertrand wants to create an avatar. He puts a photo in the device, triggers area auto selection, chooses a location and formats and launches acquisition.
  • Bob creates a new mail and scans as new attachment.
  • Barabara scans albums into her photo library managed with gthumb. She puts an entire album in the ADF, chooses an album name and triggers scan. All photos are imported in the new album.
  • Billy is a professionnal artist, he scans pictures in high res to integrate in his artwork made with The Gimp. He doesn't want compressed data.
  • Benjamin is a teacher, he wants to improve an old exam using Abiword. He creates a new document and scans the exam in it.
  • Betty uses her scanner and printer as photocopier.
  • Benoît has a business card reader. He wants to import directly a bunch of business card into evolution address book.
  • A friend of Bob asks him to sent a copy of a two sided a4 page (exam subject). He puts the page in the ADF, launches the app, selects a4 and "Sent to Mail". The picture is then to the same resolution as the screen in order to be viewable but not memory hungry.
  • Colin is an inkscape fan. He does not have a tablet so he prefers to draw a sketch and import it directly as vector graphic in inkscape.
  • Ben is a geek. He writes a script that automates the acquisition of a lot of picture.
  • Garry has a bunch of photo to import to his hardrive, but he only has a flatbet scanner. He puts 4 photos and selects multiple areas. He choose s an album and launches the acquisition.
  • Dan is working in an office and has the only scanner in the office plugged into his computer. He wants to share the scanner over the network so he doesn't have to get up everytime someone comes over to scan a document.
  • Bastian choose ADF source, A4 size, PDF format, filename and trigger acquisition. All pages are stored in one multipage PDF.
  • Brad often scan magazine and other printed paper. He scan such paper at high resolution. He provide the paper resolution and the software descreen (remove the moire pattern) the final image.
  • Add you use case here !


ThiloPfennig: I think that this is really a great project. This is one of the major drawbacks that GNOME has.

NickolayShmyrev: why do you think that library is needed? Isn't it better to make single app (one instance for scanner) that will be able to make scanned document and save it. Futher processing may be done with interested applications like abiword but that task is not related to scanning at all. That will be OCR application and so on.

  • ÉtienneBersac: I want to bring scan side by side with print. Library does not touch OCR. That's app/plugin part.

    • edmack: I think that's a very good and powerfull idea. In windows scanning is often a program, which is the wrong metaphor for it. The user must not have to think I want to get a scanned image so I go into scan program A then save it to B and open that with C. It should just be I goto C like I always do, and choose the scanner for my image instead of a file. It must be smooth and follow the user's intuition.

      • ÉtienneBersac: Not only in Windows, on every systems i test, scan ui was a distinct task. See the UI review linked above. libkscan provide similar functionnalities, including OCR.

Davegod75: Great work so far. I would suggest taking a lot at the Canon canonscan software for WinXP for ideas about functionality and ease of use. It has been one of the easiest scanning programs I have ever used.

JavierJardon: Ubuntu plans to use GnomeScan for the next release:

Outreach/SummerOfCode/2006/GnomeScanning (last edited 2013-12-03 23:50:39 by WilliamJonMcCann)