logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Как создать штрих-коды CODE 39 и CODE 39 Extended с помощью Delphi / Lazarus
  • Создаём штрих-код ITF в Delphi / Lazarus / С++ Builder

    11 ноября 2020 г.

    Немного теории о штрих-кодах Сложно представить нашу жизнь без штрих-кодов особенно сейчас, когда мы их встречаем

    Подробнее
  • Как в Delphi / Lazarus / С++ Builder получить отчет из нескольких Баз Данных

    11 декабря 2020 г.

    Скромно отмечу, что FastReport VCL является одним из самых удобных компонентов генерации отчетности любой сложности.

    Подробнее
  • Как создать ZPL в Delphi / C++Builder / Lazarus

    22 декабря 2020 г.

    Что такое ZPL? Вообще ZPL расшифровывается как язык программирования зебр (Zebra Programming Language). Есть возможность командами

    Подробнее
  • Web-репорты в Lazarus под Linux

    15 декабря 2020 г.

    До недавнего времени задача генерации отчётов через Web из приложения, написанного на Lazarus, была, скажем

    Подробнее
  • Превращаем данные из Баз Данных в документ в Delphi / Lazarus / C++ Builder

    3 февраля 2021 г.

    Как сделать кашу из данных информативным отчетом? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird

    Подробнее

Как создать штрих-коды CODE 39 и CODE 39 Extended с помощью Delphi / Lazarus

23 октября 2020 г.

CODE 39 - это штрих-код, разработанный Intermec Corporation в 1975 году, который может содержать в себе 43 символа, включая английский алфавит, цифры, пробел и некоторые символы, а именно 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-.$/+%. Поскольку в CODE 39 есть поддержка букв, это делает его незаменимым в промышленных областях в таких, как автомобилестроение и электроника. Например, в Германии же он применяется для фармацевтических продуктов, но в основном используется для складирования. В России CODE 39 является стандартом и регламентируются ГОСТ 30742-2001 (ИСО/МЭК 16388—99) «Автоматическая идентификация. Кодирование штриховое. Спецификация символики Code 39 (Код 39)». 

Пример кодировки символов

Структура CODE 39

CODE 39 назван так из-за своей структуры, состоящей из столбцов и пробелов, причем 3 из 9 столбцов и пробелов являются широкими. Штрих-код выглядит следующим образом:

  • Одна буква (символ) представлена 9 барами и пробелами;
  • Звездочки (*) прикреплены к началу и концу штрих-кода. (старт / стоп символ);
  • Пробел между символами называется «межсимвольным пробелом или разрывом». Обычно ширина этого пространства равна ширине узкой полосы. (Максимальная ширина должна быть в 3 - 5,3 раза шире, чем у узкой полосы).

Межсимвольный разрыв

Межсимвольный разрыв

Эта таблица описывает спецификацию CODE 39. Числовое значение, присвоенное каждому символу (кроме start/stop), используется в алгоритме контрольной суммы.

Структура с контрольной суммой

CODE 39 иногда используется с дополнительной контрольной цифрой по модулю 43, код с контрольной цифрой выглядит как “CODE 39 mod 43”

А вот и сам алгоритм рассчёта контрольной суммы:
1. Возьмите значение (от 0 до 42) каждого символа в штрих-коде, исключая коды запуска и остановки.
2. Суммируйте значения.
3. Разделите результат на 43.
4. Остаток - это значение символа контрольной суммы, подлежащего добавлению.

Пример CODE 39

Code 39 Extended - это расширенная версия кода 39, поддерживающая набор символов ASCII. С ним вы сможете закодировать 128 символов: 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ !#$%&'()*+,-./:;<=>?@[\]^_` {|} abcdefg hijklmnopqrs tuvwxyz, а это 26 заглавных букв (A-Z), 26 строчных букв (a-z) и специальные символы вместе с пробелом.

Важно отметить, символы Extended Code 39 примерно в два раза длиннее стандартных символов Code 39. В соответствии с ISO 646 эти символы отображаются путем объединения двух знаков символа, первый может быть одним из четырех символов $ + % / и сопровождается одной из 26 букв. Если декодер запрограммирован с полным набором символов ASCII, то передается только эквивалент ASCII, а не комбинация знаков символа.

CODE 39 Extended также может использоваться с контрольной суммой, которая вычисляется по модулю 43, а код с контрольной цифрой выглядит как “CODE 39 EXTENDED
mod 43”.

Пример CODE 39 Extended

