1. 程式人生 > 實用技巧 >如何使用FastReport VCL生成ITF(交錯,工業,矩陣)條形碼

如何使用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程式碼。通常,交錯條形碼印在瓦楞紙板箱上,該紙板箱包含要交付的貨物,並具有以下結構:

工業2 of 5由Identicon Corp.和Computer Identics Corp.在1970年開發,並積極地用於工業應用中。但是,當前未使用(某些物流應用程式除外)。Industrial 2 of 5看起來像這樣,並使用5條表示一個字元。由於此程式碼僅將資料分配給條(而不是空格),因此其資料密度非常低:

Matrix 2 of 5是Code 5 of 2符號體系的一個較高密度成員,該體系於1968年首次開發。它主要用於倉庫分類和照片處理。“ 5之2”的名稱源於以下事實:用於編碼每個字元的5個元素(條和空格)中,兩個寬且三個窄。

在Delphi和Lazarus中進行條形碼微調以進行列印

FastReport VCL允許您使用所有三種類型的條形碼。讓我們看看如何做。
在FastReport VCL設計器中,將obCatBarcode元件新增到報告中,然後從列表中選擇條形碼的型別:

接下來,轉到條形碼編輯器:

條形碼編輯器

程式碼–條形碼數值的區域;

條形碼型別–條形碼型別可以在編輯器中立即更改,而無需在報告中新增新元件;
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歡迎任何形式的轉載,但請務必註明出處、不得修改原文相關連結,尊重他人勞動成果