Delphi中列印條碼的方法
導讀:
1 通過菜單”Component”下的”Import ActiveX”将“Microsoft
Access Barcode Control 9.0”控件引入。這個控件
(msbcode9.occx)随同Office一起安裝到系統中。
2 在“ActiveX”下可以看到該控件,可以直接拖放到窗體上
。通過屬性設定,可以設定條碼類型,内容,寬度、高度等等
。
條碼的資料是通過”Value”屬性設定,也通過Datasource等
設定引用資料庫字段。高度和寬度通過控件的高度寬度設定,
空白區域沒有找到辦法縮減。
3 代碼
在已經插入一個控件後,可以通過以下的處理進行列印。
我試過,列印、識讀都沒有問題。
有關不顯示在界面上就進行列印的方法,希望使用者自己查
詢。
procedure TForm1.Button1Click(Sender: TObject);
var
bmp:TBitmap;
sR,tR:TRect;
begin
//記錄圖像
bmp := TBitmap.Create;
sR :=
Rect(BarCodeCtrl1.Left,BarCodeCtrl1.Top,BarCodeCtrl1.Left +
BarCodeCtrl1.Width,
BarCodeCtrl1.Top + BarCodeCtrl1.Height);
tR := Rect(0,0,BarCodeCtrl1.Width,BarCodeCtrl1.Height);
bmp.Width := BarCodeCtrl1.Width;
bmp.Height := BarCodeCtrl1.Height;
bmp.Canvas.CopyRect(tR,Canvas,sR);
// bmp.SaveToFile('c:\1.bmp');
//列印
printer.BeginDoc;
printer.Canvas.Font.Size := 15;
printer.Canvas.TextOut(10,10,'Barcodestrl demo');
printer.Canvas.Draw(20,100,bmp);
printer.EndDoc;
bmp.free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//産生條碼
BarCodeCtrl1.Value := '012345678';
BarCodeCtrl1.Width := 400;
BarCodeCtrl1.Height := 100;
end;
注意:
1 該控件好像不是非常符合條碼的寬窄條比,是以需要找
一個合适的寬高比例,以保證可識讀。
2 按照上面的方法,會采用列印機驅動程式的預設設定。
是以需要在列印機驅動程式上選擇合适的頁面和相關處理作為
預設值。當然,應該有更加好的方法對列印機驅動進行設定,可
以搜尋一下網絡吧!
3 另外你也可以直接從網上下載下傳一些條形碼字型,然後設
置列印字型為條形碼字型,這種方法更為簡單,但是對列印機
和掃描槍有一定的精度要求。