VB.Net利用LABELVIEW 驅動無API的條碼機列印
小弟之前遇到有一些比較老舊且很貴的進口條碼機並沒有提供API供程式人員直接驅動條碼機來列印標籤,例如Avery…等等,這些條碼機說實在的很耐用且非常貴,基本上都不會壞而且還使用64位元處理器,公司也不會想要去換;在購買這些條碼機時,供貨商在幫忙安裝時通常都會幫忙安裝LABELVIEW這套條碼的列印編輯軟體(單然還有其他的編輯軟體不過已LABELVIEW能驅動的條碼機最多)。
目前小弟測試LABELVIEW的版本6.x 7.x,LABELVIEW畢竟是一套需要付費的編輯軟體,但是N年前大概6.x,7.x時條碼設備商不知道是如何取得授權讓溝買的條碼機的客戶都有辦法安裝LABELVIEW。
所以我們就假設有LABELVIEW 6.x 7.x的版本,與沒有提供API的條碼機。
這裡就不多說,假設你已經編輯好一個標籤了
Dim Lbl As Object, Flds As Object, Fld As Object
'Create
Lbl = CreateObject("Lblvw.Document")
'
Lbl.Open(CurDir() & "\xxxxxx.lbl", True)
Flds = Lbl.LabelFields
For Fi As Integer = 0 To Flds.Count - 1
Fld = Flds(Fi)
Debug.Print("Flds" + "(" + LTrim$(Str$(Fi)) + ")" + "--->" + Fld.Name + "=" + Fld.Value)
Next
Lbl.Close()
Flds(X)就是Fld.Name的陣列位置,Fld.Value就是Fld.Name中的值,Fld.Name就是物件名稱可能是TEXT、BAR…等看你如何編輯
如何把你的輸入值傳入標籤中
Lbl = CreateObject("Lblvw.Document")
Lbl.Open(CurDir() & "\xxx.lbl", True)
Flds = Lbl.LabelFields
Fld = Flds(0)
Fld.Value = x1
Fld = Flds(1)
Fld.Value = x2
.........
'列印數量
Lbl.PrintLabel(LabelCount)
Lbl.Close()
其實你也可以直接透過LPT1下指令過去列印。
利用LABELVIEW 軟體來列印雖然比較麻煩,但是卻有個好處
標籤的位置要改變等等,只要使用者利用編輯軟體移動一下存檔,就可以直接列印,不需要CODE人員在那邊修改程式碼。我想大家都知道寫程式都只是一下子的事,但是在那邊編輯位置可能要好幾天,每次印出來拿給上頭看,你不會字印大一點唷,你不絕的條碼歪一邊了嗎…等等。
給家裡還有老舊條碼機的各位大大參考參考
快被條碼機搞死的小弟= =
新手新手
我是新手