문서의 한 면만 스캔 할 수 있지만 두 번째면은 스캔 할 수 없습니다. Wia Leadtools를 사용하여 양면 스캔을 수행하는 데 필요한 설정은 무엇입니까?Leadtools WIA를 사용하여 문서의 양면을 스캔해야합니다.
WiaAcquireFlags flags = WiaAcquireFlags.None;
bool showProgress = true;
_progressDlg = new ProgressForm("Transferring", "", 100);
_wiaAcquiring = true;
if (_showUserInterface)
{
flags = WiaAcquireFlags.UseCommonUI | WiaAcquireFlags.ShowUserInterface;
}
else
{
if (SelectAcquireSource() != System.Windows.Forms.DialogResult.OK)
{
_wiaAcquiring = false;
return;
}
}
if (_showUserInterface && _wiaVersion == WiaVersion.Version2)
showProgress = false;
if (showProgress)
_progressDlg.Show();
_wiaSession.AcquireOptions = _wiaAcquireOptions;
_transferMode = (_wiaProperties.DataTransfer.TransferMode == WiaTransferMode.None) ? WiaTransferMode.Memory : _wiaProperties.DataTransfer.TransferMode;
//#if !LEADTOOLS_V19_OR_LATER
System.Windows.Forms.DialogResult dialogResult = _wiaSession.Acquire(mainWindowHandle, _sourceItem, flags);
업데이트 코드 :, 나는 "LEADTOOLS 지원"의 대답에 따라 코드를 업데이트하지만 여전히 페이지의 1 개면을 스캔하는 중입니다.
public void Scan()
{
...
...
...
object rootItem = _wiaSession.GetRootItem(null);
if (rootItem != null)
{
wiaSession.EnumItemsEvent += new EventHandler<WiaEnumItemsEventArgs> (wiaSession_EnumItemsEvent);
wiaSession.EnumChildItems(rootItem);
wiaSession.EnumItemsEvent -= new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent);
wiaSession.AcquireOptions = _wiaAcquireOptions;
transferMode = (_wiaProperties.DataTransfer.TransferMode == WiaTransferMode.None) ? WiaTransferMode.Memory : _wiaProperties.DataTransfer.TransferMode;
//#if !LEADTOOLS_V19_OR_LATER
System.Windows.Forms.DialogResult dialogResult = _wiaSession.Acquire(mainWindowHandle, _sourceItem, flags);
...
...
...
}
public void wiaSession_EnumItemsEvent(object sender, WiaEnumItemsEventArgs e)
{
if (e.Item != null)
{
WiaProperties wiaProperties = _wiaSession.GetProperties(e.Item);
if (System.Windows.Forms.MessageBox.Show("Enable duplex?", "WIA test", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
wiaProperties.ScanningMode = WiaScanningModeFlags.Feeder | WiaScanningModeFlags.Duplex;
wiaProperties.MaximumNumberOfPages = 2;
}
else
{
wiaProperties.ScanningMode = WiaScanningModeFlags.Feeder | WiaScanningModeFlags.FrontOnly;
wiaProperties.MaximumNumberOfPages = 1;
}
wiaSession.SetProperties(e.Item, wiaProperties);
}
}
참고 :
- 나는 코드를 디버깅하고 그것은 wiaSession_EnumItemsEvent
의 속성을 설정합니다 - 그것은 "이중 사용"에서 요청하면, 내가 예를 클릭
- 속성
을 설정하는 코드를 디버깅의 추가 스크린 샷 - 나는 양쪽에서 스캔 할 공급기에 1 매의 용지를
답변에 따라 코드가 업데이트되었지만 여전히 문서의 한 면만 스캐닝하고 있습니다. 내가 누락 된 부분을 코드로 들여다 볼 수 있습니까? –
WIA 버전 1.0 또는 2.0을 사용하고 있습니까? Capabilities 메뉴에서 WIA 데모를 실행하고 "Show supported capabilities ..."를 선택하면 그 안에 트리 뷰가있는 "Select Item"대화 상자가 나타 납니까? 트리의 각 항목에 대해 나열된 기능은 무엇입니까? –
_wiaSession.Startup (WiaVersion.Version2); –