[sane-devel] saned/network scanner

Alexander Pevzner pzz at apevzner.com
Sat Jan 23 08:45:12 GMT 2021

On 1/22/21 11:43 PM, Thiago Milczarek SayĆ£o wrote:
> Thanks for the reply.
> Another approach is to use the C api directly and map it to java using JNI.
> I'm looking at scanimage.c file, but it deals with lots of things. Is 
> there a high level api?

I's actually simple.

1. Call sane_init() to initialize the driver
2. Call sane_get_devices() to obtain list of devices
3. Somehow choose a device from the list
4. Call sane_open() to obtain device handle
5. Call sane_start() to start scanning
6. Call sane_get_parameters() to obtain image parameters
7. Call sane_read() to read image data, until it returns erroneous 
status or zero length (which means EOF)
8. Call sane_close() to release device handle
9. Call sane_exit() to cleanup the driver

Items 2-7 can be repeated without need to initialize/cleanup driver 
before/after each scan.

Any of these functions may return error status code.

To scan everything from ADF, you need to repeat steps 5-7, until 
sane_start() returns SANE_STATUS_NO_DOCS. Don't consider 
SANE_STATUS_NO_DOCS as an error, if you've got at least one image.

It will scan with default options.

Once you've get it working, I can tell you how to deal with options.


	Wishes, Alexander Pevzner (pzz at apevzner.com)

More information about the sane-devel mailing list