我正在用C#开发一个使用WIA2.0库的应用程序。目前,我可以使用大多数功能,如ADF (自动文档馈送器),过滤器等。
现在,我需要使用我的扫描仪(富士通)的双面打印器。
我正在尝试将WIA_DPS_DOCUMENT_HANDLING_SELECT扫描器属性设置为双工值。请参见以下代码:
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);我读到了许多主题和文档,其中提到可以从扫描仪上的项中获取子对象,但此集合中只有一个项。
快来人救救我!
谢谢
发布于 2011-09-28 16:57:01
我读过这样一个例子,你传输第一个图像,第二个图像使用相同的引用,所以你只需调用第一行代码两次。这似乎有点奇怪,但与我的双面扫描仪之一工作。
例如:
imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);
imgFile2 = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);这可能对你有用。我也遇到了双面扫描的问题,但我设法让这与我的扫描仪之一工作。
https://stackoverflow.com/questions/4032058
复制相似问题