PAPEL DO TIPO BOBINA NO PRINTER

WEBIER 25/04/2010 12:52:00
#340194
vamos a historinha...

tenho um problema de restaurante...
foi comprando uma Epson LX300+II.... um adaptador de papel do tipo bobina.... uma bobina de papel dupla

a ideia é imprimir CUPOM DE VENDA, ou seja, parecido com CUPOM FISCAL

fiz tudo usando o comando printer.... meu problema está em definir o tamanho do papel...

eu coloquei assim:

printer.PaperSize = 9         [ô]9 = papel A4


ai ele imprimi o cupom direitinho... depois ele vai puxando o papel até o tamanho de uma folha A4.... ai tem q voltar o papel para uma nova impressão.... queria q ele puxasse somente o tamanho do cupom

mais o tamanho do cupom nao eh fixo... tem horas q tem 2 produtos e tem horas q tem 200 produtos...

como eu faço?
LOOKSYSTEM 25/04/2010 13:22:40
#340196
Tente imprimir dessa maneira

Open oPorta For Output As #1
Printer.FontName = [Ô]Courier New[Ô]
Printer.FontSize = 12

Print #1, [Ô]Teste Linha 1 [Ô]
Print #1, [Ô]Teste Linha 2 [Ô]
Print #1, [Ô]Teste Linha 3 [Ô]
Print #1, [Ô]Teste Linha 4 [Ô]
Print #1, [Ô] [Ô]
Print #1, [Ô] [Ô]
Print #1, [Ô] [Ô]
Print #1, [Ô] [Ô]
Close #1
LOOKSYSTEM 25/04/2010 13:24:26
#340197
Corrigindo
Open [Ô]LPT1[Ô] For Output As #1
INFOSISTEMAS 25/04/2010 16:16:13
#340206
Resposta escolhida
[ô]cupon para impressora termica ou matricial de 40 colunas
Open [Ô]LPT1:[Ô] For Output Access Write As #1

Print #1, Tab(0); enome;
Print #1, Tab(0); [Ô]Rua: [Ô] & erua & [Ô] - [Ô] & ebairro;
Print #1, Tab(0); ecid & [Ô] - [Ô] & eest; [Ô] Cep: [Ô] & ecep;
Print #1, Tab(0); [Ô]Tel: [Ô] & etel;
Print #1, Tab(0); [Ô]Site: [Ô] & esite;

Print #1, Tab(0); [Ô]------------------------------------------------[Ô];
Print #1, Tab(10); [Ô]Codigo do Pedido : [Ô] & vendacod;
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];
Print #1, Tab(0); [Ô]Data :[Ô] & Date; [Ô] [Ô] & [Ô] [Ô]; [Ô]Hora :[Ô] & Time; [Ô] Vend: [Ô] & codvendedor
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];


[ô]cabeça do cupon do items
Print #1, Tab(0); [Ô]Cod. [Ô]; [Ô]Item [Ô]; [Ô]Qtd. [Ô]; [Ô]VL Uni. [Ô]; [Ô]VL Total[Ô]
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];


[ô]selecionar items do cupon
Dim csql As String
csql = [Ô]SELECT * FROM tempven WHERE codven=[Ô] & Chr(34) & vendacod & Chr(34)
Set dyntempven = dbtempven.OpenRecordset(csql, dbOpenDynaset)

Do While Not dyntempven.EOF
Print #1, Tab(0); Format(dyntempven([Ô]codpro[Ô]), [Ô]00000[Ô]); [Ô] [Ô]; Format(Left(dyntempven([Ô]desc[Ô]), 20), [Ô]@@@@@@@@@@@@@@@@@@@@[Ô]); [Ô] [Ô]; Format(dyntempven([Ô]quant[Ô]), [Ô]000[Ô]); [Ô] [Ô]; Format$(Format$(dyntempven([Ô]valuni[Ô]), [Ô]#,##0.00[Ô]), [Ô]@@@@@@@@[Ô]); [Ô] [Ô]; Format$(Format$(dyntempven([Ô]valuni[Ô]) * dyntempven([Ô]quant[Ô]), [Ô]#,##0.00[Ô]), [Ô]@@@@@@@@[Ô])
dyntempven.MoveNext
Loop

[ô]valor total do cupon
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];
Print #1, Tab(30); [Ô]Total R$: [Ô]; Format$(Format$(valtol, [Ô]#,##0.00[Ô]), [Ô]@@@@@@@@[Ô])
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];

[ô]mensagem de no rodape do cupon
Print #1, Tab(10); [Ô] Este Cupon Não Tem Valor Fiscal[Ô]
Print #1, Tab(0); [Ô]------------------------------------------------[Ô];

Close #1

pronto rotina praonta e funcionando e so adaotar ao seu codigo !!
WEBIER 25/04/2010 16:53:14
#340207
a minha LX300+II é usb (tah ligada num notebook sem porta paralela)

como eu faço?

outra coisa, olha o codigo que eu fiz:
Private Sub cmdImprimir_Click()
Call ABRIR_BD_SEM_DATA1
SQL_Empresa = [Ô]SELECT TOP 1 * FROM EMPRESA ORDER BY FANTASIA[Ô]
Set Rs_Empresa = BD.OpenRecordset(SQL_Empresa)

If MsgBox([Ô]Iniciar Impressão?[Ô], 36, [Ô]Aviso do Sistema[Ô]) = 7 Then
Exit Sub
Else
With Printer
.ScaleMode = vbCentimeters
.PaperSize = 9 [ô]A4
.FontName = [Ô]courier new[Ô]

