IMPRESSÃO DO NFC-E DIRETA PARA A IMPRESSORA
                    Boa tarde pessoal
Pesquisei na internet, mais não encontrei algo consistente, e hoje faço a impressão do meu nfc-e usando xtrareports. Mas gostaria de implementar uma rotina para a impressão direta para a impressora usando a linguagem ESC/POS que a maioria das impressoras aptas para a impressão do NFC-e utiliza.
Creio que será necessário uma implementação por marca de impressora.
Me proponho a ajudar no desenvolvimento de uma classe para tal finalidade, pois acredito que mais gente irá necessitar de tal funcionalidade. Tenho como efetuar testes nas marcas epson (tm-t20) e bematech (mp4200)
            Pesquisei na internet, mais não encontrei algo consistente, e hoje faço a impressão do meu nfc-e usando xtrareports. Mas gostaria de implementar uma rotina para a impressão direta para a impressora usando a linguagem ESC/POS que a maioria das impressoras aptas para a impressão do NFC-e utiliza.
Creio que será necessário uma implementação por marca de impressora.
Me proponho a ajudar no desenvolvimento de uma classe para tal finalidade, pois acredito que mais gente irá necessitar de tal funcionalidade. Tenho como efetuar testes nas marcas epson (tm-t20) e bematech (mp4200)
                    Acabei de conseguir imprimir o QR Code e o codigo de barra pra impressora Bematech... atraves do ESC/POS, foi 2 dias de muita pesquisa e mto papel jogado fora
Segue a minha contribuição:
e agora o codigo de barra
            Segue a minha contribuição:
 
        Dim qrcode As String
        qrcode = Chr(27) + Chr(97) + Chr(1) + _
        Chr(29) + Chr(107) + Chr(81) + _
        Chr(2) + Chr(12) + Chr(8) + Chr(1) + _
        Chr([Ô]20[Ô]) + _ [ô]Tamanho do texto que será gerado o QRCODE
        Chr(0) + _ 
        [Ô]leandrolimongebastos[Ô]
sw.WriteLine(qrcode)
        
  e agora o codigo de barra
  sw.WriteLine(Chr(29) & [Ô]k[Ô] & Chr(2) & [Ô]1234567890123[Ô] & Chr(0)) [ô] EAN-13
 
                
                    Boa tarde, só aproveitando o assunto, segue um exemplo para impressão do QRCODE em várias linguagem.
                
            
                    ops faltou o anexo, há outras linguagens também
                
            
                    em .Net
                
            
                    em c#
                
            
                    Na verdade eu pensei em algo tipo esse aqui, so que de codigo fonte aberto:
https://www.nuget.org/packages/PrinterUtility/
Legal LEANTRONIC, ja ajuda, so uma duvida como que voce definiu o objeto sw?
WILSONJOSE, é louvável a sua ajuda, mais como disse anteriormente: a ideia seria a impressão direta para a impressora sem a intervenção do Windows. Voce esta se perguntando: por que imprimir direto se assim como eu fiz da certo? Resposta: um melhor ganho de velocidade sem a necessidade de dlls e complementos de terceiros!
            https://www.nuget.org/packages/PrinterUtility/
Legal LEANTRONIC, ja ajuda, so uma duvida como que voce definiu o objeto sw?
WILSONJOSE, é louvável a sua ajuda, mais como disse anteriormente: a ideia seria a impressão direta para a impressora sem a intervenção do Windows. Voce esta se perguntando: por que imprimir direto se assim como eu fiz da certo? Resposta: um melhor ganho de velocidade sem a necessidade de dlls e complementos de terceiros!
                    Tambem funcional para o SAT-CFe.
