如何使用FastReport VCL生成ITF(交错,工业,矩阵)条形码
报表生成器FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。
慧都网免费下载试用版
Fastreport年终钜惠在线下单立享85折起!
关于条形码的一些理论
很难想象没有条形码的生活,尤其是现在我们在每一步都遇到了条形码。我们去电影院,门票上有这张“黑白条形图”,我们去了超市,每种产品都有条形码形式的信息。我们只能想象如果收银员在不使用扫描仪的情况下手动输入产品标识符,那么队列将是什么。此外,输入数字序列时很可能会犯错误。今天,我们将考虑各种条形码的一小部分。
ITF(五分之二的交错)或“ 5分之二”的条形码是双频带数字代码,或者是只能编码成对数字的高密度数字条形码(条形码必须具有偶数个数字!)。每个条形码图案都将条形图案中的奇数位编码,并将条形之间的间隔图案中的偶数位编码。要对奇数个数字进行编码,必须将最左边(最高有效)数字填充零。
条形码可以是可变长度的,通常不使用校验和,尽管在某些特殊情况下会使用模10校验字符。由于交错条形码Code 5 of 2不能自我检查,因此可以进行部分扫描,并且经常使用固定长度的数据字段来避免此问题。
简而言之:
- 编码纯数字数据;
- 长度是可变的,但必须具有偶数个数字;
- 校验和是可选的。
由于ITF是具有很高数据密度的条形码,因此它具有以下功能:
- 标签尺寸可以小于具有相同数字的其他代码的尺寸。在狭小的空间内打印条形码非常有效。
- 如果标签大小相同,则与其他代码相比,可以包含更多数据。(位数可以增加。)
- 如果标签尺寸和位数相同,则条形宽度可以更宽。
如果条宽度较宽,则条形码阅读器很容易读取。也可以进行远距离读取。
尽管ITF具有许多优点,但由于其组成,它也具有可能“跳过阅读”的缺点。跳过读取意味着表示“ 3852”的条形码被错误地读取为“ 38”,并且跳过了一些数字。
ITF-14和GTIN-14条形码均使用“ Interleaved 2 of 5”符号体系生成。ITF-14用于运输集装箱,基于UPC代码。通常,交错条形码印在瓦楞纸板箱上,该纸板箱包含要交付的货物,并具有以下结构:
![交éç»æ](https://www.fast-report.com/uploads/blogpost/frexport/barcode/3_Interleaved.png)
工业2 of 5由Identicon Corp.和Computer Identics Corp.在1970年开发,并积极地用于工业应用中。但是,当前未使用(某些物流应用程序除外)。Industrial 2 of 5看起来像这样,并使用5条表示一个字符。由于此代码仅将数据分配给条(而不是空格),因此其数据密度非常低:
![å·¥ä¸2ä¹5ç»æ](https://www.fast-report.com/uploads/blogpost/frexport/barcode/4_Industrial.png)
Matrix 2 of 5是Code 5 of 2符号体系的一个较高密度成员,该体系于1968年首次开发。它主要用于仓库分类和照片处理。“ 5之2”的名称源于以下事实:用于编码每个字符的5个元素(条和空格)中,两个宽且三个窄。
![ç©éµç»æ](https://www.fast-report.com/uploads/blogpost/frexport/barcode/5_matrix.png)
在Delphi和Lazarus中进行条形码微调以进行打印
FastReport VCL允许您使用所有三种类型的条形码。让我们看看如何做。
在FastReport VCL设计器中,将obCatBarcode组件添加到报告中,然后从列表中选择条形码的类型:
![FastReport VCL](https://www.fast-report.com/uploads/blogpost/frexport/barcode/6_obCatBarcode.png)
接下来,转到条形码编辑器:
![æ¡ç ç¼è¾å¨](https://www.fast-report.com/uploads/blogpost/frexport/barcode/7_barcode_editor.png)
条形码编辑器
代码–条形码数值的区域;
条形码类型–条形码类型可以在编辑器中立即更改,而无需在报告中添加新组件;
Calc CheckSum 校验,所有线性条形码都具有此属性。还记得“略读”吗?我们必须以某种方式与之抗争!此属性确定是否应自动计算校验和。如果禁用,则校验和必须出现在对象文本中;
缩放–设置条形码的缩放比例,仅与“自动调整大小”属性结合使用;
文字–启用/禁用条形码下的文字显示;
旋转–允许您将对象的旋转设置为固定角度之一– 0、90、180、270度。
检查生成的条形码的一致性(很幸运,现在所有现代智能手机中都提供了相机和条形码扫描程序)。
从Delphi / Lazarus代码创建条形码
uses frxBarcod; procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc :=TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Set the type of the barcode} bc.BarType := bcCode_2_5_interleaved; {Set the fixed barcode value} bc.Text := '123456'; {Set the calculated barcode value} //bc.Expression := '<YourDatasetName."FieldName1"> + <YourDatasetName."FieldName2">'; {Set whether it is necessary to calculate the checksum and add it to the end of the barcode} bc.CalcCheckSum := False; {Set the scale at which the barcode will be displayed} bc.Zoom := 2; {Set the angle of the barcode rotation. Can take the following values: 0, 90, 180, 270} bc.Rotation := 0; {Set whether to set the width of the barcode depending on its content.} {If set to False, Zoom will be set to keep the barcode width fixed} bc.AutoSize := True; {Set the barcode background color} bc.Color := clNone; {Set the barcode lines color} bc.ColorBar := clBlack; {Set whether to display the text at the bottom of the barcode} bc.ShowText := True; frxReport1.ShowReport(); end;
本文章转载自【慧都科技】evget欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果