广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何在VB程序下生成二维条码

    来源:网络收集  点击:  时间:2024-04-24
    【导读】:
    如何在VB程序下生成二维条码,包括PDF417、QrCode、DataMatrix和汉信二维条码,具体步驺如下:工具/原料more准备VB开发环境,VS6.0开发环境方法/步骤1/5分步阅读

    创建VB工程,COPY二维条码动态链接库到您的工程中。您需要引用的动态库有:EnCodePdf.dll,EnCodeQr.dll,EnDataMatrix和EnHanxin.dll。

    大家可以参照下图放置DLL和INI的目录位置。

    2/5

    '动态链接库引用

    (说明:下面是所有四种条码的接口引用申明,读者可以适当剪裁)

    '串口接口

    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

    3/5

    进行条形码制作:

    我们在引用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

    4/5

    打开关闭串口:

    条码编码控件一般自带串口接收处理接口:

    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

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 04:28:35  耗时:0.029
    0.0293s