gpt4 book ai didi

c# - WIA 2.0 双面扫描

转载 作者:可可西里 更新时间:2023-11-01 13:56:19 37 4
gpt4 key购买 nike

从 Vista 开始,Windows 附带了 WIA 2.0 (wiaaut.dll)。根据以下知识库文章和我在各种论坛上的许多发现,使用 WIA 2.0 不再可能进行双面扫描。然而,文章提到了使用 native 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) 属性。

我的问题是:

  • 我不知道如何使用 native WIA,我怀疑在使用 C# 时根本不可能。
  • 我找不到设置新 WIA_IPS_DOCUMENT_HANDLING_SELECT 属性的方法,因为该属性不在我的 wiaDevice 属性中。根据 WiaDef.h,它的属性 id 仍然是 3088,唯一可能的值是 0x400 (1024)。

如果有人能帮助我(我想很多其他人)解决这个问题,我将不胜感激!

问候,

M.

最佳答案

经过几个小时的搜索,我在下面的帖子中找到了线索。 https://stackoverflow.com/a/7580686/3641369

因为我使用的是单程双面扫描仪,同时扫描正面和背面。通过将设备属性(设备属性,而不是项目属性)Document_Handling_Select 设置为 5 (Feeder + Duplex) 并将 Pages 设置为 1 并调用传输方法 2 次,我终于得到了扫描件的字体和背面。

设置 wiaDev.Properties["Document Handling Select"] = 5 指定使用进纸器和双面扫描。

设置 wiaDev.Properties["Pages"] = 1 指定扫描仪应在内存中保留 1 个页面,这允许在 1 次扫描过程中将页面的正面和背面都保留在内存中。

if (duplex)
{
wiaDev.Properties["Document Handling Select"].set_Value(5);
wiaDev.Properties["Pages"].set_Value(1);
}

获取 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);

然后两次调用传输方法返回两个不同的图像

var img = (ImageFile)wiaCommonDialog.ShowTransfer(item, FormatID.wiaFormatJPEG);

ImageFile imgduplex = null;
if(duplex)
imgduplex = (ImageFile)wiaCommonDialog.ShowTransfer(item, FormatID.wiaFormatJPEG);

希望这对某人有帮助!

关于c# - WIA 2.0 双面扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743888/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com