Olá a todos!
Ao criar etiquetas códigos de barras, o ideal é utilizar o próprio software da impressora código de barras para isso.
Em se tratando de uma impressora da marca Zebra o aplicativo mais comum para uso é o Zebra Designer que vem junto no CD de drivers da própria impressora. A tarefa é bem simples: abrir o aplicativo e gerar uma etiqueta no tamanho desejado e com os parâmetros
necessários. Faz-se a impressão da mesma na impressora a fim de se atestar que está
correta e, em seguida, se gera a mesma para um arquivo-texto a fim de ser utilizado em
sua aplicação.
O arquivo-texto gerado pela impressora é o mostrado abaixo:
^XA
^PW354
^BY2,3,44^FT40,55^BCN,,Y,N
^FD>:" & Mid(Codigo, 1, 2) & ">5" & Mid(Codigo, 3, 11) & "^FS
^PQ1,0,1,Y
^XZ
Onde Codigo é a codificação interna da etiqueta que você criou.
O que se deve fazer em seguida é abrir isso via software a fim de gerar uma impressão em sequência da chamada desse mesmo arquivo da contagem inicial até a final:
sInicio = CDbl(TxtInicio.Text)
sFim = CDbl(TxtFim.Text)
'Quantas Etiquetas Imprimir
sDiferenca = sFim - sInicio
If sInicio > sFim Then
MsgBox("Valor Inicial maior que o Valor Final!!!", MsgBoxStyle.Information)
TxtInicio.Focus()
Exit Sub
End If
If sDiferenca = 0 Then
sDiferenca = sConta
End If
'Loop de impressão
While sInicio <= sFim
LerEtiqueta(sInicio )
GravarDados(sInicio)
Dim Command As String
Command = "type C:\TEMP\ETIQUETA.TXT>PRN"
Shell("cmd /c" & Command, 1, True)
'Incrementar o contador
sInicio = sInicio + 1
End While
A rotina LerETiqueta lê o arquivo-texto gerado na Zebra.
Então, você deve criar uma rotina que gere um arquivo-texto com os dados
acima:
Private Sub LerEtiqueta(ByVal sNumeroEtiqueta as string)
Dim fluxoTexto As IO.StreamWriter
Dim sNomeArquivo As String = "C:\Temp\ETIQUETA.TXT"
If IO.File.Exists(sNomeArquivo) Then
'ZM400 300 DPI
fluxoTexto = New IO.StreamWriter(sNomeArquivo)
fluxoTexto.Write("^XA")
fluxoTexto.Write("^PW354")
fluxoTexto.Write("^BY2,3,44^FT40,55^BCN,,Y,N")
fluxoTexto.Write("^FD>:" & Mid(sNumeroEtiqueta, 1, 2) & ">5" & Mid(sNumeroEtiqueta, 3, 11) & "^FS")
fluxoTexto.Write("^PQ1,0,1,Y")
''Finaliza la etiqueta
fluxoTexto.Write("^XZ")
fluxoTexto.Close()
End If
Dim docName As String = "ETIQUETA.TXT"
Dim docPath As String = "c:\Temp\"
'printDocument1.DocumentName = docName
Dim stream As New FileStream("C:\Temp\ETIQUETA.TXT", FileMode.Open)
Try
Dim reader As New StreamReader(stream)
Try
stringToPrint = reader.ReadToEnd()
Finally
reader.Dispose()
End Try
Finally
stream.Dispose()
End Try
End Sub
A parte final realiza a impressão da etiqueta direto para a porta da impressora e incrementa para o próximo número a ser impresso:
Dim Command As String
Command = "type C:\TEMP\ETIQUETA.TXT>PRN"
Shell("cmd /c" & Command, 1, True)
'Incrementar o contador
sInicio = sInicio + 1
A rotina é bem simples.
Você ainda pode incrementar isso gravando os dados em uma tabela em sua base de dados a fim de controlar as etiquetas já impressas e fazer uma possível reimpressão, caso necessário, o que é realizado pela função GravarDados.
Espero que o exposto ajude aos necessitados por esta informação.
Qualquer dúvida, podem postar comentários.
Sucesso a todos!!
By
Leonardo Metelys
Assinar:
Postagens (Atom)
UM APLICATIVO PARA LEITURA DEVOCIONAL ANUAL DA BIBLIA EM ANDROID
Olá, pessoal! Este novo projeto foi criado em Visual Studio 2019 em C#.Net com o Xamarin. Já está disponível no Google Play para vocês baix...
-
As funções abaixo ajudam na leitura de um arquivo XML da NF-e. Você só precisa fazer a leitura das tags corretas e lançá-las na base de dado...
-
O GLPI é um dos muitos tipos de aplicativos helpdesk free existentes na internet. O fórum do mesmo pode ser encontrado neste link: ...
-
Olá, pessoal! Esse projeto foi criado em 2017 e aprimorado agora em 2018. Foi também criado com o Visual Studio 2015 em C#.NET com o Xa...