Comando de impressão de arquivo.

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

Moderador: Moderadores

Avatar do usuário
Duda 'Sgluber'
Usuário Nível 3
Usuário Nível 3
Mensagens: 148
Registrado em: 11 Mar 2013 21:57
Localização: Interior de São Paulo

Comando de impressão de arquivo.

Mensagem por Duda 'Sgluber' »

asimoes escreveu:Duda,

O seu teste inicial funcionou também aqui comigo, usando as seguintes impressoras:

Ricoh AF-2050 e LexMark T-654

[]´s
É o tipo de informação muito bem-vinda para quem estiver lendo este tópico no futuro, especialmente pq cita duas marcas/modelos q não são da HP. Eu nunca testei em outras impressoras q não fossem da própria HP.

Muito obrigado pelo retorno, asimoes! Imagem
Comecei pra valer nos tempos do MSX e nunca mais parei... grande caminhada! :-)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Comando de impressão de arquivo.

Mensagem por microvolution »

prezados senhores,
estou enfrentando alguns problemas, pois desde 01/06/15 que descobri que a impressão tradicional SET PRINTER TO LPT1 não funciona com os programas externos DOS2USB, DOSPRN, etc nem se tiver impressora matricial, não imprime...
aí falei, basta! tem que ter algo nativo que imprima em qualquer tipo de impressora.
Aí achei o WINPRINTFILERAW().
Estou conseguindo imprimir nele, a princípio a impressora que estou testando é HP C4280 em USB, só que a impressão não está saindo correta.
Está tudo do mesmo tamanho, e os ESC (CHR 27 + W, 15, 18, 0, 1,etc....) não estão sendo aplicados.

Alguém aqui sabe uma solução?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Comando de impressão de arquivo.

Mensagem por asimoes »

Você tem que ver o manual da impressora e usar comandos equivalentes PCL
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Comando de impressão de arquivo.

Mensagem por microvolution »

asimoes escreveu:Você tem que ver o manual da impressora e usar comandos equivalentes PCL
Amigo asimoes, como é esse PCL comandos equivalentes?

Outra coisa, como no cliente final (possível que eu vender meu aplicativo) seria a impressora dele, então tem que ser algo genérico a todas as impressoras e nativo no windows e sistema.
É possível?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Comando de impressão de arquivo.

Mensagem por asimoes »

Primeiro de tudo o seu sistema tem que saber ou perguntar ao usuário para qual impressora ele está direcionando a impressão.
Se for uma matricial, a impressão será da mesma forma Chr(15) etc...
O WinPrintFileRaw pode ser usado nos 2 casos.

Um pequeno exemplo usando PCL
Agora é só testar.

Código: Selecionar todos

SET CONSOLE OFF
SET DEVICE TO PRINT
SET PRINTER TO TESTE.TXT
SET PRINT ON
SetImp(.T.)
@ PROW()+1,000 SAY "TESTE USANDO PCL"
SET PRINT OFF
SET PRINTER TO
SET DEVICE TO SCREEN

FUNCTION SetImp(lCompacta,lLandScape)
HB_Default(@lCompacta,.F.)
HB_Default(@lLandScape,.F.)

* Informações:
* @ 00,00 SAY CHR(27)+'%0A' --> Substitui o SetPrc(00,00)

@ PROW(), PCOL() SAY CHR(27)+"E"
IF lLandScape
   @ PROW(), PCOL() SAY CHR(27)+"&l1O"
ENDIF
IF lCompacta
   cPclTamanho := "18"
ELSE
   cPclTamanho := "10"
ENDIF
@ PROW(), PCOL() SAY CHR(27)+"%0A"
@ PROW(), PCOL() SAY CHR(27)+"(12U"
@ PROW(), PCOL() SAY CHR(27)+"(s0p"+cPclTamanho+"h0s0b4102T"
SetPrc(0,0)
RETURN .T.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Comando de impressão de arquivo.

Mensagem por microvolution »

asimoes escreveu:Primeiro de tudo o seu sistema tem que saber ou perguntar ao usuário para qual impressora ele está direcionando a impressão.
Se for uma matricial, a impressão será da mesma forma Chr(15) etc...
O WinPrintFileRaw pode ser usado nos 2 casos.

Um pequeno exemplo usando PCL
Agora é só testar.
Prezado asimoes, testei seu exemplo.
ele gerou um .TXT com as seguintes linhas:

Código: Selecionar todos

E%0A(12U(s0p18h0s0b4102T
TESTE USANDO PCL
Bom, e, aí, o que fazer com esse TESTE.TXT?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Comando de impressão de arquivo.

Mensagem por asimoes »

Supondo que você vai fazer o teste na sua impressora padrão:
Depois do SET PRINTER TO

WIN_PrintFileRaw(WIN_PrinterGetDefault(),"TESTE.TXT",''Impressão: PrintFileRaw')
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Comando de impressão de arquivo.

Mensagem por microvolution »

asimoes escreveu:Supondo que você vai fazer o teste na sua impressora padrão:
Depois do SET PRINTER TO

WIN_PrintFileRaw(WIN_PrinterGetDefault(),"TESTE.TXT",''Impressão: PrintFileRaw')
Bom dia "asimoes"!
O resultado foi o seguinte:
1 - a impressora puxa o papel imediatamente após o PRINTFILERAW, mas, fica no display a frase "imprimindo..."
2 - após um bom tempo, ela faz um outro barulho "curto" como se começasse a imprimir... mas nada sai, o papel continua agarrado.
3 - depois de outro tempo ela faz outro barulho e o papel continua agarrado;
4 - sou obrigado a pressionar o botão "cancelar" e aí o papel sai sem nada impresso.
5 - pra tirar a dúvida da primeira tentativa q ficou nos mesmos moldes dos itens 1 a 4 acima, eu fiz uma alteração no seu código para que houvessem mais linhas de impressão, ao todo coloquei 5 linhas de texto a serem impressas e infelizmente, deu o mesmo resultado dos passos 1 a 4.

Enfim, o que V.Sa. pode concluir com o resultado?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Comando de impressão de arquivo.

Mensagem por rochinha »

Amiguinhos,

Onde está o site Harbour Online Help do Pritpal Bedi?
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.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Comando de impressão de arquivo.

Mensagem por asimoes »

Rochinha, parece que foi hackeado
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Comando de impressão de arquivo.

Mensagem por rochinha »

Amiguinhos,
Rochinha, parece que foi hackeado
Que droga, era sem duvida o mais completo, pois mostrava o código fonte de cada função, qual biblioteca fazia parte, etc.

Mandei uma mensagem via Facebook para o Pritpal Bedi, e quem sabe ele nos dá uma resposta.
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.
Responder