【问题标题】:TWAIN/WIA example for javaJava 的 TWAIN/WIA 示例
【发布时间】:2015-01-15 08:37:10
【问题描述】:

我正在开发一个 java 应用程序,它可以搜索我的系统并找到所有扫描仪,并让我选择是否安装了多个扫描仪并继续扫描文档。我知道我应该为此使用 twain。我的系统路径中有一个库文件,但我不知道如何使用它。是否有关于如何在我的 java 应用程序中使用它的示例程序。

我找到了以下使用 WIA 与扫描仪通信的示例代码。是否有任何 jar 文件可以导入到我的 netbeans 中,或者是否有其他出路。

WIA.DeviceManager manager = new WIA.DeviceManagerClass();
string deviceName = "";
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
    if (info.Type == WIA.WiaDeviceType.ScannerDeviceType)
    {
        foreach (WIA.Property p in info.Properties)
        {
            if (p.Name == "Name")
                {
                    deviceName = ((WIA.IProperty)p).get_Value().ToString();
                    Console.WriteLine(deviceName);
                }
        }
    }
}

【问题讨论】:

  • 我不认为它是 Java,如果它是 if (p.Name == "Name") 不是在 Java 中比较 Strings 的方式
  • 你可以看看Morena 7
  • 好的。谢谢@MadProgrammer

标签: java wia twain


【解决方案1】:

我不确定您使用的是哪个库,但我会推荐以下两个库之一:

Morena(低价、良好的文档和电子邮件通信):

http://www.gnome.sk/index.html

mm 的计算(开源 LGPL)

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

如果您愿意支付少量费用,我会推荐 Morena。使用 Morena 6 (TWAIN),我能够制作一个返回 base64 jpeg 数据的扫描小程序(在外部调用),最后只得到了 145 行我自己的 Java 代码。最重要的是,他们有完整的工作示例和一个非常好的常见问题解答页面,几乎涵盖了我遇到的所有错误。我没怎么玩过 mms 计算的插件,因为直到 Morena 项目完成后我才发现它。

【讨论】:

    【解决方案2】:

    如果对我们正在处理的事情了解不多,就很难做出这样的决定。首先让我解释一下。

    每个扫描仪设备都附带一个自定义扫描驱动程序。这些驱动程序使用 TWAIN 或 WIA 与使用驱动程序的应用程序进行通信。换句话说,对于使用这些驱动程序的所有应用程序,必须遵循两个协议: 威亚:https://msdn.microsoft.com/en-us/library/windows/desktop/ms630368(v=vs.85).aspx

    TWAIN:http://www.twain.org/

    相信我,你不想了解这些细节。

    因此,您的目标是使用应用程序中的一种协议来查询设备。您粘贴的代码位是一个 WIA c# 示例应用程序,它查询并列出机器上安装的所有仅 WIA 驱动程序。

    我真的建议您使用 TWAIN,因为 WIA 完全基于 COM,对于 C++ 世界以外的人来说,这非常困难,而且我不确定 WIA 协议是否支持 TWAIN,但反过来应该可以工作。

    如果我要做像你这样的事情,我会考虑用 Java 为 TWAIN 编写一个自定义包装器,就像 C# 世界中的互操作一样。与 WIA 相比,TWAIN 应该更容易。

    如果需要任何确认,请随时询问。

    谢谢!

    【讨论】:

      【解决方案3】:

      这是 C# 代码。为了让 JVM 和 CLR 一起工作,你可以使用jni4net 来包装代码块。您可以阅读文章Java TWAIN with Dynamic .NET TWAIN and jni4net 了解如何在 Java 中调用 .NET 代码。

      【讨论】:

        猜你喜欢
        • 2013-03-31
        • 2012-09-12
        • 2012-02-07
        • 2018-03-09
        • 1970-01-01
        • 2018-02-19
        • 1970-01-01
        • 2011-05-18
        • 2019-01-28
        相关资源
        最近更新 更多