【问题标题】:Need to scans both sides of document using Leadtools WIA需要使用 Leadtools WIA 扫描文档的两面
【发布时间】:2023-03-11 22:28:01
【问题描述】:

我只能扫描文档的一面,而不能扫描另一面。使用 Wia Leadtools 实现双面扫描需要哪些设置。

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 Support”的回答更新了代码,但它仍在扫描页面的一侧。

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 张纸

功能选项:

【问题讨论】:

    标签: c# asp.net image-scaling leadtools-sdk


    【解决方案1】:

    假设您在进纸器中有 1 张纸,扫描两面的代码需要指定 2 页,每面一个。这可以使用 WiaProperties.MaximumNumberOfPages 属性来完成。然后使用 WiaProperties.ScanningMode 属性启用双面扫描。代码如下所示:

    WiaProperties wiaProps = _wiaSession.GetProperties(wiaItem);
    if (MessageBox.Show("Enable duplex?", "WIA test", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
    {
       wiaProps.ScanningMode = WiaScanningModeFlags.Feeder | WiaScanningModeFlags.Duplex;
       wiaProps.MaximumNumberOfPages = 2;
    }
    else
    {
       wiaProps.ScanningMode = WiaScanningModeFlags.Feeder | WiaScanningModeFlags.FrontOnly;
       wiaProps.MaximumNumberOfPages = 1;
    }
    _wiaSession.SetProperties(wiaItem, wiaProps);
    

    【讨论】:

    • 我已根据您的回答更新了代码,但它仍在扫描文档的一侧。你能看看我缺少的代码吗?
    • 您使用的是 WIA 1.0 版还是 2.0 版?如果您运行我们的 WIA 演示并从“功能”菜单中选择“显示支持的功能...”,您是否会看到“选择项目”对话框,其中有一个树形视图?树中每个项目列出的功能是什么?
    • _wiaSession.Startup(WiaVersion.Version2);
    • 我为“功能选项”添加了另外两张图片
    • 在使用仅进纸器扫描仪进行测试时,我们遇到了与您类似的问题。事实证明,我们的扫描仪驱动程序需要按特定顺序设置一组属性才能启用双面扫描。确定所需属性及其顺序的一种方法是使用保证在该扫描仪上启用双面打印的方法,例如显示制造商的对话框,然后检查所有属性值。如果您需要这方面的帮助,请发送电子邮件至 support@leadtools.com,因为这可能需要多次来回发送电子邮件才能准确确定。
    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 2015-08-24
    • 2012-02-07
    • 2018-03-09
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多