Наглядное сравнение CODE 39 и CODE 39 Extended

Сравним одинаковые фразы в разных баркодах. В обоих случаях в первом столбике мы не видим отличия. Но почему же нет разницы? Всё потому что символы 0123456789 ABCDEFG HIJKLMNOP QRSTUVWXYZ-.$/+% в двух штрих-кодах кодируются одинаково, но стоит заглавные буквы заменить строчными, как появляются изменения.

Пример CODE 39 и CODE 39 Extended

Повторюсь, что в CODE 39 Extended символы отображаются путем объединения двух знаков символа, первый может быть одним из четырех символов $ + % / и сопровождается одной из 26 букв.

Пример CODE 39 и CODE 39 Extended

Создание штрих-кодов в визуальном дизайнере

FastReport VCL позволяет использовать в ваших отчётах оба рассмотренных ранее типа штрих-кода. Посмотрим, как с ними работать.

В дизайнере FastReport VCL добавляем на отчёт компонент obCatBarcode и выбираем тип из предложенного списка:

 obCatBarcode

Далее мы переходим в редактор штрих-кода:

Редактор штрих-кода

Code - область для написания числового значения штрих-кода;

Type of Bar - тип штрих-кода можно изменить сразу в редакторе не добавляя на отчёт новый компонент;

Calc CheckSum- это контрольная сумма. Это свойство имеется у всех линейных штрих-кодов. Помните про “пропуск считывания”? С этим надо как-то бороться! Свойство определяет, надо ли считать контрольную сумму автоматически. Если оно отключено, контрольная сумма должна присутствовать в тексте объекта;

Zoom - задает масштабирование штрих-кода и используется только вместе со свойством "Авторазмер";

Text - включение/отключение отображения текста под штрих-кодом;

Rotation - позволяет задать поворот объекта на один из фиксированных углов – 0, 90, 180, 270 градусов.

Нажимаем на значок F(x) и попадаем в большой редактор выражений.

Подробнее ознакомиться можно самостоятельно в дизайнере FastReport VCL или в документации. Ссылка 1 и Ссылка 2

Редактор выражений


НастройкиПереходим в свойства компонента obCatBarcode.

То, что будет написано в редакторе штрих-кода в поле Code будет перенесено в поле Expression. Если Expression пустое, то отображается текст из поля Text.

Если коротко, то в Text записывается статический текст, а в Expression содержится вычисляемое выражение, в том числе значение из источника данных.

Создаём штрих-код из кода Delphi/Lazarus

CODE 39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses frxBarcod;
 
procedure TForm1.Button1Click(Sender: TObject);
var bc: TfrxBarcodeView;
begin
 bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1'));
 {Устанавливаем тип штрихкода}
 bc.BarType := bcCode39;
 {Устанавливаем фиксированное значение штрихкода}
 bc.Text := '123456';
 {Устанавливаем вычисляемое значение штрихкода}
 //bc.Expression := '<YourDatasetName."FieldName1"> + <YourDatasetName."FieldName2">';
 {Устанавливаем, нужно ли подсчитывать контрольную сумму и добавлять её в конец штрихкода}
 bc.CalcCheckSum := False;
 {Устанавливаем масштаб, в котором будет отображаться штрихкод}
 bc.Zoom := 2;
 {Устанавливаем угол поворота штрихкода. Может принимать значения 0, 90, 180, 270}
 bc.Rotation := 0;
 {Устанавливаем, нужно ли устанавливать ширину штрихкода в зависимости от его содержимого.}
 {При значении False Zoom будет принимать такое значение, чтобы ширина штрихкода оставалась фиксированной}
 bc.AutoSize := True;
 {Устанавливаем цвет фона штрихкода}
 bc.Color := clNone;
 {Устанавливаем цвет линий штрихкода}
 bc.ColorBar := clBlack;
 {Устанавливаем, нужно ли отображать тект внизу штрихкода}
 bc.ShowText := True;
 frxReport1.ShowReport();
end;

Теперь мы можем использовать штрих-код стандарта CODE 39 в своих бизнес-приложениях (кодировать не только числовые, но и алфавитные символы), например, для вывода в этикетках (в том числе, например, в формате ZPL).

О продукте Скачать Купить
avatar
Ekaterina Voytenko
Дизайн и маркетинг
Fast Reports Team: Ekaterina Voytenko - Design and Marketing at Fast Reports
VCL Lazarus Barcode FastReport 6 Delphi

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой