IE2017

Класс для формирования штрих-кодов при помощи свободной библиотеки Zint

Программирование - Инструментарий

Библиотека Zint позволяет формировать штрих-коды различных стандартов (более 100) в виде .png, .eps или .svg
Данный класс предназначен для того, чтобы использовать данную библиотеку под 1С 7.7

Класс имеет пока только 2 метода (их должно быть достаточно для предназначения класса):

ЗакодироватьВФайл(ЧтоКодировать, спПараметров) - представляет кодируемые данные в виде файла с изображением штрих-кода

ПерекодировкаВ_BMP(Файл, УдалятьИсходныйФайл = 1) - для перекодирования файла изображения в формат BMP - понятный объекту 1С "Картинка".

Во вложении запаковано все, что требуется - все библиотеки dll, класс и обработка для тестирования функционала.

Есть один минус у библиотеки zint.dll - она не предоставляет методов для проверки кодируемых данных ДО начала процесса кодирования. В результате этого часто возникает ситуация, когда введенные некорректные данные для выбранного стандарта штрих-кода являются некорректными, и обработка вызывает "падение" 1С.

Поэтому проверка на корректность кодируемых данных ложится на плечи программиста, который использует данный класс.

Необходимость в создании данного класса возникла из-за невозможности получать штрих-коды по стандарту "фармакод" при помощи других доступных в интернете инструментов. При помощи данного класса я решил свои проблемы.

Пользуйтесь на здоровье!

 

ЗЫ: для работы класса нужна библиотека dynwrapx.dll, которая должна быть зарегистрирована в системе (ее месторасположение не важно)!
Папка zint с файлами:     zint.dll, zlib1.dll, libpng15.dll, zint.sha1   должна находиться в папке БД, папке программы 1С либо в папке класса.
Также требуется служебная библиотека msvcrt.dll (она должны находиться в папке c:\windows\system32, если у Вас Windows установлен в папку c:\windows). Тестировал работоспособность только под Windows XP.

Все вышеуказанные библиотеки я включил в файл для скачивания.

Скачать файлы

Наименование Файл Версия Размер
Все в одном файле
.zip 1,63Mb
02.10.14
15
.zip 0.1 1,63Mb 15 Скачать

См. также

Комментарии
1. Maxim Goncharov (maxx) 608 24.04.15 20:43 Сейчас в теме
Скажите как дела с русскими буквами?
Нужны кодировки win-1251 , utf-8
2. tAndy (tandy82) 59 17.08.17 12:03 Сейчас в теме
Автор напиши пожалуйста как ты объявляешь класс ШтрихКод в DefCls. Я сделал так:
класс ШтрихКод=КлассШтрихКод@MD
{
Строка ЗакодироватьВФайл(ЧтоКодировать, спПараметров);
Строка ПерекодировкаВ_BMP(Файл, Число УдалятьИсходныйФайл = 1);
};


При запуске теста у меня выходит ошибка:
ШтрихКод::ЗарегистрироватьФункцииБиблиотек(Строка DllName=F:\!edit\za\zint\zint.dll) : Неизвестная ошибка
Враппер.Register(DllName, "ZBarcode_Create" , "r=p");
{КлассШтрихКод@MD(20) }

в чем может быть проблема?
3. Alex Melnichuk (Amel2010) 22 17.08.17 15:44 Сейчас в теме
Я давно не работаю с 7.7 и у меня не осталось этих файлов.
Помнится, я объявлял все классы без указания методов.
И "@MD" - это для классов, включенных в метаданные?

А по сути... Судя из текста модуля, который привел к ошибке, проблема возникает при регистрации враппером функции из dll (zint).
Скорее всего неправильный путь или что-то с правами.
Этот класс тестировался еще на Windows XP, когда не было заморочек с правами, как у современных ОС.
4. Сергей (Che) Коцюра (CheBurator) 3387 17.08.17 16:49 Сейчас в теме
последние версии Формекса уже содержат в себе этот zint и позволяют формировать ШК с использованием формекса
5. tAndy (tandy82) 59 18.08.17 05:04 Сейчас в теме
(3) путь правильный, пробовал указать ошибочный путь - появляется другая ошибка
проблема именно с zint.dll из вашего архива, т.к. пробовал выполнить код по найденному примеру

Враппер = СоздатьОбъект("DynamicWrapperX");
Враппер.Register("user32", "GetWindow", "i=hu", "r=h");

все работает.

windows 2003 server, я работаю под админом.
6. tAndy (tandy82) 59 18.08.17 08:59 Сейчас в теме
(4)
нашел упоминание про процедуру НарисоватьШтрихкод() в formex (http://www.forum.mista.ru/topic.php?id=788786&page=1) от Альфа
но не нашел информацию о ней в последней документации, скаченной с сайта dorex.pro
7. Alex Melnichuk (Amel2010) 22 18.08.17 11:01 Сейчас в теме
8. tAndy (tandy82) 59 18.08.17 19:33 Сейчас в теме
(7)
я уже разобрался по ссылки с мисты: там была эта ссылка + от Альфа был выложен архив с formex с обновленной документацией в als (может кому понадобится, прикрепил доку к данному сообщению).

Вообще конечно странно что Альф на dorex.pro не выкладывает обновление документации по formex
Прикрепленные файлы:
FormEx.als
Оставьте свое сообщение