gpt4 book ai didi

scanning - 无法读取通过 ADF 扫描的第二页

转载 作者:行者123 更新时间:2023-12-04 15:33:39 26 4
gpt4 key购买 nike

我有一台 Brother 多功能联网打印机/扫描仪/传真机(型号 MFC-9140CDN)。我正在尝试将以下代码与 WIA 一起使用,以检索使用文档进纸器扫描的项目:

const int FEEDER = 1;

var manager=new DeviceManager();
var deviceInfo=manager.DeviceInfos.Cast<DeviceInfo>().First();
var device=deviceInfo.Connect();
device.Properties["Pages"].set_Value(1);
device.Properties["Document Handling Select"].set_Value(1);

var morePages=true;
var counter=0;
while (morePages) {
counter++;
var item=device.Items[1];
item.Properties["Bits Per Pixel"].set_Value(1);
item.Properties["Horizontal Resolution"].set_Value(300);
item.Properties["Vertical Resolution"].set_Value(300);

var img=(WIA.ImageFile)item.Transfer();
var path=String.Format(@"C:\Users\user1\Documents\test_{0}.tiff",counter);
img.SaveFile(path);

var status=(int)device.Properties["Document Handling Status"].get_Value();
morePages = (status & FEEDER) > 0;
}

Transfer方法第一次到达时,所有页面都通过文档进纸器。第一页保存为 img.SaveFile到传入的路径,但所有后续页面都不可用 - device.Items.Count是 1,正在尝试 device.Items[2]引发异常。

在下一次迭代中,调用 Transfer引发异常 - 可以理解,因为现在进纸器中没有页面。

如何获取已扫描到进纸器中的后续图像?

(注意,遍历所有设备属性,还有一个附加的未命名属性,其 ID 为 38922。我找不到对此属性的任何引用。)

更新

我在与 WIA_IPS_SCAN_AHEAD 对应的设备上找不到属性或 WIA_DPS_SCAN_AHEAD_PAGES ,但这是有道理的,因为根据文档,此属性是可选的。

我尝试使用 TWAIN(通过我强烈推荐的 NTwain 库)遇到同样的问题。

最佳答案

我最近在 HP MFC 上遇到了类似的错误。

似乎司机正在更改一个属性。我正在开发的软件的前任开发人员每次都在 for 循环中不断重新初始化驱动程序。

在我的情况下,属性是“媒体类型”被设置为 FLATBED (0x02),即使我正在进行多页扫描并且需要它是 NEXT_PAGE (0x80)。

我发现这一点的方法是在我扫描之前存储每个属性(设备和项目属性),并在扫描第一页之后再次存储。然后我让我的应用程序打印出任何已更改的属性并能够识别我的问题。

关于scanning - 无法读取通过 ADF 扫描的第二页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com