在 WIA 2.0 中扫描时设置页面大小

Posted

技术标签:

【中文标题】在 WIA 2.0 中扫描时设置页面大小【英文标题】:Set page size when scanning in WIA 2.0 【发布时间】:2011-04-05 21:47:09 【问题描述】:

我有一个名片扫描仪,我正在使用 WIA 2.0 进行交互。我正在尝试在代码中设置所有内容,这样我就不必弹出任何对话框。我遇到的问题与设置扫描页面大小有关。扫描仪大约 4 英寸宽,但我无法让它扫描床最右边一英寸左右。我会设置 PAGE_SIZE 属性,但在遍历 WIA 的所有属性时看不到该属性该扫描仪(设备或项目属性)。

如果我弹出一个对话框 (ShowSelectDialog) 来选择大小,一切似乎都正常。我在该对话框之前和之后比较了 Item 和 Device 上的属性,我看到更改的唯一属性是根据 MSDN 的只读属性。 (水平和垂直大小、范围、起始位置)

关于如何修改页面大小的任何想法?

【问题讨论】:

我遇到了同样的问题 - 我无法设置水平或垂直页面大小属性,实际上只能在我选择源作为 Feeder 时使用 CommonDialog 修改它们,而不是到 FI-6230 Fujitsu 扫描仪上的平板。 【参考方案1】:

您可以尝试在 Item 属性上设置值,例如

double _width = 2; //two inches
double _height = 2; //two inches

 dynamic item = device.Items[1]; // get the first item

 int dpi = 150;

                    item.Properties["6146"].Value = 2; //greyscale
                    item.Properties["6147"].Value = dpi;
                    item.Properties["6148"].Value = dpi;
                    item.Properties["6151"].Value = (int)(dpi * _width);
                    item.Properties["6152"].Value = (int)(dpi * _height);

当我需要扫描 A3 纸时,这对我有用。

【讨论】:

你从哪里得到属性["numbers"]? 它们位于 Windows SDK 中的 WiaDef.h 文件中。您也可以改用他们的名字。

以上是关于在 WIA 2.0 中扫描时设置页面大小的主要内容,如果未能解决你的问题,请参考以下文章

使用 WIA 2.0 和 C# 扫描多页时跳过的页面

使用 C# 和 WIA 进行扫描

使用 WIA 或 TWAIN 扫描页面

WIA 2.0,我在哪里可以找到属性的有效值? C#

WIA 2.0 HP ScanJet 7650 特定问题

WIA 2.0 双面扫描