Página 1 de 1

Direcionamento da LPT1 em Habrour

Enviado: 13 Abr 2015 18:35
por Cavalo Marinho
Boa noite pessoal
Para qual arquivo e onde o harbour joga a impressão quando direcionamos para LPT1:
Explicando melhor, quando o soft é compilado em clipper e o sistema envia um arquivo para LPT1 é criado um arquivo de nome PRNSPL na pasta C:\USERS\NOMEDOSUSUARIO\PRNSPL (windows 7) é assim que o spool do windows enviar este arquivo para impressora ou o DOSPRN que imprime para uma impressora USB sabe capturar este arquivo e envia para impressora que está conectada na usb e configurada do DOSPRN, acontece que no harbour não funciona deste jeito, quando enviamos para LPT1 e não tem impressora nesta porta o sistema simplesmente trava e não cria o arquivo como em clipper, fiz um teste em clipper e em harbour, quando rodo compilado no clipper é criado o arquivo PRNSPL mas em harbour não.
Alguém tem uma luz? assim posso configurar o DOSPRN para capturar na pasta onde o arquivo é criado.

Direcionamento da LPT1 em Habrour

Enviado: 13 Abr 2015 19:30
por alxsts
Olá!

Veja os posts do Itamar M. Lins Jr. no tópico Set device to printer.

Direcionamento da LPT1 em Habrour

Enviado: 13 Abr 2015 20:40
por Cavalo Marinho
Obrigado por responder
Acontece que converti meus sistema para harbour em modo console, não estou querendo mexer neles, está em fase de desenvolvimento uma versão em minigui, mais ainda vai demorar para ficar pronto, então preciso anda trabalhar no modo antigo, utilizando o DOSPRN para impressoras USB.

Direcionamento da LPT1 em Habrour

Enviado: 13 Abr 2015 23:22
por Itamar M. Lins Jr.
Acontece que converti meus sistema para harbour em modo console,
A explicação pode ser usada em qualquer situação. CUI ou GUI. (Console Interface) ou (Graphical User Interface)

Saudações,
Itamar M. Lins Jr.

Direcionamento da LPT1 em Habrour

Enviado: 13 Abr 2015 23:39
por Itamar M. Lins Jr.
Não precisa saber como funciona, as coisas assim do modo que vc está querendo saber, quem souber e quiser explicar ai, beleza.
O que vc precisa saber é que não é necessário usar o DOSPRN, nem set device to lpt1, nem preocupar-se como a impressora está instalada LPT1, USB etc...

Apenas mude a direção do seu antigo sistema(lpt1/com1/etc) para um arquivo qualquer(disco->"prn") e use hb_PrintFileRaw() p/ imprimir em qualquer impressora em qualquer porta, em qualquer lugar da rede.


Saudações,
Itamar M. Lins Jr.

Direcionamento da LPT1 em Habrour

Enviado: 15 Abr 2015 15:10
por Cavalo Marinho
Boa tarde a todos
Amigos estou tentando fazer uns testes com printfileraw() e getdefaultprinter() mas não consigo compilar pois não encontro estas duas funções referenciadas, já setei set lib para a pasta do harbour etc, qual arquivo de lib.a que encontra-se estas duas funções?, :%
Utilizo minigui extend com mingw, preciso da lib com extensao .a
Desde já fico agradecido

Direcionamento da LPT1 em Habrour

Enviado: 15 Abr 2015 15:45
por alxsts
Olá!

É necessário linkar a lib HbWin. Coloque no teu arquivo .Hbp uma linha contendo -lHbWin

Direcionamento da LPT1 em Habrour

Enviado: 15 Abr 2015 21:14
por Cavalo Marinho
Boa noite AlxSts
Já tem esta linha ono meu .hbp, mas mesmo assim dar um erro que não encontra as funções referidas no post anterior
Veja o conteúdo do meu arquivo teste.hbp,

-hbexe
-mt
-inc
-gtwvg
-lhbwin
-oTeste

TESTE.PRG

Direcionamento da LPT1 em Habrour

Enviado: 15 Abr 2015 22:04
por alxsts
Olá!

O Itamar utiliza a HwGui. Você não usa. Então, nos exemplos do outro tópico, troque todas as chamadas à função hwg_Msgstop() pela função Alert().

Ainda naquele tópico, no post que contém o código da função PrintWinPrn(cArq,cPrint), existe uma constante manifesta (FORM_A4) mas não temos o arquivo include (.ch) que a define. Por enquanto, troque por um valor inteiro e teste (isto é chute). Talvez o Itamar poste o conteúdo deste arquivo .ch.

Quanto ao resto, seria muito mais fácil e objetivo ajudar se você postasse as mensagens de erro que são geradas na compilação.

Direcionamento da LPT1 em Habrour

Enviado: 15 Abr 2015 23:52
por Itamar M. Lins Jr.
Isso porque na época que foi criado esses exemplos, não tinha a devida organização.
O correto(melhor) é:

Código: Selecionar todos

#include "hbwin.ch"
//Trocar FORM_A4 por WIN_DMPAPER_A4
oPrn : FormType  := WIN_DMPAPER_A4 //FORM_A4
Saudações,
Itamar M. Lins Jr.