Principales respuestas
COMO GENERAR UN CODIGO DE BARRAS EAN13 VB.NET

Pregunta
-
Estimados una consulta como puedo generar un codigo de barras EAN13, osea con un boton al darle clic mostrarlo en un textbox.
Espero me ayuden muchas gracias.miércoles, 28 de diciembre de 2016 23:06
Respuestas
-
"Oscar Perez 1234" preguntó:
> como puedo generar un codigo de barras EAN13, osea con un boton al
> darle clic mostrarlo en un textbox.
Hola, Óscar:Échale un vistazo al siguiente artículo:
Creación e Impresión de Código de Barras utilizando Fuentes Personalizadas (True Type)
Un saludo y ¡Feliz Año Nuevo!
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Propuesto como respuesta Joyce_ACModerator lunes, 2 de enero de 2017 17:09
- Marcado como respuesta Enrique M. MontejoModerator miércoles, 4 de enero de 2017 10:58
lunes, 2 de enero de 2017 12:32Moderador -
Estimados una consulta como puedo generar un codigo de barras EAN13, osea con un boton al darle clic mostrarlo en un textbox.
Espero me ayuden muchas gracias.Hola,
No hace mucho tiempo que hice algo así.
Lo que hice es descargarme una fuente de letra con formato de codigo de barras.
Instalas la nueva fuente descargada en el PC y a continuacion asignas a ese text box o label esa fuente de letra.
Al introducir en ese text box o label cuaquier valor, automaticamente se te creara el codigo de barras.
- Propuesto como respuesta Enrique M. MontejoModerator lunes, 2 de enero de 2017 12:31
- Marcado como respuesta Enrique M. MontejoModerator miércoles, 4 de enero de 2017 10:58
jueves, 29 de diciembre de 2016 17:12
Todas las respuestas
-
Estimados una consulta como puedo generar un codigo de barras EAN13, osea con un boton al darle clic mostrarlo en un textbox.
Espero me ayuden muchas gracias.Hola,
No hace mucho tiempo que hice algo así.
Lo que hice es descargarme una fuente de letra con formato de codigo de barras.
Instalas la nueva fuente descargada en el PC y a continuacion asignas a ese text box o label esa fuente de letra.
Al introducir en ese text box o label cuaquier valor, automaticamente se te creara el codigo de barras.
- Propuesto como respuesta Enrique M. MontejoModerator lunes, 2 de enero de 2017 12:31
- Marcado como respuesta Enrique M. MontejoModerator miércoles, 4 de enero de 2017 10:58
jueves, 29 de diciembre de 2016 17:12 -
"Oscar Perez 1234" preguntó:
> como puedo generar un codigo de barras EAN13, osea con un boton al
> darle clic mostrarlo en un textbox.
Hola, Óscar:Échale un vistazo al siguiente artículo:
Creación e Impresión de Código de Barras utilizando Fuentes Personalizadas (True Type)
Un saludo y ¡Feliz Año Nuevo!
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Propuesto como respuesta Joyce_ACModerator lunes, 2 de enero de 2017 17:09
- Marcado como respuesta Enrique M. MontejoModerator miércoles, 4 de enero de 2017 10:58
lunes, 2 de enero de 2017 12:32Moderador -
Hola, llevo tiempo peleándome con esto y yo no consigo imprimir correctamente un código de barras....
EAN13 calcula el último dígito, le pasas 12 y el último lo tienes que calcular. Hasta ahí todo correcto..
Yo luego intentaba imprimirlo con CrystalReport, pasándole la fuente EAN13... Pero esto no funciona, parece ser que no es tán sencillo como cambiar el tipo de letra y listo..Me estoy volviendo loco, me he descargado varios ejemplos pero no consigo descifrar algunos y otros directamente no sirven por que solo le cambian el tipo de letra. Este tema es mi desesperación.
Si alguien supiera como imprimirlo correctamente para que un lector de código de barras lo lea...estaría ETERNAMENTE agradecido.
lunes, 2 de enero de 2017 17:17 -
Para que tu código EAN13 sea leído por un lector primero debe ser convertido mediante una formula, esto te convierte los números a letras de acuerdo a una regla, luego colocas el resultado de aplicar la formula en tu textbox, al textbox le aplicas la fuente EAN13 y listo.
Hay 2 métodos, que pases tu directamente los 13 dígitos (siempre 13, completando con ceros a la izquierda si es necesario) o pasando 12 y haciendo que tu sistema te calcule el ultimo dígito que es el verificador.
La formula del dígito verificador es:
Public Function dv(ByVal EAN As String) 'calcula digito verificador del EAN13
'**OK**
Dim dvc As String = "" 'digito verificador calculado
Dim iSum As Integer = 0
Dim iDigit As Integer = 0
For i As Integer = EAN.Length To 1 Step -1
iDigit = Convert.ToInt32(EAN.Substring(i - 1, 1))
If (EAN.Length - i + 1) Mod 2 <> 0 Then
iSum += iDigit * 3
Else
iSum += iDigit
End If
Next
Dim iCheckSum As Integer = (10 - (iSum Mod 10)) Mod 10
dvc = iCheckSum.ToString()
Return dvc
End Functionpara calcular la cadena EAN13:
Public Function ean13(ByVal chaine As String) As String
Dim i, checksum, first As Integer
Dim CodeBarre As String
Dim tableA As Boolean
ean13 = ""
If Len(chaine) = 12 Then
For i = 1 To 12
If Asc(Mid(chaine, i, 1)) < 48 Or Asc(Mid(chaine, i, 1)) > 57 Then
i = 0
Exit For
End If
Next
If i = 13 Then
For i = 2 To 12 Step 2
checksum = checksum + Val(Mid(chaine, i, 1))
Next
checksum = checksum * 3
For i = 1 To 11 Step 2
checksum = checksum + Val(Mid(chaine, i, 1))
Next
chaine = chaine & (10 - checksum Mod 10) Mod 10
CodeBarre = Left(chaine, 1) & Chr(65 + Val(Mid(chaine, 2, 1)))
first = Val(Left(chaine, 1))
For i = 3 To 7
tableA = False
Select Case i
Case 3
Select Case first
Case 0 To 3
tableA = True
End Select
Case 4
Select Case first
Case 0, 4, 7, 8
tableA = True
End Select
Case 5
Select Case first
Case 0, 1, 4, 5, 9
tableA = True
End Select
Case 6
Select Case first
Case 0, 2, 5, 6, 7
tableA = True
End Select
Case 7
Select Case first
Case 0, 3, 6, 8, 9
tableA = True
End Select
End Select
If tableA Then
CodeBarre = CodeBarre & Chr(65 + Val(Mid(chaine, i, 1)))
Else
CodeBarre = CodeBarre & Chr(75 + Val(Mid(chaine, i, 1)))
End If
Next
CodeBarre = CodeBarre & "*"
For i = 8 To 13
CodeBarre = CodeBarre & Chr(97 + Val(Mid(chaine, i, 1)))
Next
CodeBarre = CodeBarre & "+"
ean13 = CodeBarre
End If
End If
End FunctionSi te sirve la marcas como correcta
- Propuesto como respuesta Raimundo Ferrer jueves, 28 de enero de 2021 9:06
miércoles, 25 de enero de 2017 18:43 -
Para que tu código EAN13 sea leído por un lector primero debe ser convertido mediante una formula, esto te convierte los números a letras de acuerdo a una regla, luego colocas el resultado de aplicar la formula en tu textbox, al textbox le aplicas la fuente EAN13 y listo.
Hay 2 métodos, que pases tu directamente los 13 dígitos (siempre 13, completando con ceros a la izquierda si es necesario) o pasando 12 y haciendo que tu sistema te calcule el ultimo dígito que es el verificador.
La formula del dígito verificador es:
Public Function dv(ByVal EAN As String) 'calcula digito verificador del EAN13
'**OK**
Dim dvc As String = "" 'digito verificador calculado
Dim iSum As Integer = 0
Dim iDigit As Integer = 0
For i As Integer = EAN.Length To 1 Step -1
iDigit = Convert.ToInt32(EAN.Substring(i - 1, 1))
If (EAN.Length - i + 1) Mod 2 <> 0 Then
iSum += iDigit * 3
Else
iSum += iDigit
End If
Next
Dim iCheckSum As Integer = (10 - (iSum Mod 10)) Mod 10
dvc = iCheckSum.ToString()
Return dvc
End Functionpara calcular la cadena EAN13:
Public Function ean13(ByVal chaine As String) As String
Dim i, checksum, first As Integer
Dim CodeBarre As String
Dim tableA As Boolean
ean13 = ""
If Len(chaine) = 12 Then
For i = 1 To 12
If Asc(Mid(chaine, i, 1)) < 48 Or Asc(Mid(chaine, i, 1)) > 57 Then
i = 0
Exit For
End If
Next
If i = 13 Then
For i = 2 To 12 Step 2
checksum = checksum + Val(Mid(chaine, i, 1))
Next
checksum = checksum * 3
For i = 1 To 11 Step 2
checksum = checksum + Val(Mid(chaine, i, 1))
Next
chaine = chaine & (10 - checksum Mod 10) Mod 10
CodeBarre = Left(chaine, 1) & Chr(65 + Val(Mid(chaine, 2, 1)))
first = Val(Left(chaine, 1))
For i = 3 To 7
tableA = False
Select Case i
Case 3
Select Case first
Case 0 To 3
tableA = True
End Select
Case 4
Select Case first
Case 0, 4, 7, 8
tableA = True
End Select
Case 5
Select Case first
Case 0, 1, 4, 5, 9
tableA = True
End Select
Case 6
Select Case first
Case 0, 2, 5, 6, 7
tableA = True
End Select
Case 7
Select Case first
Case 0, 3, 6, 8, 9
tableA = True
End Select
End Select
If tableA Then
CodeBarre = CodeBarre & Chr(65 + Val(Mid(chaine, i, 1)))
Else
CodeBarre = CodeBarre & Chr(75 + Val(Mid(chaine, i, 1)))
End If
Next
CodeBarre = CodeBarre & "*"
For i = 8 To 13
CodeBarre = CodeBarre & Chr(97 + Val(Mid(chaine, i, 1)))
Next
CodeBarre = CodeBarre & "+"
ean13 = CodeBarre
End If
End If
End FunctionSi te sirve la marcas como correcta
jueves, 28 de enero de 2021 9:08 -
Gracias por tu comentario Raimundomartes, 2 de febrero de 2021 20:11