Advertisement
AlexVhr

Сканирование изображений из 1С 7.7 через WIA

Nov 16th, 2012
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. Процедура Сканировать(ИмяФайла)
  2.  
  3. перем ч,м,с;
  4.  
  5. wiaFormatGIF="{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}";
  6. wiaFormatJPEG="{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
  7. wiaFormatTIFF="{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}";
  8. wiaFormatPNG="{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
  9.  
  10. Попытка
  11. DevMan=CreateObject("WIA.DeviceManager");
  12. Исключение
  13. Предупреждение("На данном компьютере не установлена библиотека wiaaut.dll. Работа со сканнером невозможна.");
  14. Возврат;
  15. КонецПопытки;
  16.  
  17. CommDlg=CreateObject("WIA.CommonDialog");
  18.  
  19. ЕстьСканнер=0;
  20. For i=1 to DevMan.DeviceInfos().Count() Do
  21. If DevMan.DeviceInfos(i).Type=1 Then
  22. //нашли сканнер. Ура.
  23. Dev=DevMan.DeviceInfos(1).Connect();
  24. ЕстьСканнер=1;
  25. Прервать;
  26. EndIf;
  27. EndDo;
  28.  
  29. Если ЕстьСканнер=0 Тогда
  30. Предупреждение("Не удалось найти сканнер.");
  31. Возврат;
  32. КонецЕсли;
  33.  
  34. МаксВысотаДм=Dev.Properties("3075").Value/1000;
  35.  
  36. DPI=300;
  37. Dev.Items(1).Properties("6146").Value = 4; //4 is Black-white,gray is 2, color 1 (Color Intent)
  38. Dev.Items(1).Properties("6147").Value = DPI; //dots per inch/horizontal
  39. Dev.Items(1).Properties("6148").Value = DPI; //dots per inch/vertical
  40. Dev.Items(1).Properties("6151").Value = 8.27 * DPI; //horizontal exent. many scanners have max size of 8.5 by 11
  41. Dev.Items(1).Properties("6152").Value = МаксВысотаДм * DPI; //vertical extent
  42.  
  43. Img=CreateObject("WIA.ImageFile");
  44. Img=CommDlg.ShowTransfer(Dev.Items(1),wiaFormatJPEG,0);
  45.  
  46. //конверсия в GIF...
  47. IP = CreateObject("Wia.ImageProcess");
  48. IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
  49. IP.Filters(1).Properties("FormatID").Value = wiaFormatGIF;
  50. Img = IP.Apply(Img);
  51.  
  52. Img.SaveFile(ИмяФайла);
  53.  
  54. КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement