WIA + 带有 adf = 1 页的网络扫描仪

Posted

技术标签:

【中文标题】WIA + 带有 adf = 1 页的网络扫描仪【英文标题】:WIA + network scanner with adf = 1 page 【发布时间】:2012-03-01 23:57:10 【问题描述】:

我正在编写一个程序来通过 WIA 使用网络扫描仪。 仅扫描一页时一切正常。当我打开进纸器时:

foreach (WIA.Property deviceProperty in wia.Properties)

    if (deviceProperty.Name == "Document Handling Select")
    
        int value = duplex ? 0x004 : 0x001;
        deviceProperty.set_Value(value);
    

程序接收到扫描信号,表明进纸器中仍有文档,并因 com 错误而脱落(扫描仪继续扫描)。 这是检查馈线中页面的代码:

//determine if there are any more pages waiting
Property documentHandlingSelect = null;
Property documentHandlingStatus = null;

foreach (Property prop in wia.Properties)

    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
        documentHandlingSelect = prop;
    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
        documentHandlingStatus = prop;


if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & 0x00000001) != 0)

    return ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & 0x00000001) != 0);


return false;

获取图片代码:

imgFile = (ImageFile)WiaCommonDialog.ShowTransfer(item, wiaFormatJPEG, false);

很遗憾,找不到使用 WIA WSD 的示例。也许有一些设置可以通过 WSD 获取多个图像。

【问题讨论】:

我也有the same issue,我通过安装制造商的驱动程序解决了这个问题。 【参考方案1】:

我在使用带有 vba 的 WIA 2.0 来控制 Brother MFC-5895CW 多功能扫描仪时遇到了几乎相同的问题。 当我从 ADF 传输扫描图像时,我无法将超过 2 张图片捕捉到图像对象(我可能尝试了所有现有的选项,并在这个问题上工作了几天和几个小时!) 我使用该扫描仪找到的唯一解决方案是使用 WIA.CommonDialog-Object 的 ShowAcquisitionWizard 方法将所有扫描的文件批量传输到指定文件夹。对我来说,这更像是一种解决方法,而不是令人满意的解决方案,因为后处理会变得更加复杂。

惊喜,我在客户端的整洁扫描仪上尝试了相同的程序... ShowAcquisitionWizard 仅将一个扫描页面发送到指定文件夹,其他页面消失了。 令我惊讶的是,使用“CommonDialog.ShowTransfer”方法,我能够将所有扫描的文档一张一张地传输到我的应用程序中的图像对象中。

【讨论】:

我从 MS Support 获得的唯一解决方案是 - “您必须为 WIA COM API 编写自己的包装器”...

以上是关于WIA + 带有 adf = 1 页的网络扫描仪的主要内容,如果未能解决你的问题,请参考以下文章

wia adf 仅捕获页面的一部分

即使 ADF 已加载页面,WIA 文档处理状态仍返回 0

无法读取通过 ADF 扫描的第二页

WIA 2.0 复式属性

无法在 Windows 7 x64 上使用 WIA 进行扫描

文档扫描:TWAIN、WIA、ISIS 还是 SANE?