Ola a todos!Ao criar etiquetas codigos de barras, o ideal e utilizar o proprio software da impressora codigo de barras para isso.Em se tratando de uma impressora da marca Zebra o aplicativo mais comum para uso e o Zebra Designer que vem junto no CD de drivers da propria impressora. A tarefa e bem simples: abrir o aplicativo e gerar uma etiqueta no tamanho desejado e com os parametrosnecessarios. Faz-se a impressao da mesma na impressora a fim de se atestar que estacorreta e, em seguida, se gera a mesma para um arquivo-texto a fim de ser utilizado em sua aplicacao.O arquivo-texto gerado pela impressora e 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^XZOnde Codigo e a codificacao interna da etiqueta que voce criou.O que se deve fazer em seguida e abrir isso via software a fim de gerar uma impressao em sequencia da chamada desse mesmo arquivo da contagem inicial ate 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 impressao 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 WhileA rotina LerETiqueta le o arquivo-texto gerado na Zebra.Entao, voce deve criar uma rotina que gere um arquivo-texto com os dadosacima: 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 impressao da etiqueta direto para a porta da impressora e incrementa para o proximo numero 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 + 1A rotina e bem simples. Voce ainda pode incrementar isso gravando os dados em uma tabela em sua base de dados a fim de controlar as etiquetas ja impressas e fazer uma possivel reimpressao, caso necessario, o que e realizado pela funcao GravarDados.Espero que o exposto ajude aos necessitados por esta informacao. Qualquer duvida, podem postar comentarios.Sucesso a todos!!ByLeonardo Metelys Ola, pessoal!A geracao da DANFE agora traz novidades!!Agora e possivel informar um e-mail nos parametros de chamada do GerarDanfe para que o PDF gerado da DANFE possa ser enviado automaticamente:Isso e possivel porque o codigo-fonte agora incorpora uma funcao que permite o envio de e-mails. Neste exemplo, utilizamos o gmail para o envio:Em seguida, podemos ver o resultado esperado que