使用 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 (将#修改为@)