Работа и тонкая настройка штрих-кода ITF-14 в Delphi / Lazarus

07.09.2021

ITF-14

С версией FastReport VCL 2021.2 был добавлен новый штрих-код ITF-14. Напомню, что ITF-14 (Interleaved Two of Five) - это двухполосный числовой код, по-другому код высокой плотности, который может кодировать только числа в чётном количестве. Каждый такой штрих-код кодирует нечётную цифру темной линией и чётную цифру - пробелом между ними. Чтобы закодировать нечётное число цифр, вы должны дополнить самую левую (старшую) цифру нулем. Больше теории о ITF-14 можно почитать в другой нашей статье.

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

Было замечено, что при некоторых условиях под штрих-кодом могли выводиться неверные цифры. А также штрихи выходили за границы рамки снизу.

Исправленный штрих-код

Эти ошибки уже исправлены и если вы используете в своих проектах ITF-14, то мы настоятельно советуем вам обновить FastReport до последней версии.

А теперь перейдем к особенностям.

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

Во-первых, можно отключить боковые линии, включив свойство TestLine.

ITF-14 без боковых линий

Во-вторых можно изменить толщину встроенной рамки, изменив Frame->Width. Это свойство будет работать даже если внешняя рамка отключена.

Изменение толщины встроенной рамки

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

Пример двух рамок на одном штрих-коде

Создание штрих-кода ITF-14 из кода в Delphi / Lazarus

procedure TForm1.Button1Click(Sender: TObject);
 var bc: TfrxBarcodeView;
begin
 bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1'));
 {Устанавливаем тип штрихкода}
 bc.BarType := bcCode_ITF_14;
 {Устанавливаем фиксированное значение штрихкода}
 bc.Text := '12345678912345';
 {Устанавливаем масштаб, в котором будет отображаться штрихкод}
 bc.Zoom := 2;
 {Устанавливаем угол поворота штрихкода. Может принимать значения 0, 90, 180, 270}
 bc.Rotation := 0;
 {Устанавливаем, нужно ли устанавливать ширину штрихкода в зависимости от его содержимого.}
 {При значении False Zoom будет принимать такое значение, чтобы ширина штрихкода оставалась фиксированной}
 bc.AutoSize := True;
 {Устанавливаем цвет фона штрихкода}
 bc.Color := clNone;
 {Устанавливаем цвет линий штрихкода}
 bc.ColorBar := clBlack;
 {Устанавливаем, нужно ли отображать текст внизу штрихкода}
 bc.ShowText := True;
 {Устанавливаем ширину внутренней рамки}
 bc.Frame.Width := 3;
 {Настройка внешней рамки}
 {Устанавливаем отображение внешних рамом со всех сторон}
 bc.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom];
 {Устанавливаем ширину левой рамки}
 bc.Frame.LeftLine.Width := 5;
 {Устанавливаем цвет левой рамки}
 bc.Frame.LeftLine.Color := clRed;
 {Устанавливаем стиль левой рамки}
 bc.Frame.LeftLine.Style := fsDashDotDot;
 {Копируем настройки левой рамки в правую рамку}
 bc.Frame.RightLine.Assign(bc.Frame.LeftLine);
 {Копируем настройки левой рамки в верхнюю рамку}
 bc.Frame.TopLine.Assign(bc.Frame.LeftLine);
 {Копируем настройки левой рамки в нижнюю рамку}
 bc.Frame.BottomLine.Assign(bc.Frame.LeftLine);
 frxReport1.ShowReport();
end;

ITF-14 несомненно является одним из самых часто используемых штрих-кодов. При возникновении ошибок или вопросов вы можете написать нам в Поддержку

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.