小编Tho*_*røm的帖子

带自动文档传送器(ADF)的C#WIA仅在某些扫描仪上重新调整一页

我有一台HP Scanjet 7000(双面和ADF扫描仪)和一台HP Scanjet 5500c(仅限ADF)以及我正在开发的扫描仪程序,该程序在Windows 7上使用WIA 2.0.

问题是代码在较旧的扫描仪模型上完美运行,但在较新的代码上,代码似乎在第一页运行得很好,然后在第二页上运行失败.如果我绕过以下行的代码;

image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatTIFF, false);
Run Code Online (Sandbox Code Playgroud)

旧扫描仪停止并等待在同一参考上进行另一次调用,但是较新的扫描仪只能在一次连续操作中从进纸器运行所有页面.

我注意到如果我在Windows 7中使用默认扫描程序,则较新的一个会返回一个包含所有单独页面的.tif文件.较旧的文件返回单独的.jpg文件(每页一个).

这向我表明,较新的扫描仪在准备好返回图像集之前扫描其整个进纸器,其中较旧的扫描仪在每个扫描的页面之间返回一个图像.

我如何在代码中支持这种行为?以下是适用于旧扫描仪型号的相关代码的一部分:

public static List<Image> Scan(string scannerId)
    {
        List<Image> images = new List<Image>();
        List<String> tmp_imageList = new List<String>();

        bool hasMorePages = true;
        bool useAdf = true;
        bool duplex = false;

        int pages = 0;

        string fileName = null;
        string fileName_duplex = null;

        WIA.DeviceManager manager = null;
        WIA.Device device = null;
        WIA.DeviceInfo device_infoHolder = null;
        WIA.Item item = null;
        WIA.ICommonDialog wiaCommonDialog = null;

        manager = …
Run Code Online (Sandbox Code Playgroud)

wia image scanning

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

image ×1

scanning ×1

wia ×1