Использование Zxing при чтении штрихкода с jpg файла накладной
Отменено
5 |
0
1 октября 2015 в 17:46:56
(9 лет 8 недель 2 дня назад)
13.05.2014 17:57:59
Текст задания
Есть обработка, которая считывает штрих кода с отсканированных накладных с помощью Компоненты РаспознаванияШтрихкодов. Но работает через раз. Возникла идея использовать библиотеку Zxing.
Так что требуются умелые руки, способные прикрутить Zxing к 1С.
Изначально zxing.dll не является COM-visible объектом, поэтому пришлось немного допилить ее на C#. Однако при вызове метода Decode, который должен принимать изображение типа Bitmap, 1С выдает ошибку "Типы не совпадают (0)", причем пробовал 1) передавать bmp картинку и 2) конвертировать jpg в bmp с помощью компоненты GFLAx.
Если кто делал или знает как помочь, пишите. Условия оговорим.
Есть обработка на основе консольного файла из комплекта aivision. Запускается exe файл из бинарного макета в обработке, сканирует папку с картинками сканов документов. Результат складывает в файлик, который потом анализируется в 1С. Все четко и просто работает, без всяких com компонент. Причем сам распознает, в каком месте скана штрих код, на любом угле поворота изображения. Если такой вариант устроит - могу подрихтовать под задачу
На основе проекта QZXing (порт ZXing на QT: http://sourceforge.net/projects/qzxing/) сделал простейший COM-сервер на C++, который может использоваться так:
ZXing = New COMObject ("ZXingComWrapper");
Результат = ZXing.DecodeFromFile (ИмяФайла);
Если Результат = "" Тогда
Сообщить ("Неудача");
Возврат;
КонецЕсли;
Сообщить ("Результат: " + Результат);
Отдам за 1000 р. вместе с исходниками.
А то, что выдается ошибка при передаче картинки в конвертер, вероятно, связано с тем, что передаете объект "Картинка" 1С. А его так просто передать нельзя (ИМХО). Если делать поддержку объекта "Картинка" в COM-сервере, то, наверное, просто придется вызывать метод "Записать" этого объекта и дальше работать через временный файл. Так что, лучше уж сразу работать с файлом без промежуточного объекта.