Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TWAIN/WIA implementation for JAVA [closed]

I am working on an application(Java Applet) that interacts with scanner. I understand I need a Twain library or WIA library to make it work in windows. But I am not sure what are the differences of two? I am trying to use this library:

http://thorntonzone.com/manuals/Compression/Fax,%20IBM%20MMR/MMSC/mmsc/uk/co/mmscomputing/device/twain/index.html

JAR file link is broken so I got it from here. http://rsbweb.nih.gov/ij/plugins/twain-scan.html

And DLLs from here: http://sourceforge.net/projects/twain-dsm/?source=dlp

But, it does not detect the source. Here is the error log:

http://pastebin.com/cB9gL0ip

I am on 64bit machine. Anybody had any success?

TWAIN specification is too long to follow and I haven't found any resources on WIA implementation.

Any help/pointers/resources is greatly appreciated.

like image 291
Mo3z Avatar asked Apr 09 '13 03:04

Mo3z


People also ask

What is the difference between TWAIN and WIA?

TWAIN has three transfer modes (Native, Memory, File) and WIA only has two (Memory, File). Most TWAIN sources save the settings of the previous scan, while WIA does not. TWAIN supports options for each page when scanning in duplex mode, but WIA uses the same settings for both sides.

How do you force a scanner on a TWAIN driver?

Load the original document into your scanner and open Adobe Photoshop (or any other graphic program compatible with TWAIN) and go to File > Import > TWAIN driver. In the new prompt window select the device (your scanner) and click on Connect, then perform scanning.

What is TWAIN implementation?

In general, TWAIN is a protocol and Application Programming Interface (API) that standardizes communication between an application and image acquisition devices such as scanners and digital cameras. This standard allows a developer to make standard calls to any image acquisition device that supports TWAIN.


1 Answers

Use the same bit mode

For twain device control in java, all components need to be in the same mode. i.e. the JRE, Twain DSM (Source Manager), and the Twain driver (Scanner driver) all need to be 32-bit or all 64-bit. No mixing.

The default installation of 64-bit Windows contains the 32-bit mode of Twain DSM. And you say you've downloaded the 64-bit DSM. It's likely that the scanner's driver is 32-bit and that is why it cannot be found.

You have 2 options:

Keep it all 64-bit.

  • Use the 64-bit TWAINDSM.DLL.
  • Make sure your JRE/JDK is 64-bit.
  • Make sure your scanner has a 64-bit driver.

My scanner doesn't have a 64-bit driver available, but I tested a 64-bit configuration using a 64-bit "virtual scanner" and it worked.

Keep it all 32-bit (recommended)

  • Use the 32-bit TWAINDSM.DLL.
  • Make sure your JRE/JDK is 32-bit.
  • Use the scanner's 32-bit driver (probably default).

You can download 32 and 64 bit twain virtual scanners here.

Note: I mention the JDK because if you're running the code from an IDE it may be pointing to a different JRE to to the system default. True story, happened to me.

like image 175
Jonathan Spiller Avatar answered Sep 21 '22 02:09

Jonathan Spiller