ITD*_*ITD 4 .net c# windows wia scanning
自Vista以来,Windows附带WIA 2.0(wiaaut.dll).根据以下知识库文章以及我在各种论坛上的许多发现,使用WIA 2.0不再可能进行双面扫描.然而,文章提到使用原生WIA 2.0,什么会使双面扫描成为可能.(https://support.microsoft.com/en-us/kb/2709992)
根据WIA 2.0文档(https://msdn.microsoft.com/en-us/library/windows/desktop/ms630196(v=vs.85).aspx),可以进行双面扫描,但使用新的WIA_IPS_DOCUMENT_HANDLING_SELECT(3088) )财产.
我的问题是:
如果有人可以帮助我(我想其他许多人),我将不胜感激!
问候,
M.
经过几个小时的搜索后,我发现了以下帖子中的线索. /sf/answers/530648051/
由于我使用的是单通双工扫描仪,因此可以同时扫描正面和背面.通过将设备属性(设备属性,而不是项目属性)Document_Handling_Select设置为5(Feeder + Duplex)和Pages设置为1并调用传输方法2次,我终于得到了扫描的字体和背面.
设置wiaDev.Properties ["文档处理选择"] = 5指定使用进纸器和扫描双面打印.
设置wiaDev.Properties ["Pages"] = 1指定扫描仪应在内存中保留1页,这样可以在1次扫描过程中将页面的正面和背面保留在内存中.
if (duplex)
{
wiaDev.Properties["Document Handling Select"].set_Value(5);
wiaDev.Properties["Pages"].set_Value(1);
}
Run Code Online (Sandbox Code Playgroud)
获取Wia项目并设置项目属性,例如颜色和dpi.
var item = wiaDev.Items[1];
item.Properties["6146"].set_Value((int)clr);
item.Properties["6147"].set_Value(dpi);
item.Properties["6148"].set_Value(dpi);
Run Code Online (Sandbox Code Playgroud)
然后调用两次传输方法会返回两个不同的图像
var img = (ImageFile)wiaCommonDialog.ShowTransfer(item, FormatID.wiaFormatJPEG);
ImageFile imgduplex = null;
if(duplex)
imgduplex = (ImageFile)wiaCommonDialog.ShowTransfer(item, FormatID.wiaFormatJPEG);
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人!