Fonte 8, False, False
Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Fonte 8, True, False
Printer.Print Tab((40 - Len(Rs_Empresa!FANTASIA)) / 2); Rs_Empresa!FANTASIA [ô]Esse /2 é p/ centralizar
Printer.Print Tab((40 - Len(Rs_Empresa!RAZAO)) / 2); Rs_Empresa!RAZAO
Fonte 8, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Rs_Empresa!ENDERECO & [Ô], [Ô] & Rs_Empresa!cidade & [Ô]-[Ô] & Rs_Empresa!estado
Printer.Print [Ô]FONE: [Ô]; Rs_Empresa!TELEFONE
Fonte 8, False, False
Printer.Print [Ô]CNPJ:[Ô]; Rs_Empresa!CNPJ & [Ô] IE:[Ô] & Rs_Empresa!IE
Printer.Print [Ô] [Ô]

Fonte 10, True, False
Printer.Print Tab(10); [Ô]CUPOM DE VENDA[Ô]

Fonte 8, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);

Fonte 10, False, True
Printer.Print Tab(25); lblMesa.Caption

Fonte 8, False, False
Printer.Print Tab(0); [Ô]DESCRIÇÃO[Ô];
Printer.Print Tab(22); [Ô]PREÇO[Ô];
Printer.Print Tab(29); [Ô]QTDE[Ô];
Printer.Print Tab(36); [Ô]TOTAL[Ô]
Printer.Print String(40, [Ô]-[Ô])

Rs.MoveFirst [ô]movimenta o ponteiro para o primeiro registro

Do While Not Rs.EOF [ô]

[ô]---------------imprime os dados da tabela----------------------------
Printer.Print Tab(0); Rs([Ô]DESCRICAO[Ô]);
Printer.Print Tab(22); Rs([Ô]PRECO[Ô]);
Printer.Print Tab(29); Rs([Ô]QUANT[Ô]);
Printer.Print Tab(36); Rs([Ô]TOTAL[Ô])

Rs.MoveNext [ô]vai para o proximo registro

Loop

Printer.Print String(40, [Ô]-[Ô])
Fonte 8, True, False
Printer.Print Tab(27); [Ô]Total: [Ô]; Tab(35); lblTotalGrid.Caption
Printer.Print [Ô] [Ô]

Fonte 8, False, True
Printer.Print Tab((40 - Len([Ô]Este cupom não é FISCAL[Ô])) / 2); [Ô]Este cupom não é FISCAL[Ô]
Fonte 8, False, False
Printer.Print Tab((40 - Len([Ô]Obrigado pela preferência[Ô])) / 2); [Ô]Obrigado pela preferencia[Ô]


.EndDoc
.ScaleMode = vbCentimeters
End With
End If
End Sub


sem ter q fazer o codigo todo denovo, o que vou precisar mudar ai para ele puxar o papel somente do tamanho do cupom?
EDERMIR 25/04/2010 18:06:01
#340213
WEBIER.

Você sabe que após a impressão do último ítem, você deverá saltar XX linhas para destacar o papel, então basta fazer PRINTER.PRINT tantas quantas forem as linhas.

Não imprima no número da linha. Vá imprimindo sequencialmente para não acarretar o salto automático de folha.
WEBIER 25/04/2010 18:09:33
#340215
sobre saltar algumas eu sei....

mais queria justamente isso... que ele imprimisse o cupom e saltasse algumas linhas para eu poder destacar o papel

o problema é que ele tah saltando muito... ele sobe o equivalente a uma pagina A4... ai fica demorado ter que voltar o papel novamente

como eu faço?
MOISES.ARAUJO 25/04/2010 19:24:06
#340223
Meu amigo sua resposta ja foi dada, use o print que a impressão para onde termina a impressão.
quanto a imprimir na porta usb, ja tive este problema que foi resolvido assim,

instale a impressora normalmente,
depois instale uma generico texto na porta lpt1,
compartilhe a impressora da porta usb,
no prompt digite
net use lpt1 \\caminhodarede\impressora

desta forma quando mandar um arquivo para impressora na lpt1 o pc vai desviar para a impressorra compartilhada ou seja na porta usb.
EDERMIR 25/04/2010 23:21:36
#340239
HMMMM acredito que o problema está no ENDDOC. A impressora está enviando a folha A4 (que é a conclusão do relatório) ao finalizar a impressão.

Uma sugestão: Altere o tamanho da folha para PERSONALIZADO e que a ALTURA da página seja de UMA LINHA. Quando você mandar o ENDDOC, a impressora saltará MAIS UMA LINHA. Entendeu?
WEBIER 26/04/2010 00:08:12
#340242
fiz o que o MOISES ARAUJO indicou e simplesmente não imprime.

Duvida 1:
Como faço para usar o Open [Ô]LPT1[Ô] For Output As #1 com uma impressora USB


Como faço para imrpimir o cupom acima citado sem ele puxar um monte de papel extra quando acaber de imprimir
WHELLNET 26/04/2010 11:07:29
#340255
WEBIER
O pessoal confundi muito PRINTER com PRINT
PRINTER é uma impressão em formato grafico, onde você consegue alterar o tamanho da fonte, nome da fonte, etc.
PRINT é a impressão em formato texto, dedicado a impressoras matriciais com um ganho de desempenho enorme comparado ao PRINTER. Embora você consiga imprimri negrido, itálicado, condensado e expadindo, você só consegue alterar o tipo de letra selecionando-a na própria impressora.

Pra esse trabalho que você está fazendo recomendo o PRINT

Para imprimir em impressora USB, temos que [Ô]enganar[Ô] o PRINT, então, você terá que compartilhar essa sua impressora e usa-la como se você estivesse na rede
Open [Ô]\\Computador\Epson[Ô] For Output as #1
Print #1, [Ô]teste[Ô]
Close #1
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas