Внешняя компонента Native для создания штрих кода (GS1 DataBar Expanded, GS1 DataBar Expanded Stacked и другие)

Программирование - Внешние компоненты

ВК Native GS1 DataBar Extended Stacked QRCode ШК Штрихкод Меркурий

11
В связи с внедрением ГИС Меркурий потребовалось внешняя компонента, которая создает штрихкод и отдает 1С. ВК создана на основе библиотеки zint www.sourceforge.net/projects/zint.

Использование:

Создание картинки штрих кода различных типов в  формате BMP

1

Code 11

2

Standard Code 2 of 5

3

Interleaved 2 of 5

4

Code 2 of 5 IATA

6

Code 2 of 5 Data Logic

7

Code 2 of 5 Industrial

8

Code 3 of 9 (Code 39)

9

Extended Code 3 of 9 (Code 39+)

13

EAN

14

EAN + Check Digit

16

GS1-128 (UCC.EAN-128)

18

Codabar

20

Code 128 (automatic subset switching)

21

Deutshe Post Leitcode

22

Deutshe Post Identcode

23

Code 16K

24

Code 49

25

Code 93

28

Flattermarken

29

GS1 DataBar-14

30

GS1 DataBar Limited

31

GS1 DataBar Extended

32

Telepen Alpha

34

UPC A

35

UPC A + Check Digit

37

UPC E

38

UPC E + Check Digit

40

PostNet

47

MSI Plessey

49

FIM

50

LOGMARS

51

Pharmacode One-Track

52

PZN

53

Pharmacode Two-Track

55

PDF417

56

PDF417 Truncated

57

Maxicode

58

QR Code

60

Code 128 (Subset B)

63

Australia Post Standard Customer

66

Australia Post Reply Paid

67

Australia Post Routing

68

Australia Post Redirection

69

ISBN (EAN-13 with verification stage)

70

Royal Mail 4 State (RM4SCC)

71

Data Matrix ECC200

72

EAN-14

73

Vehincle Identification Number (America)

74

Codablock-F

75

NVE-18

76

Japanese Postal Code

77

Korea Post

79

GS1 DataBar-14 Stacked

80

GS1 DataBar-14 Stacked Omnidirectional

81

GS1 DataBar Expanded Stacked

82

PLANET

84

MicroPDF417

85

USPS OneCode

86

Plessey Code

87

Telepen Numeric

89

ITF-14

90

Dutch Post KIX Code

92

Aztec Code

93

DAFT Code

97

Micro QR Code

98

HIBC Code 128

99

HIBC Code 39

102

HIBC Data Matrix ECC200

104

HIBC QR Code

106

HIBC PDF417

108

HIBC MicroPDF417

112

HIBC Aztec Code

115

DotCode

116

Han Xin (Chinese Sensible) Code

121

Royal Mail 4-State Mailmark

128

Aztec Runes

129

Code 32

130

Composite Symbol with EAN linear component

131

Composite Symbol with GS1-128 linear component

132

Composite Symbol with GS1 DataBar-14 linear component

133

Composite Symbol with GS1 DataBar Limited component

134

Composite Symbol with GS1 DataBar Extended component

135

Composite Symbol with UPC A linear component

136

Composite Symbol with UPC E linear component

137

Composite Symbol with GS1 DataBar-14 Stacked component

138

Composite Symbol with GS1 DataBar-14 Stacked Omnidirectional component

139

Composite Symbol with GS1 DataBar Expanded Stacked component

140

Channel Code

141

Code One

142

Grid Matrix

143 UPNQR (Univerzalni Plačilni Nalog QR)

 

Методы:

ТипШК(<Число>) - устанавливает значение типа штрих кода из таблицы выше;

ОтображатьТекст(<Число>) - устанавливает признак отображения текста под шк (необязательно, возможные значения 0 или 1)

ПолучитьШК(<Строка>) - передает данные для генерации картинки ШК, возвращает картинку в кодировке base64 (контрольный символ добавляется автоматически, идентификаторы необходимо выделять символами [ и ], пример [01]04600000000001[11]180406[17]181005[3103]010000[10]1976839[21]12191715)

Сообщения об ошибках выводятся НЕ цензурно, писали очень быстро)))

Пример кода:  

Приложение = Новый("AddIn.Window.AddIn1CBarcodeGenerator");
Приложение.ТипШК(31);
Приложение.ОтображатьТекст(1);
    
СтрокаBase64 = Приложение.ПолучитьШК("[01]04600000000001[11]180406[17]181005[3103]010000[10]1976839[21]12191715");

КартинкаШК = Новый Картинка(Base64Значение(СтрокаBase64)); 

Вам, пригодился компонента? Можете отблагодарить - яндекс деньги 41001303428250

08.05.2018

Добавлены методы:
- Повернуть(<угол поворота>) - устанавливает угол поворота ШК (90, 180, 270)
- ШиринаШК(<количество колонок>) только для GS1 DataBar Expanded Stacked
 Исправлены мелкие недочеты.

 

