Установите размер страницы с помощью WIA (со сканером)
-
20-09-2019 - |
Вопрос
Я использую WIA для получения изображений со сканера с помощью C #.Я могу отсканировать документы, но я не могу правильно настроить размер страницы, по умолчанию он всегда равен A4, и иногда мне нужно использовать Letter или Legal.
Я пробовал использовать свойство WIA_DPS_PAGE_SIZE, но когда я пытаюсь установить значение, я всегда получаю сообщение об ошибке, что значение выходит за пределы интервала (перепробовал множество возможных значений).
Я не хочу иметь возможность использовать WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (для автоматического размера страницы), но я не могу найти в Интернете ничего, связанного с этим.
Кто-нибудь знает решение?Спасибо!
Решение
Я знаю, что, вероятно, уже слишком поздно, чтобы действительно помочь вам в этом, но это может пригодиться для дальнейшего использования.Чтобы изменить свойства сканируемых элементов, используйте такой код:
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.