TwainDotNet для конкретной области сканирования
В моем приложении я использую библиотеку TwainDotNet и сканирую определенную область с планшета.
public Prasymas scanForm(Prasymas prasymas, bool isItFirstScan)
{
Enabled = false;
_settings = new ScanSettings();
_settings.UseDocumentFeeder = false;
_settings.ShowTwainUI = false;
_settings.ShowProgressIndicatorUI = true;
_settings.UseDuplex = false;
_settings.Resolution =
false
? ResolutionSettings.Fax : ResolutionSettings.ColourPhotocopier;
_settings.Page = PageSettings.Default;
if (!isItFirstScan)
{
_prasymas = prasymas;
AreaSettings = new AreaSettings(Units.Centimeters, 0.0f, 0.0f, (float)(_prasymas.maxScanAukstis), 0.0f);
}
else
{
_settings.Area = !false ? null : AreaSettings;
}
_settings.ShouldTransferAllPages = true;
_settings.Rotation = new RotationSettings()
{
AutomaticRotate = false,
AutomaticBorderDetection = false
};
try
{
_twain.SelectSource();
_twain.StartScanning(_settings);
}
catch (TwainException ex)
{
if (ex.Message == "Error opening data source")
{
_twain.SelectSource();
scanForm(_prasymas, isItFirstScan);
Enabled = true;
}
else
throw ex;
}
catch (Exception exc)
{
if (exc.Message == "Pasiuto skeneris")
{
scanForm(_prasymas, true);
}
else
throw exc;
}
Enabled = true;
return prasymas;
}
но в результате, когда сканирование начинается и источником сканирования является драйвер Twain, он сканирует всю страницу, но если я выберу драйвер WIA, я получу специально выделенную область. Основная идея заключается в том, что приложение запускается в первый раз, когда оно сканирует всю страницу, в следующий раз оно сканирует только определенную высоту страницы.
1 ответ
Прочитав документацию, я узнал, что нужно просто закомментировать часть поворота, и все начало работать. Я могу сканировать выбранную область.