WIA + сетевой сканер с adf = 1 страницей
Я пишу программу для работы со сканером сети через WIA. Все отлично работает при сканировании только одной страницы. Когда я включаю фидер:
foreach (WIA.Property deviceProperty in wia.Properties)
{
if (deviceProperty.Name == "Document Handling Select")
{
int value = duplex ? 0x004 : 0x001;
deviceProperty.set_Value(value);
}
}
программа получает отсканированный сигнал о том, что в устройстве подачи еще есть документы, и выдает сообщение об ошибке (сканер продолжает сканирование). Вот код проверки страниц в фидере:
//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.
1 ответ
У меня была почти такая же проблема при использовании WIA 2.0 с vba для управления многофункциональным сканером Brother MFC-5895CW. Когда я передавал отсканированные документы из АПД, я был не в состоянии захватить более 2 изображений на объекты изображения (и я, вероятно, пробовал все существующие варианты и работал над этой проблемой дни и часы!) Единственное решение, которое я нашел с этим сканером, заключалось в использовании ShowAcquisitionWizard-метод WIA.CommonDialog-Object для пакетной передачи всех отсканированных файлов в указанную папку. Для меня это был скорее обходной путь, чем удовлетворительное решение, потому что постобработка стала бы более сложной.
Сюрприз, я попробовал ту же процедуру на аккуратном сканере моего клиента... ShowAcquisitionWizard доставил только одну отсканированную страницу в указанную папку, остальные страницы исчезли. К моему второму удивлению с помощью метода CommonDialog.ShowTransfer, я смог перенести все отсканированные документы картинка за картинкой в графические объекты в моем приложении.