Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo hacer un código de barras usando lenguaje C

Cómo hacer un código de barras usando lenguaje C

1. Leer códigos de barras

Los amigos que han utilizado herramientas de escaneo de códigos de barras basadas en teclado sabrán que es como presionar las teclas numéricas del teclado y que básicamente no requiere ninguna programación. y procesamiento. Pero si está utilizando otra interfaz, es posible que deba escribir un código de comunicación para el dispositivo. El siguiente es un código de comunicación simple para un lector de código de barras de puerto serie de 25 pines.

Opción explícita

Dim sData As String

Sub privado Form_Load()

Con MSComm1

.CommPort = 3 'Establecido en COM3, dependiendo del sistema de ejecución de prueba, puede proporcionar un Combbox para que el usuario elija.

.PortOpen = True 'Abre el puerto de comunicación

Finalizar con

Fin Sub

Private Sub MSComm1_OnComm()

Dim EndPos As Integer

Seleccione Case MSComm1.CommEvent

Case comEvReceive 'Cuando se transmiten datos

sData = sData & Trim(MSComm1.Input)

'Recuperar retorno de carro, normalmente el lector de tarjetas devuelve un retorno de carro como terminador al final de cada conjunto de datos

EndPos = InStr(1, sData, Chr(13) )

Si EndPos = 0 Entonces 'Si no ha terminado, continúa trabajando duro

De lo contrario 'Lee un grupo.

lblBarCode.Caption = sData 'Mostrar un conjunto de códigos de barras

Con lstBarCode

.AddItem Mid(sData, 1, EndPos - 1) 'Agregar un conjunto de códigos de barras a lista

Finalizar con

sData = "" 'Borrar

Finalizar si

Finalizar seleccionar

End Sub

Private Sub cmdEnd_Click()

MSComm1.PortOpen = False 'Cerrar el puerto

End

End Sub

2. Generación de códigos de barras

¿Crees que es fácil después de leer el código anterior sobre la lectura de códigos de barras? Sí, programar en VB no es difícil en primer lugar. El siguiente código para la generación de códigos de barras también es muy fácil de entender. Puede imprimir fácilmente 11 códigos de barras estándar diferentes simplemente usando un control de código de barras que viene con OFFICE, que es suficiente para cumplir con nuestros requisitos. Pienso en un artículo largo sobre cómo escribir un programa de impresión de códigos de barras usando Turbo C en un libro que tengo en la estantería. Lo leí durante n días y lo escribí durante n horas y el resultado no fue satisfactorio. Ahora estoy mucho más feliz :). Después de tantas tonterías, volvamos al punto. Echemos un vistazo al código generado por el código de barras y las instrucciones relacionadas.

El código fuente consta principalmente de dos formularios (formulario principal frmMain y formulario de configuración de código de barras frmOption) y dos módulos (modGetScreen.bas, SysDLG32.bas). Teniendo en cuenta el espacio, aquí sólo se enumeran algunos de los códigos más críticos.

Cree un nuevo proyecto estándar, agregue un componente de código de barras llamado (Microsoft Access BarCode Control9), agregue un control de código de barras a la ventana y cambie el nombre de la ventana a frmMain, como se muestra en la figura. Dado que hay muchos controles, no es conveniente entrar en detalles aquí. Consulte el código fuente para obtener más detalles.

El código del módulo modGetScreen.bas es el siguiente:

Opción explícita

'Declarar brevemente las funciones API BitBlt, GetDesktopWindow, GetWindowDC y ReleaseDC

RegUser público como booleano

Sub GetObjImage1 (Obj como objeto, OwnerForm como PictureBox, Imagen1 como PictureBox)

'hDC

Dim hWndDesk As Long< / p>

Dim hDCDesk As Long

'Variable de expresión regional

Dim x As Long

Dim y As Long

Atenuar w mientras

Atenuar h mientras

x = Obj.Pantalla izquierda.TwipsPerPixelX

y = Obj.Pantalla superior.TwipsPerPixelY

w = Obj.Width Screen.TwipsPerPixelX

h = Obj.Height Screen.TwipsPerPixelY

hDCDesk = OwnerForm.hdc

'Eliminar imagen

Llamar a BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)

Llamar a ReleaseDC(hWndDesk, hDCDesk)

Fin del sub

Parte del código en el formulario principal frmMain.frm es el siguiente:

Private Sub cmdPrint_Click()

'Generar imagen de código de barras

