Option Explicit On
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Structure DOCINFO
Dim pDocName As String
Dim pOutputFile As String
Dim pDatatype As String
End Structure
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndDocPrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function OpenPrinter Lib "winspool.drv" Alias _
"OpenPrinterA" (ByVal pPrinterName As String, ByVal phPrinter As Long, _
ByVal pDefault As Long) As Long
Private Declare Function StartDocPrinter Lib "winspool.drv" Alias _
"StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _
ByVal pDocInfo As DOCINFO) As Long
Private Declare Function StartPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function WritePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long, ByVal pBuf As String, ByVal cdBuf As Long, _
ByVal pcWritten As Long) As Long
'Esto lo ponemos en la declaracion en general de nuestro form para utilizar el api
'posteriormente en un boton ponemos el siguiente codigo
Private Sub Command1_Click()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Aki declaramos las variables de las fuincionesd que utilizaremos , hasta lDoc es obligatorio de la funcion
Dim lhPrinter As Long
Dim lReturn As Long
Dim lpcWritten As Long
Dim lDoc As Long
' aki declaramos los componentes de nuestra etiqueta
'-----------------COMIENZO VARIABLES ENCABEZADO---------------------
Dim LIMPIABUFFER As String
Dim FORMATO As String
Dim DENSIDAD As String
Dim VELOCIDAD As String
Dim REFERENCIA As String
Dim LABELWIDTH As String
Dim DOUBLEBUFFERMODE As String
Dim DIRECCIONIMPRESION As String
Dim DISABLETOFB As String
Dim HARDWARE As String
'--------------------FIN VARIABLES ENCABEZADO-----------------------
'--------------------COMIENZO VARIABLES DATOS-----------------------
Dim DATO1 As String
Dim DATO2 As String
Dim DATO3 As String
Dim DATO4 As String
Dim DATO5 As String
Dim DATO6 As String
Dim DATO7 As String
Dim DATO8 As String
Dim DATO9 As String
Dim DATO10 As String
Dim DATO11 As String
Dim DATO12 As String
Dim DATO13 As String
Dim CODARTICULO As String
Dim LOTE As String
Dim CANTIDAD As String
'--------------------------------------------------------------------
'Linea son las variables que se encontraran en nuestra etiquetas
Dim CodigoArticulo As String
Dim DescripcionArticulo As String
Dim Talle As String
Dim Color As String
Dim LoteArticulo As String
Dim CantidadImpresion As String
Dim Linea6 As String
Dim Linea7 As String
'Aki estan mis valores declarados los cuales tomo de componentes de mi _formulario los cuales cambian dependiendo la consulta que hago en mi bd
CodigoArticulo = TextBox1.Text
DescripcionArticulo = TextBox2.Text
Talle = TextBox3.Text
Color = TextBox4.Text
LoteArticulo = TextBox5.Text
CantidadImpresion = TextBox6.Text
'Aki empezamos a preparar la impresora para el envio de los datos
Dim MyDocInfo As DOCINFO
lReturn = OpenPrinter("Zebra GK420t", lhPrinter, 0)
If lReturn = 0 Then
MsgBox("The Printer Name you typed wasn't recognized.")
Exit Sub
End If
MyDocInfo.pDocName = "ETIQUETAS"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDatatype = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
'Aki construimos las lineas del codigo EPL y las declaramos ojo terminarlas _lineas con esta instruccion es lo que hace que el codigo funcione (& vbCrLf) Ya_ que indica el salto de linea si esto lo omitimos la impresora no redconocera el _codigo y simplemente recibira la informacion pero no imprimira nada
'
'-------------------------------EPL ENCABEZADO ------------------------------------
FORMATO = "Q,200,019" & vbCrLf
LABELWIDTH = "q863" & vbCrLf
DOUBLEBUFFERMODE = "rN" & vbCrLf
VELOCIDAD = "S4" & vbCrLf
DENSIDAD = "D10" & vbCrLf
DIRECCIONIMPRESION = "ZT" & vbCrLf
DISABLETOFB = "JB" & vbCrLf
HARDWARE = "O" & vbCrLf
REFERENCIA = "R132,0" & vbCrLf
LIMPIABUFFER = "N" & vbCrLf
'-----------------------------FIN EPL ENCABEZADO-----------------------------------
DATO1 = "GW20,105,9,24," & Chr(34) & CodigoArticulo & Chr(34) & vbCrLf
DATO2 = "GW20,128,8,24," & Chr(34) & DescripcionArticulo & Chr(34) & vbCrLf
DATO3 = "GW20,78,19,30," & Chr(34) & Talle & Chr(34) & vbCrLf
DATO4 = "GW85,105,5,24," & Chr(34) & Color & Chr(34) & vbCrLf
DATO5 = "GW129,105,19,24," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO6 = "GW85,128,3,24," & Chr(34) & CantidadImpresion & Chr(34) & vbCrLf
DATO7 = "GW369,84,1,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO8 = "GW414,85,1,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO9 = "GW20,148,18,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO10 = "GW353,84,2,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO11 = "GW382,84,4,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO12 = "GW424,84,3,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO13 = "GW483,85,3,11," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
CODARTICULO = "B15,0,0,1,2,6,80,N," & Chr(34) & CodigoArticulo & Chr(34) & vbCrLf
LOTE = "B592,15,1,1,2,6,80,N," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
CANTIDAD = "P" & CantidadImpresion & vbCrLf
'Aki una vez construido el codigo EPL lo enviamos a la impresora
lReturn = WritePrinter(lhPrinter, LIMPIABUFFER, _
Len(LIMPIABUFFER), lpcWritten)
lReturn = WritePrinter(lhPrinter, FORMATO, _
Len(FORMATO), lpcWritten)
lReturn = WritePrinter(lhPrinter, DENSIDAD, _
Len(DENSIDAD), lpcWritten)
lReturn = WritePrinter(lhPrinter, VELOCIDAD, _
Len(VELOCIDAD), lpcWritten)
lReturn = WritePrinter(lhPrinter, REFERENCIA, _
Len(REFERENCIA), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO1, _
Len(DATO1), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO2, _
Len(DATO2), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO3, _
Len(DATO3), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO4, _
Len(DATO4), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO5, _
Len(DATO5), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO6, _
Len(DATO6), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO7, _
Len(DATO7), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO8, _
Len(DATO8), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO9, _
Len(DATO9), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO10, _
Len(DATO10), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO11, _
Len(DATO11), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO12, _
Len(DATO12), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO13, _
Len(DATO13), lpcWritten)
lReturn = WritePrinter(lhPrinter, CODARTICULO, _
Len(CODARTICULO), lpcWritten)
lReturn = WritePrinter(lhPrinter, LOTE, _
Len(LOTE), lpcWritten)
lReturn = WritePrinter(lhPrinter, CANTIDAD, _
Len(CANTIDAD), lpcWritten)
'Aki terminamos la impresion y cerramos el puerto de la impresora
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
End Sub
End Class