2010-10-27 48 views
3

我正在用C#开发应用程序以使用WIA 2.0库。目前我可以使用大部分功能,例如ADF(自动文档进纸器),滤镜等等。WIA 2.0双面打印属性

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

我试图将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); 

我读到许多主题,该文档还,有可能让孩子的物体形成扫描仪上的项目,但只有一个在此集合中的项目。

请有人帮助我!

感谢

回答

3

我读过一个你传递第一图像的第二图像可使用相同的参考,所以你只需要调用的第一行代码的两倍。这似乎有点奇怪,但适用于我的一台双面扫描仪。

例如

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

这可能适合你。我在双面扫描方面也遇到了麻烦,但是我设法使用我的一台扫描仪。