我正在写一个程序,通过WIA与网络扫描仪一起工作。当只扫描一页时,一切工作正常。当我打开进纸器时:
foreach (WIA.Property deviceProperty in wia.Properties)
{
if (deviceProperty.Name == "Document Handling Select")
{
int value = duplex ? 0x004 : 0x001;
deviceProperty.set_Value(value);
}
}程序接收扫描,即进纸器中仍有文档的信号,并由于com错误而停止(扫描仪继续扫描)。下面是检查feeder中的页面的代码:
//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获得多个图像。
发布于 2012-02-26 04:18:21
我在使用WIA2.0和vba来控制Brother MFC-5895CW多功能扫描仪时遇到了几乎相同的问题。当我从ADF传输扫描时,我无法捕获超过2张图片到图像对象(我可能尝试了所有现有的选项,并在这个问题上工作了几天和几个小时!)我使用该扫描仪找到的唯一解决方案是使用WIA.CommonDialog-Object的ShowAcquisitionWizard-方法将所有扫描的文件批量传输到指定的文件夹。对我来说,这更多的是一种变通而不是令人满意的解决方案,因为后处理会变得更加复杂。
令人惊讶的是,我在我的客户的整齐扫描仪上尝试了同样的程序...ShowAcquisitionWizard仅将一个扫描的页面传送到指定的文件夹,其他页面消失。令我第二个惊喜的是,使用“CommonDialog.ShowTransfer”方法,我能够将所有扫描的文档逐个图片地转换为我应用程序中的图像对象。
https://stackoverflow.com/questions/9212122
复制相似问题