我正在编写一个程序,通过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获得多个图像。
答案 0 :(得分:0)
使用带有vba的WIA 2.0来控制Brother MFC-5895CW多功能扫描仪时遇到了同样的问题。 当我从ADF传输扫描时,我无法捕获超过2张图片到图像对象(我尝试了每个现有的选项,并且在这个问题上工作了几天和几小时!) 我在该扫描仪中找到的唯一解决方案是使用WIA.CommonDialog-Object的ShowAcquisitionWizard方法将所有扫描文件批量传输到指定的文件夹。对我来说,这更像是一种解决方法而不是令人满意的解决方案,因为后处理会变得更加复杂。
惊喜,我在我的客户端的整洁扫描仪上尝试了相同的程序...... ShowAcquisitionWizard只将一个扫描页面传送到指定的文件夹,其他页面消失了。 令我对'CommonDialog.ShowTransfer'方法的第二个惊喜,我能够将所有扫描的文档逐个图像传输到我的应用程序中的图像对象。