WIA 2.0双面属性

5
我正在使用C#开发一个应用程序来使用WIA 2.0库。目前,我已经可以使用大部分功能,例如ADF(自动文档进纸器),过滤器等。
现在,我需要使用扫描仪(富士通)的双面打印器。
我正在尝试将WIA_DPS_DOCUMENT_HANDLING_SELECT扫描仪属性设置为DUPLEX值。请参见下面的代码:
  try
        {
            bool hasMorePages = false;
            //determine if there are any more pages waiting
            Property documentHandlingSelect = null;
            Property documentHandlingStatus = null;
            foreach (Property prop in WiaDev.Properties)
            {
                if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
                    documentHandlingSelect = prop;
                if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
                    documentHandlingStatus = prop;
            }

            object obj = new object();
            obj = (WIA_DPS_DOCUMENT_HANDLING_SELECT.DUPLEX);
            documentHandlingSelect.set_Value(ref obj);

            if (documentHandlingSelect != null) //may not exist on flatbed scanner but required for feeder
            {
                //check for document feeder
                if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0)
                {
                    hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0);
                    if (hasMorePages)
                    {
                        // set the property to use FEEDER and DUPLEX (this result in the value of 5 in the property)
                        object obj = new object();
                        obj = (WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER | WIA_DPS_DOCUMENT_HANDLING_SELECT.DUPLEX);
                        documentHandlingSelect.set_Value(ref obj);
                    }
                }
            }
            return hasMorePages;

这段代码可以编译,但是当我执行这一行时无法获取到两张图片,只能获取到正面图片:

imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);

我阅读了许多主题和文档,发现可以从扫描仪上的Item获取Children对象,但是此集合中只有一个Item。

请有经验的人帮助我!

谢谢

1个回答

5
我看到过这样的说法,当你传输第一张图片后,第二张图片可以使用相同的引用调用第一行代码两次。虽然这有点奇怪,但它在我的双面扫描仪上可行。
例如:
imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);
imgFile2 = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);

这可能对您有用。我也在双面扫描方面遇到了问题,但我成功地让其中一台扫描仪工作了。

非常感谢。这节省了我一整天的时间。 - SaddamBinSyed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接