微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 WIA 扫描

如何解决使用 WIA 扫描

制作具有简单纸张扫描功能的应用程序。我希望能够扫描单面和双面。

我可以将图像扫描并保存为 bmp 文件,但我的问题是切换到双面扫描。

我附上了一个简单的示例代码,它适用于单工,但不适用于双工。我收到了 Duplex 的 0x80210067 错误代码。即使我不尝试获取图像两次,我也会收到错误代码

我可以在扫描仪附带的应用程序中很好地扫描双面。

我可以设置所有其他属性(如分辨率和颜色),但不能设置“3088”属性

另外,如果我尝试将“3088”设置为 1(FeedER),我也会遇到同样的错误

    const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";

        private void ScanAndSaveOnePage(Device Scanner,bool Duplex)
        {
            Item Item1 = Scanner.Items[1];

            setItem(Item1,"6146",2); //CurrentIntent
            setItem(Item1,"6147",150); //HorizontalResolution 
            setItem(Item1,"6148",150); //VerticalResolution 
            setItem(Item1,"6151",150 * 8.5); //HorizontalExtent 
            setItem(Item1,"6152",150 * 11); //VerticalExtent

            if(Duplex)
                setItem(Item1,"3088",4); //DocumentHandlingSelect 4 = Duplex

            ImageFile Image1 = (ImageFile)Item1.Transfer(wiaFormatBMP);
            Image1.SaveFile(@"D:\ScanTest\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".bmp");

            if (Duplex)
            {
                ImageFile Image2 = (ImageFile)Item1.Transfer(wiaFormatBMP);
                Image2.SaveFile(@"D:\ScanTest\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + "_2" + ".bmp");
            }
        }

        private void setItem(IItem item,object property,object value)
        {
            Property aProperty = item.Properties.get_Item(ref property);
            aProperty.set_Value(ref value);
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。