11

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

Наименование Файл Версия Размер
Пример обработки
.epf 540,56Kb
08.05.18
49
.epf 540,56Kb 49 Скачать
Внешняя компонента Native для создания штрих кода (GS1 DataBar Expanded, GS1 DataBar Expanded Stacked и другие):
.zip 507,13Kb
27.04.18
51
.zip 507,13Kb 51 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. gfoods 27.04.18 17:06 Сейчас в теме
Добрый день. А как эту библиотеку устанавливать/регистрировать?
2. artmaks1988 11 27.04.18 17:27 Сейчас в теме
(1) Добрый день. Устанавливать не нужно, при начале работы с ВК используйте метод
ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>) 
и далее по примеру
Приложение = Новый("AddIn.Window.AddIn1CBarcodeGenerator");
Приложение.ТипШК(31);
Приложение.ОтображатьТекст(1);
    
СтрокаBase64 = Приложение.ПолучитьШК("[01]04600000000001[11]180406[17]181005[3103]010000[10]1976839[21]12191715");

КартинкаШК = Новый Картинка(Base64Значение(СтрокаBase64)); 
3. bigxot 27.04.18 17:34 Сейчас в теме
(1)Это NativeAPI компонента, можно добавить в макет, как это сделано в примере обработки.

Для тестирования можно взять из архива DLL и в функции ПодключитьВнешнююКомпоненту просто использовать путь к DLL
4. gfoods 27.04.18 17:46 Сейчас в теме
Скачал пример обработки, запустил. Она написала компонента зарегистрирована. Пытаюсь сгенерить EAN-13, выходит ошибка (в приложении)
Прикрепленные файлы:
6. artmaks1988 11 27.04.18 17:51 Сейчас в теме
(4)Для Типа ШК EAN 13 контрольный символ определится автоматически, поэтому его вносить не нужно
7. artmaks1988 11 27.04.18 17:52 Сейчас в теме
(4)Повторно откройте обработку.
5. artmaks1988 11 27.04.18 17:49 Сейчас в теме
Повторно откройте обработку.
8. user687869_ip.kolotei 08.05.18 13:26 Сейчас в теме
А как в "GS1 DataBar Expanded Stacked" задать количество строк? Автоматом формируется 5, а требуется 2.
artmaks1988; +1 Ответить
9. shurikvz 08.05.18 13:49 Сейчас в теме
Скажите
1) Какая версия zint используется?
2) есть ли возможность задавать угол поворота
3) присоединяюсь к (8). Только в zint задается не количество строк, а количество колонок, на основании которого оно само разбивает по строкам. В общем - есть ли возможность задать остальные параметры доступные zint?
11. bigxot 10.05.18 06:30 Сейчас в теме
(9) Версия 2.4.2. Запрошенные функции добавил, Артем протестировал. Исправил пару мелких недочетов.
artmaks1988; +1 Ответить
13. shurikvz 10.05.18 12:09 Сейчас в теме
(11) 2.4.2 немного старовата конечно, они там мучались с matrix code. Спасибо, потестирую.
16. bigxot 10.05.18 16:58 Сейчас в теме
(13)Как оказалось не только с Matrix code в версии 2.4.2 был косяк и с Expanded Stacked, обновил версию либы до 2.6.3. Артем ниже образец ШК прислал, должно быть все гут
artmaks1988; +1 Ответить
14. shurikvz 10.05.18 13:29 Сейчас в теме
(11) чет не то. У меня не читается сканером Expanded Stacked сформированный вашей ВК. Со стандартного zint - все нормально, с ВК - не хочет.

