c++ - 如何确定 TWAIN 扫描仪是 ADF/平板式扫描仪,还是两者兼有
问题描述
使用 Leadtools SDK 20 确定当前选择的扫描仪是 ADF/平板还是两者的最佳方法是什么?
我知道我可以使用L_TwainGetCapability()
and L_TwainSetCapability()
withCAP_FEEDERENABLED
来启用/禁用进纸器(如果有),但是我如何确定它是有进纸器(可能只是平板)还是有平板(可能只有 ADF)或两者都有?
谢谢
山姆
解决方案
我没有使用 LeadTools,但如果设备没有进纸器,则检查平板是多余的。它要么有喂食器,要么没有喂食器。
请记住,TWAIN 设备可能是数码相机,而不是扫描仪——因此“平板”没有意义。
我检查的当前方法是简单地查看是否CAP_FEEDERENABLED
支持如下:
- 检查是否支持CAP_FEEDERENABLED。如果不支持,则没有进纸器,您就完成了。
- 如果支持CAP_FEEDERENABLED ,则保存CAP_FEEDERENABLED的当前设置。
- 查看将CAP_FEEDERENABLED设置为 TRUE 是否成功并保存结果。
- 使用步骤 2 中保存的值重置CAP_FEEDERENABLED 。
- 步骤 3 中保存的结果是决定因素。
不幸的是,这是我这样做的迂回方式,但它应该工作。这基本上在 TWAIN Specification for CAP_FEEDERENABLED 中有描述(我使用的规范版本是 2.4)。
推荐阅读
- python - Matplotlib 轴仅具有 Pandas Dataframe 上的值
- java - java中的括号,逗号运算符和三元运算符组合等效
- c# - Windows 10/C# - 仅从开始菜单运行时长文件名失败
- python - LSTM 预测
- websocket - 属性错误:pyopenssl 20.0.1 中的 __enter__
- java - AnyLogic,代理移动到多个位置并返回原始位置
- azureservicebus - “message.DeliveryCount”引发了“System.InvalidOperationException”类型的异常
- random - Jmeter:测试脚本中的 24 位随机数
- python - 如何忽略用户未通过 SQLITE 的条件?
- json - 如何从具有值 {[]} 的 Jarray 中获取 []