Dim r As Long, i As Integer, t As String,cfile As String 'Variable temporal

t = BarCode

For i = 0 To Val(Times) - 1

BarCode1.Value = BarCode + i

DoEvents

Imagen1.Refresh

GetObjImage1 BarCode1, Conel, Imagen1

Si RegUser = False Then 'Si no está registrado, agregue la etiqueta MASK

Imagen1.PaintPicture Imagen2.Picture, 300, 300

Fin

Si Dir( SavePath, vbDirectory) = "" Luego MkDir SavePa

th

SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")

cfile = SavePath & BarCode1.Value & ".bmp"

SavePicture Picture1.Image, cfile 'Guarda el código de barras como un archivo de imagen para imprimir

Siguiente

BarCode = t

End Sub

El código frmOption.frm del formulario de configuración del código de barras es el siguiente:

Opción explícita

'Módulo de configuración del código de barras

Private Sub cboBig_Click( )

BarCode1.Style = cboBig.ListIndex 'Cambiar estándar

End Sub

Private Sub cboDirection_Click()

BarCode1.Direction = cboDirection.ListIndex 'Cambiar dirección

End Sub

Private Sub cboLine_Click()

BarCode1.LineWeight = cboLine.ListIndex 'Cambiar ancho de línea

End Sub

Private Sub cboSmall_Click()

BarCode1.SubStyle = cboSmall.ListIndex 'Cambiar estilo

End Sub

Private Sub Check1_Click()

BarCode1.ShowData = Check1.Value 'Si se muestran datos

End Sub

Private Sub cmdChange_Click()

'Establece el tamaño largo y ancho

BarWidth = BarCode1.Height

BarHeight = BarCode1.Width

cmdRefresh_Click

End Sub

Private Sub cmdOK_Click()

'Enviar configuración de código de barras a la interfaz principal

Con frmMain.BarCode1

.LineWeight = BarCode1.LineWeight

.Style = BarCode1.Style

.SubStyle = BarCode1.SubStyle

.Direction = BarCode1.Direction

.Width = BarCode1 .Ancho

.Alto = Código de barras1.Alto

.ShowD

ata = BarCode1.ShowData

Me.Hide

Terminar con

Con frmMain

.Picture1.Width = .BarCode1.Width

.Picture1.Height = .BarCode1.Height

.Conel.Width = .BarCode1.Width

.Conel.Height = .BarCode1.Height

Terminar con

Fin Sub

Sub privado cmdRefresh_Click()

BarCode1.Width = BarWidth

BarCode1.Height = BarHeight

End Sub

Private Sub Form_Load()

LoadBarInfo

BarWidth = BarCode1.Width

BarHeight = BarCode1.Height

End Sub

Sub LoadBarInfo() 'Opciones de inicialización

LoadBigClass cboBig

LoadSmallClass cboSmall

LoadLineSize cboLine

LoadDirection cboDirection

End Sub

Sub LoadBigClass(cbo As ComboBox) 'Estándar de código de barras

Con cbo

.AddItem "UPC-A"

.AddItem "UPC-E"

.AddItem "EAN-13"

.AddItem " EAN-8"

.AddItem "Código de caso"

.AddItem "Codabar (NW-T)"

.AddItem "Código-39"

.AddItem "Code-128"

.AddItem "U.S. Postnet"

.AddItem "U.S. Postal FIM"

.AddItem "JP Publicar"

.ListIndex = 2

Terminar con

End Sub

Sub LoadSmallClass(cbo As ComboBox) 'Estilo de código de barras

Con cbo

.AddItem "Estándar"

.AddItem "Suplemento de 2 Dígitos"

.AddItem "5-Di

git Suplemento"

.AddItem "Código de caso POS"

.ListIndex = 0

Terminar con

Finalizar sub

Muchas personas quieren agregar funciones de códigos de barras para mejorar la eficiencia del trabajo al escribir aplicaciones de bases de datos, especialmente aplicaciones con mucho tráfico, como gestión de ventas y gestión de bibliotecas. Sin embargo, debido a la dificultad de dominar la tecnología de códigos de barras y la cantidad de etiquetas, también. Como varias razones técnicas en el pasado, muchas personas se han sentido disuadidas. Este artículo presenta una solución de código de barras simple y práctica, espero que pueda ayudarlo a mejorar las funciones del sistema de software. envíe un correo electrónico a peedy@shareware.com.cn