8.х многостраничное сканирование в 1С WIA

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Ludmillka, 18 дек 2013.

  1. TopicStarter Overlay
    Ludmillka
    Offline

    Ludmillka Опытный в 1С

    Регистрация:
    13 сен 2013
    Сообщения:
    159
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте!
    Есть следующая задача:
    Надо сканировать из 1С документы, я сканирую так по 1 странице, вот так:
    Код:
    ScannerDeviceType  = 1;
    
    // РазмерСтраницы
    РазмерГоризонтально = Окр((210 / 25.4) * 150, 0);
    РазмерВертикально  =  Окр((296 / 25.4) * 150, 0);
    
    Device = Новый COMОбъект("WIA.DeviceManager");
    DeviceInfo = Device.DeviceInfos();
    Если DeviceInfo.Count() > 0 Тогда
    Dialog = Новый COMОбъект("WIA.CommonDialog");
    objDevice = Dialog.ShowSelectDevice(ScannerDeviceType, False, False);
    
    // Настрока сканера
    Сканер = objDevice.Items(1);
    СканерПараметры = Сканер.Properties();
    СканерПараметры.Item("6146").Value = 4;		  
    // Разрешение…
    СканерПараметры.Item("6147").Value = 150;			   
    СканерПараметры.Item("6148").Value = 150;			   
    // Начало области сканирования…
    СканерПараметры.Item("6149").Value = 0;					 
    СканерПараметры.Item("6150").Value = 0;					 
    // Размер области сканирования…
    СканерПараметры.Item("6151").Value = РазмерГоризонтально;
    СканерПараметры.Item("6152").Value = РазмерВертикально;  
    
    // Инициируем начало операции сканирования
    objImageFile = Сканер.Transfer();
    
    objImageProcess = Новый COMОбъект("WIA.ImageProcess");
    ImageProcess = Новый COMОбъект("WIA.ImageProcess"); //создаем фильтр для сохранения изображения
    ImageProcess.Filters.Add(ImageProcess.FilterInfos("Convert").FilterID);
    IP1 = ImageProcess.Filters(1);
    Для К = 1 По IP1.Properties.Count Цикл
    
    Если IP1.Properties(К).Name = "FormatID" Тогда
    IP1.Properties(К).Value = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
    Прервать;
    //ИначеЕсли IP1.Properties(К).Name = "Quality" Тогда
    // IP1.Properties(К).Value = 85; // Качество изображения
    КонецЕсли;
    
    КонецЦикла;
    objImageFile = ImageProcess.Apply(objImageFile);
    
    УдалитьФайлы(ИмяФайла);
    objImageFile.SaveFile(ИмяФайла);
    
    КонецЕсли;
    
    А мне надо сканировать с лотка сканера несколько документов. Подскажите как это сделать?
    Я пока задаю пользователю каждый раз вопрос: Сканировать еще в документ, и в зависимости от ответа сканирую заново по 1 странице или прекращаю сканировать. Но это как-то очень грустно и долго.
  2. TopicStarter Overlay
    Ludmillka
    Offline

    Ludmillka Опытный в 1С

    Регистрация:
    13 сен 2013
    Сообщения:
    159
    Симпатии:
    0
    Баллы:
    26
    Может лучше вообще использовать TWAIN, отказаться от WIA, вроде там есть сканировать сразу много страниц?
Похожие темы
  1. Элио
    Ответов:
    0
    Просмотров:
    824
  2. Ludmillka
    Ответов:
    2
    Просмотров:
    1.337
Загрузка...

Поделиться этой страницей