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

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

В связи с внедрением ГИС Меркурий потребовалось внешняя компонента, которая создает штрихкод и отдает 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
 Исправлены мелкие недочеты.

 

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

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

См. также

Комментарии
1. Андрей Титов (gfoods) 27.04.18 17:06 Сейчас в теме
Добрый день. А как эту библиотеку устанавливать/регистрировать?
2. Артем Максименко (artmaks1988) 4 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. Kirill Sautin (bigxot) 27.04.18 17:34 Сейчас в теме
(1)Это NativeAPI компонента, можно добавить в макет, как это сделано в примере обработки.

Для тестирования можно взять из архива DLL и в функции ПодключитьВнешнююКомпоненту просто использовать путь к DLL
4. Андрей Титов (gfoods) 27.04.18 17:46 Сейчас в теме
Скачал пример обработки, запустил. Она написала компонента зарегистрирована. Пытаюсь сгенерить EAN-13, выходит ошибка (в приложении)
Прикрепленные файлы:
6. Артем Максименко (artmaks1988) 4 27.04.18 17:51 Сейчас в теме
(4)Для Типа ШК EAN 13 контрольный символ определится автоматически, поэтому его вносить не нужно
7. Артем Максименко (artmaks1988) 4 27.04.18 17:52 Сейчас в теме
(4)Повторно откройте обработку.
5. Артем Максименко (artmaks1988) 4 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. Kirill Sautin (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. Kirill Sautin (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) 4 10.05.18 16:49 Сейчас в теме
(14) Проверьте штрихкод во вложении. Если все хорошо, то обновим публикацию и отправлю новую ВК.
Прикрепленные файлы:
Тест штрихкод.pdf
17. shurikvz 11.05.18 09:29 Сейчас в теме
(15) Да, штрихкод из вложения читается.
10. Kirill Sautin (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) 4 11.05.18 13:23 Сейчас в теме
(18) Такой настройки нет и не будет
shurikvz; +1 Ответить
20. Kirill Sautin (bigxot) 11.05.18 13:24 Сейчас в теме
(18)zint данные в разном формате может писать только в файл. В буфере он хранит только bitmap
shurikvz; +1 Ответить
21. Михаил Епифанов (mih_mah) 25.05.18 16:41 Сейчас в теме
Обработка супер, библиотеку регить отдельно не нужно, все отлично. Только подскажите пож, как задать высоту самого ШК, а не высоту рисунка? а то получается, что рисунок большой, а сам ШК по высоте низкий и получается мелким в центре этикетки 58х60.
Прикрепленные файлы:
22. Артем Максименко (artmaks1988) 4 25.05.18 20:47 Сейчас в теме
(21) в самой компоненте нет параметра высоты, но можно установить у рисунка свойство растянуть
Оставьте свое сообщение