8

我正在开发一个与扫描仪交互的应用程序(Java Applet)。我知道我需要一个 Twain 库或 WIA 库才能使其在 Windows 中工作。但我不确定两者有什么区别?我正在尝试使用这个库:

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

JAR 文件链接已损坏,所以我从这里得到它。 http://rsbweb.nih.gov/ij/plugins/twain-scan.html

以及来自这里的 DLL:http: //sourceforge.net/projects/twain-dsm/ ?source=dlp

但是,它没有检测到源。这是错误日志:

http://pastebin.com/cB9gL0ip

我在 64 位机器上。有人成功了吗?

TWAIN 规范太长无法遵循,我还没有找到任何关于 WIA 实施的资源。

非常感谢任何帮助/指针/资源。

4

1 回答 1

10

使用同位模式

对于 java 中的 twain 设备控制,所有组件都需要处于相同的模式。即 JRE、Twain DSM(源管理器)和 Twain 驱动程序(扫描仪驱动程序)都需要为 32 位或全部为 64 位。没有混合。

64 位 Windows 的默认安装包含 Twain DSM 的 32 位模式。你说你已经下载了 64 位 DSM。扫描仪的驱动程序很可能是 32 位的,这就是找不到它的原因。

您有 2 个选项:

将其全部保留为 64 位。

  • 使用 64 位 TWAINDSM.DLL。
  • 确保您的 JRE/JDK 是 64 位的。
  • 确保您的扫描仪具有 64 位驱动程序。

我的扫描仪没有可用的 64 位驱动程序,但我使用 64 位“虚拟扫描仪”测试了 64 位配置并且它工作正常。

全部保持 32 位(推荐)

  • 使用 32 位 TWAINDSM.DLL。
  • 确保您的 JRE/JDK 是 32 位的。
  • 使用扫描仪的 32 位驱动程序(可能是默认的)。

您可以在此处下载 32 位和 64 位twain 虚拟扫描仪

注意:我提到 JDK 是因为如果您从 IDE 运行代码,它可能指向与系统默认值不同的 JRE。真实的故事,发生在我身上。

于 2013-04-13T21:16:50.963 回答