Штрихкод в Excel Code 128

Опубликовано: 11 Октябрь 2024
на канале: Павел Тарануха
11,049
318

Штрихкод Code 128

К видео с ценниками (   • Ценники своими руками бесплатно  ) коллеги справедливо заметили, что если просто сделать шрифт Code 128 - этого недостаточно для того чтобы сканер этот штрихкод прочел.
Я конечно заподозрил, что здесь чтото не чисто и проверил.

Проверка и дальнейший разбор подтвердил, что не чисто там всё.
Как оказалось штрихкоду недостаточно выглядеть, как штрих-код. Ему помимо кодируемой информации оказывается нужен еще и стартовый символ, контрольный ключ и закрывающий символ.

Все мануалы ведут на формирование каких-то картинок методом родов ежа, либо вовсе являются платными и тоже выдают картинки.

Был момент слабости и мысль "взять и забить" но нет.
Вот этот пост придал мне силы: https://blogs.klerk.ru/users/1911762/...
В деле мне помог шрифт, взятый здесь: https://ru.fonts2u.com/code-128.%D1%8...

И, спустя 1000 нецензурных слов, десятка чашек кофе и 12 часов времени мне таки удалось победить этого страшного дракона.
Функция заняла всего 8 строчек кода.

'Замените надпись "больше или равно" на соответствующие символы.
Отдельное СПАСИБО пользователю Александр (он в закрепленном комментарии) за зоркий глаз, светлый ум и внесенные корректировки.
Function Code128(Str As String)
cs = 104
For i = 1 To Len(Str)
s = Asc(Mid(Str, i, 1))
cs = cs + (s + IIf(s БОЛЬШЕ= 32, -32, 64)) * i
Next i
sh = cs Mod 103
sh = sh + IIf(sh БОЛЬШЕ 94, 100, 32)
Code128 = ChrW(204) & Str & ChrW(sh) & ChrW(206)
End Function