impressao

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

massa
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 27 Jun 2014 21:04
Localização: franco da rocha/sp

impressao

Mensagem por massa »

boa noite ..
tenho programa desenvolvido no clipper 5 e a parte de relatorios eu uso set print on .. mas hj as impressoras sao usb qual rotina eu uso ou para gravar em doc ou para imprimir direto na porta usb ?? prefiro gerar um arquivo doc
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

impressao

Mensagem por rochinha »

OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

impressao

Mensagem por Maurício Elias »

Olá, bom dia.
Se vc usar o Harbour 3.2, tem como imprimir direto na USB usando o objeto oPrinter.
Em clipper, vc pode usar o NODOSIMP ou o DOSPRINTER. Eu gosto mais do segundo.
Ou vc gera um TXT e manda abrir pelo Notepad. E imprime por ele.
Run Notepad ARQUIVO.TXT
Abraços.
Abraços.
_______
Maurício
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

impressao

Mensagem por rochinha »

Amiguinhos
Run Notepad ARQUIVO.TXT
Voce quis dizer Run "Notepad ARQUIVO.TXT /P" né?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

impressao

Mensagem por Maurício Elias »

Eu não sabia que funcionava com aspas tb.
Prá que serve o /P ???
Abraços.
_______
Maurício
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

impressao

Mensagem por rochinha »

Amiguinho,

Me confundi com o recurso usado. Eu uso o WRITE que permite imprimir direto por ele.

run "write arquivo.txt /p"
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

impressao

Mensagem por Maurício Elias »

Q legal esse comando, não conhecia, mas digitei ele direto no prompt, nada aconteceu.
Só funciona pela Aplicação ???
Abraços.
_______
Maurício
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

impressao

Mensagem por MSDN »

Boa tarde,

Nos programas modo console que migrei do Clipper para o xHarbour, criei uma função que monta um menu com todas as impressoras instaladas no Windows, utilizando a função GetPrinters() do xHarbour, na época foi a forma mais rápida e eficiente que encontrei para resolver o problema, visto haver tanto impressoras USB como impressoras instaladas diretamente em ponto de rede, segue a função e exemplo de uso abaixo :

Código: Selecionar todos

Function EscolheImp()

	 Local nX   := 0
	 Local Cor  := SetColor()
	 Local Tela := SaveScreen()

	 aPrinter := GetPrinters()

	 SetColor('w+/r')
	 @ 00, 40 Clear To 00, 80
	 @ 00, 41 Say 'Escolha a impressora :'
	 SetColor('w/b*,n/gr*')
	 @ 01, 40 Clear To Len(aPrinter)+2, 80

	 While .T.
	       For nX := 1 To Len(aPrinter)
		   @ 01+nX, 41 Prompt aPrinter[nX]
	       Next nX
	       Menu To nOpPrinter
	       Do Case
		  Case nOpPrinter == 0
		       Alert('Primeiro escolha uma impressora')
		       Loop
		  Otherwise
		       Exit
	       EndCase
	 End

	 SetColor(Cor)

	 Return(Nil)

Código: Selecionar todos

while .t.

      setcolor(COR18)

      EscolheImp()

      @ 19, 51 say 'Confirma:'
      @ 20, 51 say 'Mensagem:'

      @ 19, 61 prompt 'Sim'
      @ 19, 66 prompt 'Nao'
      menu to OP

      do case
	  	 case OP == 0 .or. OP == 2
	      	  close all
	      	  Seta_on()
	      	  restscreen(,,,,TELA)
	      	  setcolor(COR)
	      	  return( NIL )
      endcase

      @ 20, 61 say 'Imprimindo...'
      exit

end

Set Printer To (aPrinter[nOpPrinter])
Set Device To Print
Set Console Off
Set Printer On
@ 00, 00 say chr(027)+chr(040)+chr(115)+chr(049)+chr(054)+chr(054)+chr(048)+chr(050)+chr(084)  // Arial
@ 00, 00 say chr(027)+chr(038)+chr(108)+chr(050)+chr(054)+chr(065) // A4
@ 00, 00 say chr(027)+chr(040)+chr(115)+"15"+chr(072)
Abraços
Responder