Função que formata estilo tudo em ESC-POS
            Função que formata estilo tudo em ESC-POS
      Sub FormataTexto(ByVal Informacao As String, Optional ByVal Negrito As Boolean = False, Optional ByVal Centraliza As Boolean = False, Optional ByVal Condensa As Boolean = False, Optional ByVal Expande As Boolean = False)
        Try
            Dim TagFormata As String
            If Impressora = [Ô]DARUMA[Ô] Then
                TagFormata = String.Empty
                If Negrito = True Then TagFormata = [Ô]<b>[Ô]
                If Centraliza = True Then TagFormata = TagFormata & [Ô]<ce>[Ô]
                If Condensa = True Then TagFormata = TagFormata & [Ô]<c>[Ô]
                If Expande = True Then TagFormata = TagFormata & [Ô]<e>[Ô]
                Texto = Texto & TagFormata & Informacao
                TagFormata = String.Empty
                If Expande = True Then TagFormata = [Ô]</e>[Ô]
                If Condensa = True Then TagFormata = TagFormata & [Ô]</c>[Ô]
                If Centraliza = True Then TagFormata = TagFormata & [Ô]</ce>[Ô]
                If Negrito = True Then TagFormata = TagFormata & [Ô]</b>[Ô]
                Texto = Texto & TagFormata & vbNewLine
            ElseIf Impressora = [Ô]BEMATECH[Ô] Then
                If Centraliza = True Then Texto = Texto & Chr(&H1B) & [Ô]a[Ô] & Chr(1)
                TagFormata = String.Empty
                If Negrito = True Then TagFormata = Chr(27) + Chr(69)
                If Condensa = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(15)
                If Expande = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(27) + Chr(87) + Chr(49)
                Texto = Texto & TagFormata & Informacao
                TagFormata = String.Empty
                If Expande = True Then TagFormata = Chr(27) + Chr(87) + Chr(48)
                If Condensa = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(18)
                If Negrito = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(27) + Chr(70)
                Texto = Texto & TagFormata & Chr(10)
                If Centraliza = True Then Texto = Texto & Chr(&H1B) & [Ô]a[Ô] & Chr(0)
            ElseIf Impressora = [Ô]EPSON[Ô] Then
            ElseIf Impressora = [Ô]ELGIN[Ô] Then
                If Centraliza = True Then Texto = Texto & Chr(&H1B) & [Ô]a[Ô] & Chr(1)
                TagFormata = String.Empty
                If Negrito = True Then TagFormata = Chr(27) + Chr(69)
                If Condensa = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(15)
                If Expande = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(27) + Chr(87) + Chr(49)
                Texto = Texto & TagFormata & Informacao
                TagFormata = String.Empty
                If Expande = True Then TagFormata = Chr(27) + Chr(87) + Chr(48)
                If Condensa = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(18)
                If Negrito = True Then TagFormata = TagFormata & [Ô] [Ô] & Chr(27) + Chr(70)
                Texto = Texto & TagFormata & vbNewLine
                If Centraliza = True Then Texto = Texto & Chr(&H1B) & [Ô]a[Ô] & Chr(0)
            ElseIf Impressora = [Ô]DIEBOLD[Ô] Then
            Else
            End If
        Catch ex As Exception
            Gera_ERRO(Err.Number, Err.Description, ex.StackTrace, Err.Source)
        End Try
    End Sub
 
                Citação::
Na verdade eu pensei em algo tipo esse aqui, so que de codigo fonte aberto:
https://www.nuget.org/packages/PrinterUtility/
Legal LEANTRONIC, ja ajuda, so uma duvida como que voce definiu o objeto sw?
WILSONJOSE, é louvável a sua ajuda, mais como disse anteriormente: a ideia seria a impressão direta para a impressora sem a intervenção do Windows. Voce esta se perguntando: por que imprimir direto se assim como eu fiz da certo? Resposta: um melhor ganho de velocidade sem a necessidade de dlls e complementos de terceiros!
Esqueci de colocar, vou colocar com faço a impressão do meu QR Code:
  
        System.IO.Directory.SetCurrentDirectory(My.Application.Info.DirectoryPath)
        Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(My.Application.Info.DirectoryPath & [Ô]\SPOOL\PEDIDO.txt[Ô], False, System.Text.Encoding.GetEncoding([Ô]ISO-8859-1[Ô]))
        Dim qrcode As String
        qrcode = Chr(27) + Chr(97) + Chr(1) + _
        Chr(29) + Chr(107) + Chr(81) + _
        Chr(2) + Chr(12) + Chr(8) + Chr(1) + _
        Chr([Ô]20[Ô]) + _ [ô]Tamanho do texto que será gerado o QRCODE
        Chr(0) + _ 
        [Ô]leandrolimongebastos[Ô]
sw.WriteLine(qrcode)
Try
            System.IO.File.Copy(My.Application.Info.DirectoryPath & [Ô]\SPOOL\PEDIDO.txt[Ô], [Ô]LPT1[Ô], True)
        Catch ex As Exception
            MessageBox.Show([Ô]Não foi possivel encontrar a impressora[Ô])
        End Try
        
 
                
                        Tópico encerrado , respostas não são mais permitidas