WIA 2.0ライブラリを使用するためにC#でアプリケーションを開発しています。現時点では、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;
このコードは正常にコンパイルされますが、この行を実行すると2つの画像を取得できません。フロントのみを取得します。
imgFile = (ImageFile)wiaCommonDialog.ShowTransfer(item, format.Guid.ToString("B")/* wiaFormatJPEG*/, false);
スキャナーのアイテムからChildrenオブジェクトを取得できることを多くのトピックとドキュメントで読みましたが、このコレクションにはアイテムが1つしかありません。
誰か助けてください!
ありがとう