【问题标题】:Set page size using WIA (with scanner)使用 WIA 设置页面大小(带扫描仪)
【发布时间】:2011-01-15 18:49:10
【问题描述】:

我正在使用 WIA 从带有 C# 的扫描仪获取图像。我可以扫描文件,但无法正确设置页面尺寸,它始终默认为 A4,有时我需要使用 Letter 或 Legal。

我尝试使用 WIA_DPS_PAGE_SIZE 属性,但是当我尝试设置一个值时,我总是收到一个错误,即该值超出了区间(尝试了很多可能的值)。

我无法使用 WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO(用于自动页面大小),但我在网络上找不到与此相关的任何内容。

有人知道解决办法吗?谢谢!

【问题讨论】:

    标签: c# .net wia image-scanner page-size


    【解决方案1】:

    我知道这可能为时已晚,无法真正帮助您,但它可能会变得很方便以供将来参考。要更改扫描项目的属性,请使用以下代码:

    WIA.CommonDialog wiaDlg;
    WIA.Device wiaDevice;
    WIA.DeviceManager wiaManager = new DeviceManager();
    
    wiaDlg = new WIA.CommonDialog();
    wiaDevice = wiaDlg.ShowSelectDevice(WiaDeviceType.ScannerDeviceType, false, false);
    
    foreach (WIA.Item item in wiaDevice.Items)
    {
        StringBuilder propsbuilder = new StringBuilder();
    
        foreach (WIA.Property itemProperty in item.Properties)
        {
            IProperty tempProperty;
            Object tempNewProperty;
    
            if (itemProperty.Name.Equals("Horizontal Resolution"))
            {
                tempNewProperty = 75;
                ((IProperty)itemProperty).set_Value(ref tempNewProperty);
            }
            else if (itemProperty.Name.Equals("Vertical Resolution"))
            {
                tempNewProperty = 75;
                ((IProperty)itemProperty).set_Value(ref tempNewProperty);
            }
            else if (itemProperty.Name.Equals("Horizontal Extent"))
            {
                tempNewProperty = 619;
                ((IProperty)itemProperty).set_Value(ref tempNewProperty);
            }
            else if (itemProperty.Name.Equals("Vertical Extent"))
            {
                tempNewProperty = 876;
                ((IProperty)itemProperty).set_Value(ref tempNewProperty);
            }
        }
    
        image = (ImageFile)item.Transfer(WIA.FormatID.wiaFormatPNG);
    }
    

    这意味着扫描文档的尺寸为 A4,尺寸为 619 x 876。

    【讨论】:

    • 你不需要 propsbuilder 和 tempProperty 吧?感谢您的解决方案:)
    • @César 啊,没错,这不是必需的。哇,自从我发布答案以来,你是 9 年来第一个注意到的人 :)
    • 我将垂直范围更改为扫描 1500 像素的长度,但扫描仍停留在 A4 尺寸(876 像素)。将水平和垂直分辨率更改为 300。
    猜你喜欢
    • 2011-04-05
    • 2011-12-18
    • 1970-01-01
    • 2012-03-01
    • 2017-05-05
    • 2012-02-07
    • 2016-12-01
    • 2011-05-20
    • 2015-12-18
    相关资源
    最近更新 更多