首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIA 2.0双工属性

WIA 2.0双工属性
EN

Stack Overflow用户
提问于 2010-10-27 18:13:00
回答 1查看 8.8K关注 0票数 4

我正在用C#开发一个使用WIA2.0库的应用程序。目前,我可以使用大多数功能,如ADF (自动文档馈送器),过滤器等。

现在,我需要使用我的扫描仪(富士通)的双面打印器。

我正在尝试将WIA_DPS_DOCUMENT_HANDLING_SELECT扫描器属性设置为双工值。请参见以下代码:

代码语言:javascript
复制
  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;

这段代码编译正常,但是当我执行这行代码时,我不能得到两个图像。它只检索正面:

代码语言:javascript
复制
imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);

我读到了许多主题和文档,其中提到可以从扫描仪上的项中获取子对象,但此集合中只有一个项。

快来人救救我!

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-09-28 16:57:01

我读过这样一个例子,你传输第一个图像,第二个图像使用相同的引用,所以你只需调用第一行代码两次。这似乎有点奇怪,但与我的双面扫描仪之一工作。

例如:

代码语言:javascript
复制
imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);
imgFile2 = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);

这可能对你有用。我也遇到了双面扫描的问题,但我设法让这与我的扫描仪之一工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4032058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档