Impressão em xHarbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Romeuk
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 23 Mar 2008 14:11
Localização: Porto Alegre-RS

Impressão em xHarbour

Mensagem por Romeuk »

Amigos, cá tou eu de novo...
Não consegui imprimir de nenhuma das formas que encontrei sugeridas aqui. Imprimir para arquivo até que deu... Mas para a impressora, não... Aí consegui um exemplo na internet - http://culikr.sites.uol.com.br/howto.htm - que compilei e que roda faceiro... Só que ele tb não imprime... (Testei em 3 micros com impressoras de rede (2) e impressora local(1)). Aonde é que estáo furo?

Grato

Romeu

Código: Selecionar todos

function Main()

* Impressão em xHarbour

CLS
?? 'Test program for WINDOWS printing'
? '---------------------------------'
? SET(_SET_DEVICE)
aPrinter:=GetPrinters()
IF EMPTY(aPrinter)
? '----- No Printers installed'
ELSE
set printer to (GetDefaultPrinter())
? SET(_SET_PRINTER)
? SET(_SET_PRINTFILE)
set console off
set printer on
? 'Default Printer'
?'----------------'
? GetDefaultPrinter()
?
? 'Printers Available'
?'-------------------'
FOR x:= 1 TO LEN(aPrinter)
? aPrinter[x]
NEXT x
aPrinter:= GetPrinters(.T.)
? 'Printers and Ports'
?'-------------------'
FOR x:= 1 TO LEN(aPrinter)
? aPrinter[x,1]+' on '+aPrinter[x,2]
NEXT x
EJECT
set printer off
set console on
set printer to
ENDIF
? SET(_SET_PRINTER)
? SET(_SET_DEVICE)
WAIT
return( nil )
g
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: Impressão em xHarbour

Mensagem por rodrmigu »

Olá,

Se for impressora padrão windows gráfico, não funciona. Isso funciona apenas para impressoras matriciais e as que funcionem em DOS.

Para impressão padrão windows, vc precisa usar a Win32prn.

[]'s
Rodrigo
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Impressão em xHarbour

Mensagem por sygecom »

Olá Romeuk,
Compile o Exemplo do link abaixo:
viewtopic.php?t=6465

Com esse exemplo você pode imprimir em qualquer impressora.

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Romeuk
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 23 Mar 2008 14:11
Localização: Porto Alegre-RS

Re: Impressão em xHarbour

Mensagem por Romeuk »

Agradeço aos dois. O exemplo foi muito instrutivo. Mas a melhor solução (ou pelo menos a mais prática para mim) foi imprimir para arquivo e depois usar PrintFileRaw(). Até a próxima...
Romeu
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Impressão em xHarbour

Mensagem por sygecom »

Olá RomeuK,
Apenas uma observação, a função PRINTFILERAW() não imprime em algumas impressoras mais modernas.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Impressão em xHarbour

Mensagem por Hasse »

Faço côro com o Leonardo. Já que há necessidade de alterar algo, não tem sentido migrar pela metade, pois certamente mais tarde será necessário "trabalhar" a rotina novamente.

E a Classe Win32prn() é muito fácil. Depois que se pega o jeito, a migração é muito rápida.

Em alguns casos, conforme o cliente, até mantenho as 2 formas de impressão, tipo:

Código: Selecionar todos

IF c_PRN = "WIN"
   ...
   código Win32prn
   ...
ELSE
   ...
   código para imprimir direto na LPTx
   ...
ENDIF
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Re: Impressão em xHarbour

Mensagem por ederxc »

Se usa alguma GUI , aconselho usar a liguagem da própria para impressão , nesse caso se torna ainda muito mais fácil


té++ X:)
C:\Xharbour\Xdev\Fw\VSX
Romeuk
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 23 Mar 2008 14:11
Localização: Porto Alegre-RS

Re: Impressão em xHarbour

Mensagem por Romeuk »

Opa! Já jogaram água quente no meu sorvete, hehe...
Mas é assim que se aprende. Vou estudar melhor essa tar de Win32prn() .
O detalhe específico desta aplicação em que estou focado é que ela usa impressoras matriciais.
Aliás, se alguem estiver curioso, dá uma checada no $$$ de compra de uma matricial versus qquer jato de tinta. É brincadeira. Mas vou testar Win32prn() com matricial nem ue seja pra aprender.

Romeu

PS.: Inter 8 x Juventude 1, embora o xHarbour não tenha nada a ver com isso...
:)) :)) :))
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Impressão em xHarbour

Mensagem por sygecom »

Um bom exemplo para estudo é esse do colega Hasse.
viewtopic.php?t=6465
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder