質問

私はC#でスキャナから画像を取得するWIAを使用しています。私は書類をスキャンすることができますが、私は正しくページサイズを設定することはできません、A4にそれは常にデフォルトと私は時々手紙や法律を使用する必要があります。

(可能な値の多くを試してみました)

私はWIA_DPS_PAGE_SIZEプロパティでみましたが、私は値を設定しようとしたとき、私は常に値が区間外であることを、エラーを取得します。

私は(自動ページサイズ用)WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTOを使用できるようにwan'tが、私はこれに関連するウェブ上で何かを見つけることができません。

誰もが解決策を知っていますか?ありがとう!

役に立ちましたか?

解決

私はこれはおそらく実際にそのお手伝いをするには遅すぎですけど、それは今後の参考のために便利になることがあります。特性はこのようなコードを使用してスキャンした項目を変更するには、次の

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。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top