IMPRIMIR CUPOM COM OBJETO PRINTER
Olá pessoal será que alguém poderia me ajudar?
Bom estou desenvolvendo um sistema e preciso imprimir em uma impressora não fiscal com o objeto PRINTER ou print mesmo, de modo que tenha como imprimir de acordo com o Layout que o cliente solicitou da maneira que se segue a imagem, com tamanhos e formatações variadas.
Bom estou desenvolvendo um sistema e preciso imprimir em uma impressora não fiscal com o objeto PRINTER ou print mesmo, de modo que tenha como imprimir de acordo com o Layout que o cliente solicitou da maneira que se segue a imagem, com tamanhos e formatações variadas.
O caminho pra cupom não é objeto printer e sim print, o printer vai pular [Ô]uma pagina[Ô] inteira quando fechar a impressão, no print você controla linha a linha.
Segue pequeno exemplo bem basico, os comandos para mudar fonte dê uma pesquisada por comandos esc/pos que encontra fácil:
Open [Ô]caminho da impressora[Ô] For Output As #1
Print #1, Chr(27) + Chr(15)
Print #1, vbNullString
Print #1, [Ô]TESTE[Ô]
Print #1, vbNullString
Close #1
Segue pequeno exemplo bem basico, os comandos para mudar fonte dê uma pesquisada por comandos esc/pos que encontra fácil:
Open [Ô]caminho da impressora[Ô] For Output As #1
Print #1, Chr(27) + Chr(15)
Print #1, vbNullString
Print #1, [Ô]TESTE[Ô]
Print #1, vbNullString
Close #1
aMIGO, EU USO ASSIM, VEJA SE TE AJUDA, BOA SORTE
[ô]INICIA A IMPRESSÃO DO CUPOM
[ô]imprimi cupons
Dim impc As String
impc = MsgBox([Ô]Deseja Iniciar a Impressão do Cupom ? [Ô] & Chr(13) & [Ô]SIM: PARA IMPRESSÃO, NÃO: PARA NÃO IMPRESSÃO [Ô] & Chr(13) & [Ô]--------------------------------------------[Ô], vbYesNo + vbInformation, ([Ô]ATENÇÃO[Ô]))
If impc = vbYes Then
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 7
Dim PortImp As String
Open [Ô]COM1:11520,N,8,1[Ô] For Output As #1
Print #1, Chr$(&H1B); [Ô]@[Ô]; [ô]Inicializa a impressora
Print #1, Chr$(27) & Chr(15)
Print #1, Spc(0); [Ô] XXXX XXX [Ô]
Print #1, Spc(0); [Ô] CNPJ: 00.000.0000-00 I.E:000000000 [Ô]
Print #1, Spc(0); [Ô] Bairro: XXXX [Ô]
Print #1, Spc(0); [Ô] Cururupu - MA [Ô]
Print #1, Spc(0); [Ô] Fone (98) XXX-1XXXX [Ô]
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Print #1, Spc(0); Date; Spc(5); Time; Spc(2); [Ô]Núm. Venda[Ô]; Spc(3); Format(NumVenda, [Ô]000000[Ô])
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Print #1, Spc(0); [Ô] COMPROVANTE DE COMPRA [Ô]
Print #1, Spc(0); [Ô]OPERADOR(A) :[Ô]; Spc(2); NomeUser; [Ô][Ô]
Print #1, Spc(0); [Ô]Itns|CODIGO | DESCRICAO DO PRODUTO [Ô]
Print #1, Spc(0); [Ô] QTD. R$ VALOR UNIT. TOTAL R$[Ô]
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Set Rst = New ADODB.Recordset
Sql = [Ô]Select CODIGOBARRA, DESCRICAO, QUANT, PRECOUNITARIO, VALORTOTAL FROM TB_VENDA_ITENS_T WHERE NumDocto =[ô][Ô] & NumVenda & [Ô][ô][Ô]
Rst.Open Sql, Cnn, 3
Dim CountColun As Integer
CountColun = 0
Do While Not Rst.EOF
CountColun = CountColun + 1
Print #1, Spc(0); Format(CountColun, [Ô]000[Ô]); Spc(1); Format(Rst!CODIGOBARRA, [Ô]00000000000000[Ô]); Spc(1); Mid(Rst!DESCRICAO, 1, 30)
Print #1, Spc(9); Format(Rst!Quant, [Ô]###,##0.000[Ô]); Spc(3); [Ô]X[Ô]; Spc(3); Format(Format(Rst!PRECOUNITARIO, [Ô]###,##0.00[Ô]), [Ô]@@@@@@@@@@@[Ô]); Spc(4); [Ô]=[Ô]; Spc(9); Right(Space(9) & Format(Rst!VALORTOTAL, [Ô]###,##0.00[Ô]), 10)
Rst.MoveNext
Loop
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Sum(ValorTotal) As TotalCupom FROM TB_VENDA_ITENS_T WHERE NumDocto =[ô][Ô] & NumVenda & [Ô][ô][Ô]
Rst.Open Sql, Cnn, 3
Do While Not Rst.EOF
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Print #1, Spc(5); [Ô]Total a pagar R$:[Ô]; Tab(38); Format(Format(Rst!TotalCupom, [Ô]###,##0.00[Ô]), [Ô]@@@@@@@@@@@[Ô])
Rst.MoveNext
Loop
[ô]*** INICIA A SESSÃO FORMA DE PAGAMENTO ****
Set Rst = New ADODB.Recordset
Sql = [Ô]SELECT FORMPGTO, VLRPAGO FROM TB_VENDA_RCBPGTO WHERE NumDocto =[ô][Ô] & NumVenda & [Ô][ô][Ô]
Rst.Open Sql, Cnn, 3
If Rst.RecordCount > 0 Then
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Do While Not Rst.EOF
Print #1, Spc(5); [Ô]Forma de Pagto:[Ô]; Rst!FORMPGTO; [Ô]:[Ô]; Tab(38); Format(Format(Rst!VLRPAGO, [Ô]###,##0.00[Ô]), [Ô]@@@@@@@@@@@[Ô])
Rst.MoveNext
Loop
End If
[ô]*** INICIA A SESSÃO FORMA DE PAGAMENTO ****
[ô]**** INICIA SESSÃO DO TROCO ****
Set Rst = New ADODB.Recordset
Sql = [Ô]SELECT Sum(TOTALCOMPRA - TOTALPAGO) As SomaTroco FROM TB_VENDA_CUPOMF WHERE NumDocto =[ô][Ô] & NumVenda & [Ô][ô][Ô]
Rst.Open Sql, Cnn, 3
If Format(Abs(Rst!SomaTroco), [Ô]###,##0.00[Ô]) > 0 Then
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Do While Not Rst.EOF
Print #1, Spc(5); [Ô]Troco:[Ô]; [Ô]:[Ô]; Tab(38); Format(Format(Abs(Rst!SomaTroco), [Ô]###,##0.00[Ô]), [Ô]@@@@@@@@@@@[Ô])
Rst.MoveNext
Loop
End If
[ô]**** INICIA SESSÃO DO TROCO ****
[ô]**** INICIA SESSÃO DO RODAPé ****
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Print #1, Tab(10); [Ô] Documento Sem Valor Fiscal.[Ô]
Print #1, Tab(10); [Ô] Obrigado Pela Preferencia[Ô]
Print #1, Spc(4); [Ô] Aqui voce encontra os menores precos da Cidade[Ô]
Print #1, Tab(10); [Ô] Volte Sempre ! [Ô]
Print #1, Spc(0); [Ô]---------------------------------------------------------[Ô]
Print #1, Spc(0); [Ô]Sistemas Comerciais (XX) XX - XX| XX - XXX [Ô]
Print #1, [Ô][Ô]
Print #1, [Ô][Ô]
Print #1, [Ô][Ô]
Print #1, [Ô][Ô]
Print #1, [Ô][Ô]
Close #1
[ô]**** INICIA SESSÃO DO RODAPé ****
Bom, olha dessa maneira não tenho com usar tamanhos diferentes para imprimir não, como na imagem em anexo
Colega,
Já que trabalhas com VB6...
Gambiarra pura, mas uma vez, na época do VB5, quando estava começando com VB, faz muitos e muitos anos... fiz um form, com labels que tinham a fonte e tamanho que eu desejava, então usava o Form1.PrintForm, seguido do .EndDoc do printer.
Mas, algum tempo depois (cerca de 15 dias), li bastante sobre ESC/POS e, então, modifiquei o sistema para imprimir os caracteres de compressão e expansão de fonte e ficou, claro, mais profissional.
Tudo de bom.
Já que trabalhas com VB6...
Gambiarra pura, mas uma vez, na época do VB5, quando estava começando com VB, faz muitos e muitos anos... fiz um form, com labels que tinham a fonte e tamanho que eu desejava, então usava o Form1.PrintForm, seguido do .EndDoc do printer.
Mas, algum tempo depois (cerca de 15 dias), li bastante sobre ESC/POS e, então, modifiquei o sistema para imprimir os caracteres de compressão e expansão de fonte e ficou, claro, mais profissional.
Tudo de bom.
Você tentou mudar o FontSize do objeto Printer para mudar o tamanho dos caracteres?
Tópico encerrado , respostas não são mais permitidas