Дуплексное сканирование WIA EPSON DS-510 недостаточно памяти

Я использую следующий код Java, который использует com4j для вызова WIA для сканирования. Сканер EPSON DS-510.

Этот код, похоже, отлично работает для сканирования односторонней стороны, но когда я устанавливаю для WIA_DPS_DOCUMENT_HANDLING_SELECT значение 5 (для дуплекса + устройство подачи) и запускаю сканирование, строка с оператором cmndlg.showTransfer или item.transfer выдает обе ошибки с недостаточным объемом памяти.

У меня последняя версия драйвера, и это на Windows 10. Тот же код отлично работает для любых сканеров fujitsu.

setDeviceProperty(device, WIA_DPS_DOCUMENT_HANDLING_SELECT, 5);
IItem item = device.items(1);
String filename;
if (itemProps != null) {
    setProperties(item, itemProps);
}
Com4jObject com4jObject;
if (showTransferDialog) {
   com4jObject = (Com4jObject) cmndlg.showTransfer(item, imageFormatId, false);
} else {
    com4jObject = (Com4jObject) item.transfer(imageFormatId);
}
IImageFile imageFile = com4jObject.queryInterface(IImageFile.class);

Любые идеи ?


person Pradeep    schedule 07.02.2018    source источник


Ответы (1)


Когда вы получаете такую ​​ошибку, вы можете быстро запустить диспетчер задач или обозреватель процессов, чтобы увидеть, какой объем памяти потребляет ваше приложение. Однажды я столкнулся с ошибкой «недостаточно памяти», когда работал с экстраполяцией, когда размер DIB был относительно большим, и мы запрашивали память, но, по-видимому, у Windows есть жесткий предел максимальной памяти, которая может быть предоставлена ​​процессу. Таким образом, контрольный список будет таким:

1) Если на диске достаточно места для изображений с высоким разрешением, проверьте одиночное сканирование. 2) Однократное сканирование не вызывает проблем, попробуйте высокое разрешение. Если работает нормально, двустороннее сканирование для изображений с низким разрешением. 3) Если все вышеперечисленное работает нормально, нужно проверить, какой объем памяти запрашивает минидрайвер для сканирования этих образов.

person Preeth Pratheek    schedule 12.02.2018
comment
Спасибо за ответ. - person Pradeep; 14.02.2018
comment
Места на диске и памяти хватает, одностраничный ска работает нормально. Двусторонняя печать с разрешением 75 dpi и черно-белой печатью также не работает. - person Pradeep; 14.02.2018
comment
` com4j.ComException: 8007000e Недостаточно памяти для выполнения этой операции. : Недостаточно памяти для завершения этой операции. : .\invoke.cpp:517 в com4j.Wrapper.invoke(Wrapper.java:187) в com.sun.proxy.$Proxy3.showTransfer(неизвестный источник) в com.wia.api.Wia4j.scan(Wia4j.java :388) в com.wia.api.Wia4jTest.main(Wia4jTest.java:160) Причина: com4j.ComException: 8007000e Недостаточно памяти для выполнения этой операции. : Недостаточно памяти для завершения этой операции. : .\invoke.cpp:517 ` - person Pradeep; 14.02.2018