MandrakeUser.Org - Your Mandrake-Linux Knowledge Base!


 
 

*DocIndex - Hardware

Scanning In Linux

* SANE
* Frontends
* OCR
* Personal Experiences
* Buying A Scanner

Related Resources:

SANE website
Parallel Port Scanners under Linux
USB Scanners under Linux
SANE FAQ
saned Setup

Revision / Modified: Mar. 18, 2002
Author: Marcel Pol (remove numbers)

 

* SANE

SANE stands for Scanner Access Now Easy. It provides access to scanners, mostly flatbed scanners, but it can also provide access to digital cameras. Last November it turned five, so it has been around for some time. It's not meant to run on Linux only, but also on almost every other Unix or Unix clone. Other supported operating systems include BeOS and OS/2, maybe even Mac OS X.

SANE actually consists of two parts, backend and frontend. The part you definitely need is 'sane-backends', which contains the drivers for different scanner models. It also provides the libraries the various frontends require to work properly. The standard frontends for SANE are 'Scanimage' and 'Xscanimage'.
In Mandrake Linux, 'scanimage' is part of the 'sane-backends' package, whereas 'xscanimage' belongs to 'sane-frontends'.

Twain or SANE

Twain and SANE are not the same.
When you buy a scanner, you'll usually find some notice on the box that the scanner is 'Twain compatible'. This just means the included Windows or Mac OS drivers include features and an architecture compatible with the Twain standard. Applications with interfaces compatible to that standard can communicate with the driver via its Twain part.
SANE, on the other hand, separates driver and interface, thus allowing for e.g. scanning via a network.
Work has been started to let Twain and SANE work together, but that will take some time.

* section index * top

* Frontends

There are various frontends for SANE you can choose from.
  • 'scanimage' is a commandline frontend. It is useful for testing SANE, in case you have troubles or you are doing development. It's also useful if you want to access your scanner from scripts. 'scanimage' is part of the Mandrake Linux 'sane-backends' package.

  • 'xscanimage' is a graphical frontend (GTK) but mostly you will just want to use XSane, which is a very good and featured replacement of 'xscanimage'. 'xscanimage' is part of the Mandrake Linux 'sane-frontends' package.

  • With XSane, you can save, copy (print), fax, OCR and mail documents. You can do previews before the actual scan. Every few weeks there is a new version released which has new features and bug-fixes. XSane is available in Mandrake Linux as a package of the same name. Both XSane and xscanimage also work as GIMP plug-ins ('File' - 'Acquire').

  • There's a KDE frontend, 'Kooka', which uses the library 'kscan'. It's now included in most Linux distributions and in Mandrake Linux in the package 'kdegraphics'.

  • QuiteInsane is a graphical frontend which uses Qt. It's quite nice actually, just check it out. Other frontends include FIScan, scanlite and VueScan(proprietary).

Another interesting "frontend" is 'saned', a network daemon. You can attach the scanner to a server, and then use one of the frontends on a client to connect to it. You still have to change the documents to be scanned manually, so make sure you have the scanner standing nearby (or find someone else to do it for you ;-)). There's a Windows version of XSane, which you can use to connect to that scanner server.
'saned' is part of the Mandrake Linux 'sane-backends' package.

* section index * top

* OCR

OCR stands for Optical Character Recognition. In short, it is a method to recognize the characters from a scanned image. Using OCR, you can scan a document, turn the characters on the scanned image into text again, which you can edit in your favorite text editor or word processor then.

Recently some nice free OCR programs have shown up:

  • Clara OCR is starting to be a functional OCR program. It is intended for large scale projects, and I haven't played with it, so I can't say too much about it. You'll find it in the Mandrake Linux package 'clara'.

  • There's also GOCR which is becoming quite good, depending on the quality of the scan and the font. It works via the command line, but it comes with a simple graphical (GTK) frontend.
    With GOCR, you have to scan the document first, save it as an .pnm file and then convert it. Some frontends like XSane, Kooka or QuiteInsane allow you to use GOCR as a plug-in, but they lack the ability to set some options for GOCR, which you can set using GOCR or GTK-OCR. You have to choose between ease of use and flexibility.

* section index * top

* Personal Experience

When I started with Linux I had an old sheetfed scanner, bought used. It was a Microtek Pagewiz connected to the parport, and it wasn't mentioned on the list of supported scanners. The list said only SCSI scanners were supported, and no parport models.
I found kernel drivers for the parport models, the 'ppscsi' drivers, which supported my scanner by implementing some sort of SCSI-over-parport protocol. With these kernel modules the kernel recognized the scanner, but the SANE backend did not seem to support it. I subscribed to the SANE mailing list and got support from the developers, which led to my scanner getting supported.
Anyway, this was a major venture for me: patching and compiling the kernel, and patching and compiling SANE. I had never compiled anything before.

These days, I use an Epson scanner. It works fine via USB, and I haven't had a single problem with it so far. I have also used another scanner by Microtek. Both are supported very well by SANE, the scan quality is even better than what I get when using the software which came with the scanner ... :-)

* section index * top

* Buying A Scanner

The backend for Epson scanners is one of the best, because Epson releases sufficient documentation about the scanner. This also applies to Umax and - to a certain amount - to Mustek.
If you're buying a scanner, and you have some money to spare, I'd suggest an Epson. Any model should do, except for the 1250, which is completely different from the rest.
If you want to spend less money, a Mustek might be fine. Better check the list of supported scanners then, because there's a wide variety of available models.

Like with most other hardware, writing SANE backends is basically a game of catching up with new models issued by the hardware vendors. New drivers are often written by users coming from other operating system who want their devices supported.
Needless to say that a lot of new scanners aren't supported yet. Still, a lot of scanner models are akin. Most Epson scanners use the same backend. For Microtek scanners there are two backends which support most models. SANE used to support SCSI models only, but nowadays parport and USB models are just as supported as SCSI models are.

Overall SANE can be regarded as a standard and it's a very functional piece of software. The main shortcoming is the absence of drivers for some scanner models because manufacturers refuse to release in-depth documentation.
For supported hardware, SANE can rival with the scan software provided for Windows and Mac OS. In my experience and the experience of quite a few other people, the scan quality is superior to that of scans made with other software.

* section index * top

 
Legal: All texts on this site are covered by the GNU Free Documentation License. Standard disclaimers of warranty apply. Copyright LSTB (Tom Berger) and Mandrakesoft 1999-2002.