如何在VB程序下生成二维条码
来源:网络收集 点击: 时间:2024-04-24创建VB工程,COPY二维条码动态链接库到您的工程中。您需要引用的动态库有:EnCodePdf.dll,EnCodeQr.dll,EnDataMatrix和EnHanxin.dll。
大家可以参照下图放置DLL和INI的目录位置。

'动态链接库引用
(说明:下面是所有四种条码的接口引用申明,读者可以适当剪裁)
'串口接口
Private Declare FunctionInitRead Lib "EnCodePdf.dll" (ByVal hcallwnd As Long, ByVal pathnameAs String) As Long
Private Declare FunctionCloseRead Lib "EnCodePdf.dll" () As Long
'生成PDF417接口
Private Declare SubSetPdfConFile Lib "EnCodePdf.dll" (ByVal confile As String)
Private Declare FunctionEnPdfText Lib "EnCodePdf.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodePdf Lib "EnCodePdf.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakePdf417 Lib "EnCodePdf.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'生成QrCode接口
Private Declare SubSetQrConFile Lib "EnCodeQr.dll" (ByVal confile As String)
Private Declare FunctionEnQrText Lib "EnCodeQr.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodeQr Lib "EnCodeQr.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakeQrCode Lib "EnCodeQr.dll" (ByVal txtfile As String, ByVal pictfileAs String, ByVal otherfile As String, ByVal outfile As String) As String
'生成DataMatrix接口
Private Declare SubSetDmConFile Lib "EnDataMatrix.dll" (ByVal confile As String)
Private Declare FunctionEnDmText Lib "EnDataMatrix.dll" (ByVal txtData As String, ByValoutfile As String) As String
Private Declare FunctionEnDataMatrix Lib "EnDataMatrix.dll" (ByVal txtfile As String, ByValoutfile As String) As String
Private Declare FunctionMakeDataMatrix Lib "EnDataMatrix.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'生成HanXin接口
Private Declare SubSetHxConFile Lib "EnHanXin.dll" (ByVal confile As String)
Private Declare FunctionEnHxText Lib "EnHanXin.dll" (ByVal txtData As String, ByVal outfileAs String) As String
Private Declare FunctionEnCodeHx Lib "EnHanXin.dll" (ByVal txtfile As String, ByVal outfileAs String) As String
Private Declare FunctionMakeHanXin Lib "EnHanXin.dll" (ByVal txtfile As String, ByValpictfile As String, ByVal otherfile As String, ByVal outfile As String) AsString
'WAPI接口
Private Declare FunctionSetCurrentDirectory Lib "kernel32" Alias"SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Declare FunctionWritePrivateProfileString Lib "kernel32" Alias"WritePrivateProfileStringA" (ByVal lpApplicationName As String,ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) AsLong
Private Declare FunctionGetPrivateProfileInt Lib "kernel32" Alias"GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVallpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) AsLong
Private Declare FunctionGetPrivateProfileString Lib "kernel32" Alias"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVallpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String,ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare FunctionSetWindowLong Lib "user32" Alias "SetWindowLongA" (ByValhwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare FunctionSetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParentAs Long) As Long
'生成图像小波压缩接口
'exports from nlcomp.dll 图像压缩函数
Private Declare FunctionSizeDIB Lib "Wcomp.dll" (ByVal oldmap As String, ByVal BmpHeight AsInteger, ByVal BmpWidth As Integer) As Long
Private Declare FunctionWcompress Lib "Wcomp.dll" (ByVal infile As String, ByVal outfile AsString, ByVal budget As Long) As Long
Private Declare FunctionWdecompress Lib "Wcomp.dll" (ByVal infile As String, ByVal outfile AsString) As Long

进行条形码制作:
我们在引用API接口后,可以参照下面程序,实现接口调用
程序中txtfile表示文本文件名,binBmpFile表示输入的图像文件名
若需要装载图像可以采用Make开头接口,若不需要则采用En开头接口。
If (txtfile "" Or binBmpFile "") Then
If m_bWorkMode = 1 Then 'PDF417
SetPdfConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakePdf417(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnPdfText(Edit_Source.Text,"")
End If
ElseIf m_bWorkMode = 2 Then 'Qr_Code
SetQrConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeQrCode(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnQrText(Edit_Source.Text,"")
End If
ElseIf m_bWorkMode = 3 Then ' DataMatrix
SetDmConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeDataMatrix(txtfile,binBmpFile, "", "")
Else
strBmpFile = EnDmText(Edit_Source.Text,"")
End If
Else
SetHxConFile (Edit_ConFileName.Text)
If (Edit_ImgFileName.Text "") Then
strBmpFile = MakeHanXin(txtfile, binBmpFile,"", "")
Else
strBmpFile = EnHxText(Edit_Source.Text,"")
End If
End If

打开关闭串口:
条码编码控件一般自带串口接收处理接口:
InitRead接口是初始化串口
CloseRead接口是关闭串口
If Cmd_OpenComm.Caption = "连接串口" Then
Call SetPdfConFile(Edit_ConFileName.Text)
If InitRead(Me.hwnd, App.Path + "\") = 1 Then
Cmd_OpenComm.Caption = "断开串口"
End If
Else '关闭串口
If CloseRead() = 1 Then
Cmd_OpenComm.Caption = "连接串口"
End If
End If
5/5接收条码识读器内容:
串口收到识读器信息后,以键盘消息的形式,触发页面消息。
我们调用FORM下,处理KeyDown事件。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim FileNo As Integer
Dim strTmp As String
Dim strBmpFile As String
strBmpFile = App.Path "\temp.bmp"
If KeyCode = 255 Then
FileNo = FreeFile()
Open App.Path "\temp.txt" For Input As #FileNo
Edit_Source.Text = ""
Do While Not EOF(FileNo)
strTmp = ""
Input #FileNo, strTmp
Edit_Source.Text = Edit_Source.Text strTmp Chr(13) Chr(10)
Loop
Close #FileNo
If Dir(strBmpFile) "" Then
Kill (strBmpFile)
End If
If Dir(App.Path "\temp.img") "" Then
If FileLen(App.Path "\temp.img") 10 Then
Call Wdecompress(App.Path "\temp.img", strBmpFile)
End If
End If
If Dir(strBmpFile) "" Then
Image_Bar.Picture = LoadPicture(strBmpFile)
Else
Image_Bar.Picture = LoadPicture("")
End If
Cmd_Print.Enabled = False
End If
End Sub
二维条码版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_585607.html