IMPRIMIR CUPOM COM OBJETO PRINTER

TRTNCG 06/08/2016 00:23:50
#465546
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.

ANDPAG 06/08/2016 00:59:19
#465549
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

MOREIRA 06/08/2016 01:37:51
#465551
Resposta escolhida
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é ****
TRTNCG 06/08/2016 02:08:53
#465552
Bom, olha dessa maneira não tenho com usar tamanhos diferentes para imprimir não, como na imagem em anexo
SINCLAIR 06/08/2016 07:47:57
#465554
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.
DS2T 06/08/2016 22:48:37
#465575
Você tentou mudar o FontSize do objeto Printer para mudar o tamanho dos caracteres?
Tópico encerrado , respostas não são mais permitidas