Публикация закрывает вопрос с формированием и печатью Code 128 с помощью шрифта.
На данный момент в сети много подобных обработок, но мне не удалось найти то, что бы меня устроило с точки зрения происхождения шрифтов и реализации так, чтобы просто это взять и использовать в своих доработках.
1. Шрифты
Вместе с обработкой приложен комплект шрифтов, взятых из открытого репозитория https://github.com/Holger-Will/code-128-font по лицензии OPEN FONT LICENSE.
Также может быть использован шрифт https://fonts.google.com/specimen/Libre+Barcode+128 https://github.com/graphicore/librebarcode
2. Кодировщик
Прилагаемый кодировщик совместим с этими шрифтами и использует маппинг кодов на символы шрифта по варианту "Common". См. таблицу Code 128 https://en.wikipedia.org/wiki/Code_128
Кодируются символы Набора B с динамическим переходом на Набор C для оптимизации длины штрихкода. Набор B:
Символы пунктуации: !"#$%&'()*+,-./:;<=>?@[]\^_
Дополнительные символы: `{|}~
Цифры: 0..9
Заглавные буквы: A..Z
Малые буквы: a..z
Сам алгоритм был реализован по рекомендациям ГОСТ ISO/IEC 15417-2013 "Приложение Е (справочное). Использование знаков Start, Code и Shift для минимизации длины символа". Для желающих разобраться в коде есть комментарии.
Для использования в своих доработках нужно взять код из #Область КодированиеCODE128 и вызывать функцию СтрокаCODE128.
Обработка протестирована на релизе платформы 8.3.14.1854. Ограничений по релизу 8.3 нет.