有没有一个稳定的.NET WIA组件?

19

我知道你可以在.NET生态系统中使用WIA而不需要太多麻烦,但是我发现这种方式使用WIA时,至少有些时候表现是不稳定的。我曾经看到我的代码行为完美,也有可能完全不起作用,一些WIA功能根本不起作用,拒绝玩耍,更别提友好了。

您可以在我的WIA 2.0 HP ScanJet 7650特定问题问题中阅读,这个问题在六个月内没有得到任何评论或答案。

所以,我愿意花费合理的金额(最高达300美元)购买一个可靠的WIA .NET组件。我一直在ComponentSorce上浏览,那里有许多可以做到TWAIN并且如果不被善待就会吃掉小孩子的2000美元的恐龙,但却没有单一的WIA .NET组件。

哦,对了,还有一个小小的牢骚 - MSDN关于WIA的文档和示例真的非常低劣。

更新 - 对于所有认为可以通过阅读WIA的概念证明并使用示例代码解决此问题的人- 不能。从看到它可以工作到为多个设备提供可靠的扫描支持需要大量的工作。我在计算机上使用.NET中的WIA测试了三种不同的扫描仪,当你认为你已经解决了一些细节时,你插入另一个扫描仪时会发现你什么也没解决。这就是为什么我愿意付钱购买这个组件。


你的问题吸引的关注太少了,也许如果你把标题改成别的什么会更好呢?比如说SOLID SCANNER组件?也许人们根本不使用WIA... - Daniel Mošmondor
很抱歉,WIA 2.0和.net的问题一直令人沮丧。根据缺乏回应来看,可能没有突出的组件。顺便说一句,Google搜索可以发现一些支持WIA的选择,但尚未找到300美元的产品。祝好运。 - rskar
据我所知,称呼.NET中的扫描仪支持为一个笑话都算是慷慨了。我和你处于同样的境地。这个页面上所有人提供的链接对我来说都是紫色的(不是蓝色),因为在找到这篇文章之前我已经看过它们了。我仍然没有找到一种可靠的方法来设置页面大小或任何其他WIA属性.../放弃了。 - Cory Mawhorter
有许多价值2000美元的雷龙在做TWAIN并吃掉小孩子,如果不好好对待它们会发生一些有趣的事情 LOL :-) - Max
4个回答

2

2
您可能想要检查设备是否支持 WPD,这是 Vista 或更高版本中 WIA 的替代品。如果设备不支持 WPD,则尝试使用 WIA Automation Layer 访问设备。它肯定无法处理特定于WIA的问题,但至少对于标准化行为来说还是不错的。如果既不支持WPD也不支持WIA,恐怕您必须处理旧的 TWAIN 接口。

Windows Driver Kit中的WIA文档与Windows SDK中的文档相当。如果驱动程序开发人员未遵循WIA驱动程序指南,请不要感到惊讶。如果您使用WIA扫描仪树,请确保您了解Windows XPVistaWindows 7之间的树布局差异。

有关这些API的.NET应用程序包装器的讨论,请参见.NET Scanning API


0

0

我对这个问题发表了评论,但我想通过添加一些新的链接来补充这个链接集合:https://github.com/baffles/derp-scan

从代码看,它似乎可能是一个实际可用的 WIA 库的开端(有朝一日)。

从代码中看,问题可能是某些属性仅作为设备属性工作,而某些属性仅作为项属性工作(WIA_DPS_* vs WIA_IPS_*):http://msdn.microsoft.com/en-us/library/windows/hardware/ff539542(v=vs.85).aspx

它提到其中存在重叠,我猜测没有两个扫描仪的行为方式相同... 这意味着你应该同时设置它们吗?我不知道。和你一样,文档很差。

TL;DR:这次从codeproject复制代码是没有帮助的。


1
我是那个 Github 仓库 (derp-scan) 的拥有者。不幸的是,它可能不会有太大的发展。我已经没有动力再继续开发它了,因为我的扫描仪驱动程序被削弱了,只有他们提供的软件似乎有用。:( - BAF
我明白。我基本上也是这样做的...使用糟糕的扫描软件扫描到PDF或图像,然后解析它。有点疯狂。 - Cory Mawhorter
1
不确定为什么我在这里被踩了。这个问题的答案是没有答案,它已经成为一个知识库。接受它吧。 - Cory Mawhorter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接