Параметры:
ВнешняяКомпонента.ТипШК(81);
ВнешняяКомпонента.Повернуть(0);
ВнешняяКомпонента.ШиринаШК(3);
СтрокаBase64 = ВнешняяКомпонента.ПолучитьШК("[02]04604395000025[3103]001800[37]10[11]180511[17]180710[10]110518[21]1");
Прикрепленные файлы:
Этикетка пример.pdf
15. artmaks1988 11 10.05.18 16:49 Сейчас в теме
(14) Проверьте штрихкод во вложении. Если все хорошо, то обновим публикацию и отправлю новую ВК.
Прикрепленные файлы:
Тест штрихкод.pdf
17. shurikvz 11.05.18 09:29 Сейчас в теме
(15) Да, штрихкод из вложения читается.
10. bigxot 08.05.18 18:41 Сейчас в теме
Добрый день, постараемся добавить нужные функции сегодня-завтра. Нам они не пригодились.
artmaks1988; +1 Ответить
12. user687869_ip.kolotei 10.05.18 09:02 Сейчас в теме
18. shurikvz 11.05.18 11:45 Сейчас в теме
Скажите, такой вопрос: вы формируете картинку в формате bmp. Это технически сложно доработать, чтобы формировать ее в png? В идеале - настраиваемо конечно чтобы было. zint то так может (ключ --filetype).
Обоснование: попробуйте сформировать табличный документ например с 250 штрихкодами. Формат bmp долго обрабатывается (имею ввиду преобразование данных из строки base64 + вывод итогового табличного документа).
19. artmaks1988 11 11.05.18 13:23 Сейчас в теме
(18) Такой настройки нет и не будет
shurikvz; +1 Ответить
20. bigxot 11.05.18 13:24 Сейчас в теме
(18)zint данные в разном формате может писать только в файл. В буфере он хранит только bitmap
shurikvz; +1 Ответить
21. mih_mah 25.05.18 16:41 Сейчас в теме
Обработка супер, библиотеку регить отдельно не нужно, все отлично. Только подскажите пож, как задать высоту самого ШК, а не высоту рисунка? а то получается, что рисунок большой, а сам ШК по высоте низкий и получается мелким в центре этикетки 58х60.
Прикрепленные файлы:
22. artmaks1988 11 25.05.18 20:47 Сейчас в теме
(21) в самой компоненте нет параметра высоты, но можно установить у рисунка свойство растянуть
23. Пчелкин 4 01.06.18 16:55 Сейчас в теме
Компонента, безусловно, полезная. Большое спасибо.
А есть ли возможность избавиться от скабрезностей в сообщениях?
24. user977385 14.06.18 13:18 Сейчас в теме
Здравствуйте. При запуске пишет "Установка внешней компоненты не выполнена! В процессе установке произошла ошибка! Возможно, отсутсвует компонента для используемого клиентского приложения", подскажите в чем ошибка платформа 8.3.10
25. user977385 14.06.18 13:44 Сейчас в теме
Система 64 битная, эта библиотека работает только в x86?
28. artmaks1988 11 14.06.18 19:45 Сейчас в теме
(25) работает 64 битной системе, но не 64 битной платформе 1с
26. Misha_J 78 14.06.18 16:33 Сейчас в теме
Компонента не выводит текст при выборе ТипаШК: 81 GS1 DataBar Expanded Stacked. Это фича, или баг?
27. shurikvz 14.06.18 19:42 Сейчас в теме
29. Misha_J 78 15.06.18 08:02 Сейчас в теме
(27) А можно как-то поправить, очень ннадо!
30. artmaks1988 11 15.06.18 11:28 Сейчас в теме
(29) библиотека zint в этом типе шк не выводит текст
31. user697117_colci 21.06.18 15:37 Сейчас в теме
Здравствуйте. Она позволяет в штрихкод добавить fnc1 для GS1-128 (UCC.EAN-128), чтобы потом его можно было парсить?
33. artmaks1988 11 21.06.18 19:11 Сейчас в теме
(31)компонента сама вставляет символ FNC1 после нужных идентификаторов
35. user697117_colci 21.06.18 22:42 Сейчас в теме
(33)
При сканировании с ТСД-штрихкод распознаётся. Но, когда программно перебираю коды символов, код 29 не обнаруживается. По идее, он должен быть между тегами партии и серии. Согласно описанию gs1-128 он должен находится между тегами переменой длины. Но его там нет.
36. artmaks1988 11 22.06.18 07:46 Сейчас в теме
(35) пример кодируемого шк пришлите
37. user697117_colci 22.06.18 09:27 Сейчас в теме
(36) [01]46020140044540[11]180601[17]180716[21]123545678974460[10]2454
32. GlobalSugar 21.06.18 15:49 Сейчас в теме
Можно что-нибудь сделать с этим моментом "Сообщения об ошибках выводятся НЕ цензурно"?
34. artmaks1988 11 21.06.18 19:13 Сейчас в теме
(32) передам коллеге, исправит при возможности
38. *Stellar 25.07.18 17:08 Сейчас в теме
Если есть возможность, добавьте, пожалуйста, уровень коррекции ошибок для Micro QR/QR-кодов (Error Correction), и возможность изменить размер в пикселях ("Adjust Size To")
Заранее благодарен!

И +1 к (32)
39. *Stellar 26.07.18 08:40 Сейчас в теме
..А если ещё сделаете возможной передачу в QR код числа, то будет совсем замечательно!
На текущий момент компонента абсолютно все символы выводит в одинаковой кодировке в Micro QR/QR?
В Zint, насколько мне известно, в одинаковых размеров код может влезть разное количество латинских символов и разрядов десятичных чисел. Очевидно, это и разные объёмы информации, и было бы неплохо, если бы компонента была достаточно гибка, чтобы определять тип входящих данных, и, соответственно, определять оптимальный способ их записи в код. Так ли это?
При QR-кодировании этот момент имеет достаточно весомое значение.
40. oit39 06.09.18 11:20 Сейчас в теме
Метод "ПолучитьШК" почему-то выдает пустую строку(см.скрин)
ТипШК - 16 или 31
Что не так делаю?
Прикрепленные файлы:
41. artmaks1988 11 06.09.18 18:51 Сейчас в теме
(40)между 17 и 10 блоком должно быть 6 символов [17]180906 или вообще не должно быть
Оставьте свое сообщение