С версией FastReport VCL 2021.2 был добавлен новый штрих-код ITF-14. Напомню, что ITF-14 (Interleaved Two of Five) - это двухполосный числовой код, по-другому код высокой плотности, который может кодировать только числа в чётном количестве. Каждый такой штрих-код кодирует нечётную цифру темной линией и чётную цифру - пробелом между ними. Чтобы закодировать нечётное число цифр, вы должны дополнить самую левую (старшую) цифру нулем. Больше теории о ITF-14 можно почитать в другой нашей статье.
Не так давно нашими пользователями были найдены не критичные ошибки, тем не менее, иногда мешавшие использованию в работе штрих-кода. Исправления уже имеются в общем доступе. Данная статья должна помочь пользователям, которые ещё не заметили ошибок, а также познакомит с особенностями реализации в нашем продукте.
Было замечено, что при некоторых условиях под штрих-кодом могли выводиться неверные цифры. А также штрихи выходили за границы рамки снизу.
Эти ошибки уже исправлены и если вы используете в своих проектах ITF-14, то мы настоятельно советуем вам обновить FastReport до последней версии.
А теперь перейдем к особенностям.
У данного штрих-кода рамка является обязательной, так как она прописана в спецификации, поэтому возможности полностью её отключить или сильно изменить не будет. Но изменить её всё же можно.
Во-первых, можно отключить боковые линии, включив свойство TestLine.
Во-вторых можно изменить толщину встроенной рамки, изменив Frame->Width. Это свойство будет работать даже если внешняя рамка отключена.
Дополнительно можно включить и настроить общую внешнюю рамку, используя свойство Frame. Принцип точно такой же, как и у любого другого объекта в отчёте, а после у штрихкода будет сразу 2 рамки, причём, внешняя более богата в возможностях оформления.
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 несомненно является одним из самых часто используемых штрих-кодов. При возникновении ошибок или вопросов вы можете написать нам в Поддержку.