WIA + сетевой сканер с adf = 1 страницей - PullRequest
0 голосов
/ 09 февраля 2012

Я пишу программу для работы с сетевым сканером через 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 Ответ

0 голосов
/ 26 февраля 2012

У меня была почти такая же проблема при использовании WIA 2.0 с vba для управления многофункциональным сканером Brother MFC-5895CW. Когда я передавал сканы из АПД, я был не в состоянии перехватить более двух изображений на изображения-объекты (и я пробовал, вероятно, каждый существующий вариант и работал над этой проблемой дни и часы!) Единственным решением, которое я нашел с этим сканером, было использование метода ShowAcquisitionWizard объекта WIA.CommonDialog-Object для пакетной передачи всех отсканированных файлов в указанную папку. Для меня это был скорее обходной путь, чем удовлетворительное решение, потому что постобработка стала бы более сложной.

Сюрприз-сюрприз, я попробовал ту же процедуру на аккуратном сканере моего клиента ... ShowAcquisitionWizard доставил только одну отсканированную страницу в указанную папку, остальные страницы исчезли. К моему второму удивлению с помощью метода CommonDialog.ShowTransfer, я смог перенести все отсканированные документы картинка за картинкой в ​​объекты изображения в моем приложении.

...