Não adianta, impressão lenta

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
WCARDOSO
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 08 Jul 2004 10:49

Não adianta, impressão lenta

Mensagem por WCARDOSO »

Boa noite,
Só consigo imprimir depois que saio do programa, mas verifiquei no forum os meios que tem para a impressão sair,
e mesmo assim não adiantou e continuo com o problema, me ajudem. Meu Sistema Operacional é XP.

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

Re: Não adianta, impressão lenta

Mensagem por sygecom »

Post um pequeno exemplo de como esta imprimindo que podemos dar a dica em cima do seu exemplo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Não adianta, impressão lenta

Mensagem por Maligno »

Tentou o famoso SET PRINTER TO? (nada depois do TO)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Re: Não adianta, impressão lenta

Mensagem por filizola »

faça o seguinte:

Iniciar / Executar / Regedit -> CTRL + F / localize -> LPT_TIMEOUT -> passe o valor de 15 para 1 -> continue localizando porque tem mais.
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Não adianta, impressão lenta

Mensagem por alaminojunior »

Bom dia à todos.

Use este cara aqui, que resolve.

Código: Selecionar todos

FUNCTION PRCOMMIT
local cPrinter := set( _SET_PRINTFILE, "LPT3" )
set( _SET_PRINTFILE, "LPT2" )
set( _SET_PRINTFILE, "LPT1" )
set( _SET_PRINTFILE, "" )

// restores the original printer-port!
set(_SET_PRINTFILE, cPrinter, .t.)
return nil
Depois da chamada a sua função de impressão, coloque precisamente antes, do Set Device to Screen.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
ronaldoblima
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 26 Jan 2009 09:52
Localização: santo andre

Re: Não adianta, impressão lenta

Mensagem por ronaldoblima »

ola, sou novo no forum
ja passei por este problema e ja resolvi. Faca uma alteracao no registro do windows
va em iniciar, executar, regedit, HKEY_LOCAL_MACHINE, SYSTEM, CONTROL, WOW, LPT_timeout = 1
o valor padrao é 15, altere o valor para 1. feche o sistema (janela DOS) e abra novamente, e veja a diferenca,
eu fiz isso em todas a estacoes de trabalho, inclusive no servidor w2k3 e funcionou.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Re: Não adianta, impressão lenta

Mensagem por Eolo »

Wagner, o que segue já foi indicado aqui no forum, mas é o seguinte: quando vc roda um programa feito com o Clipper, o uso da CPU bate nos 100% e gruda lá. Com isso, "não sobra CPU" pra fazer outras coisas, inclusive impressão.

Vc disse que tem que sair do seu programa pra impressão ser concluida, certo? Pois é: quando vc sai do programa Clipper, a CPU volta a ter folga e então a impressão sai. É fácil comprovar: deixe aberto o medidor de recursos do Windows e inicie/encerre o seu programa...

Pra resolver, é só incluir a seguinte linha no começo do seu programa principal: OL_AutoYield(.T.)

Pra compilar, copie as LIBs OBSLIB e CPMI pra dentro da pasta LIB do Clipper (algo como "c:\clipper\lib"). Na hora de linkar, inclua essas LIBs entre as outras que vc usar. Por ex: "blinker @util1.bli Lib OSLib,CPMI,LFN,LL,ps52,impbar,ctp52" (sem as aspas)

Eu só uso essa função em conjunto com o comando SET PRINTER TO indicado pelo Maligno.

E resolve.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Não adianta, impressão lenta

Mensagem por alaminojunior »

Mas num resolveu isso ainda !!??
Repito, use o código antes do Set Device to Screen.

Código: Selecionar todos

FUNCTION PRCOMMIT
local cPrinter := set( _SET_PRINTFILE, "LPT3" )
set( _SET_PRINTFILE, "LPT2" )
set( _SET_PRINTFILE, "LPT1" )
set( _SET_PRINTFILE, "" )

// restores the original printer-port!
set(_SET_PRINTFILE, cPrinter, .t.)
return nil
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Zekka Borges
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 16 Fev 2009 23:42
Localização: Foz do Iguaçu - PR

Re: Não adianta, impressão lenta

Mensagem por Zekka Borges »

Boa noite Cardoso:

Pode ficar tranquilo, tenho a solução. Quebrei a cabeça durante meses no ano passado para resolver este problema que tambem tinha, e me deixava louco de tanta reclamação de cliente. Tentei todas as soluções que foram apresentadas e muito mais , mas nada dava certo. É realmente um problema de registro no XP,(ambiente XP+ clipper+impressão matricial) mas por mais que se acesse direto ao registro para fazer correções, vai faltar alguma coisa que nao consegui descobrir o que é. Encontrei na net depois de muita pesquisa um utilitário escrito por um analista chamado Jociel de Almeida que disponibilizou na net e eu peguei. O utilitário chama XPSolve32 e resolveu definitivamente este problema. É so um click, esperar um segundo e correr pro abraço meu amigo. Fica tudo, incrivelmente resolvido. Nunca mais tive problema de pausa na impressão com o XP. Tem que instalar em cada máquina que acesse o sistema em clipper. So isso, mais nada. Aproveito para agradecer ao Jociel pois ainda não tive esta oportunidade. Valeu Jociel
Fica com Deus
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Não adianta, impressão lenta

Mensagem por Maligno »

Sou um sujeito de sorte. Nunca na vida tive problema desse tipo. :)

Pra quem se interessou e quiser testar o aplicativo, é só baixar do site do autor:
http://www.jociel.com.br/programas/XPSolve32.zip
Este site, no presente momento, está fora do ar. Não consegui baixar por ele. Há um link alternativo, de um site que não conheço e não posso dizer que seja confiável. Portanto, fica por sua conta e risco: http://www.qbert.com.br/util/xpsolve32.exe

Mas tentem primeiro baixar do sito do autor. Pode ser uma indisposição temporária.

Seria interessante se recebessemos um retorno dos que passam por esse problema, pra sabermos se resolve mesmo. E pra deixar como referência no fórum.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Não adianta, impressão lenta

Mensagem por alaminojunior »

É realmente um problema de registro no XP,(ambiente XP+ clipper+impressão matricial) mas por mais que se acesse direto ao registro para fazer correções, vai faltar alguma coisa que nao consegui descobrir o que é.
Sem querer sair em defesa do Windows, mas não apostaria que existe algum problema em relação à isso.
O que acredito é o seguinte: O sistema operacional entende que o spool de impressão não foi encerrado (devido a algum bug do compilador clipper, ou falta de entendimento entre as partes), por isso, não inicia a impressão. Principamente no caso de plataforma NT, em que o SO entende SET PRINTER TO LPT1, como se LPT1 fosse um arquivo.

Mais uma vez insisto (é a ultima vez hein !), a rotina abaixo foi o que me salvou. Se alguém prometer pra mim, que tentou e não teve êxito, peço desculpas e fico calado.

Código: Selecionar todos

FUNCTION PRCOMMIT
local cPrinter := set( _SET_PRINTFILE, "LPT3" )
set( _SET_PRINTFILE, "LPT2" )
set( _SET_PRINTFILE, "LPT1" )
set( _SET_PRINTFILE, "" )

// restores the original printer-port!
set(_SET_PRINTFILE, cPrinter, .t.)
return nil
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder