Demora na impressão
Moderador: Moderadores
- Ricardo Sales Ribeiro
- Usuário Nível 3

- Mensagens: 279
- Registrado em: 13 Jul 2004 18:06
- Localização: Fortaleza-Ceara
Demora na impressão
Ola Amigos!
Tudo Bem
Estou com um problema, é o seguinte, tenho um sistema q gera uma venda, e logo q a venda é fechada, o sistema envia um relatorio para impressora, no entanto, esta impressora fica imprimindo devagar, e só agiliza qdo saiu da minha aplicação, é como se o meu sistema estivesse segurando a impressão. Por que acontece isso, e como posso resolver.
Eu utilizo a impressora LX-300 Epson.
Agradeço desde de já.
Tudo Bem
Estou com um problema, é o seguinte, tenho um sistema q gera uma venda, e logo q a venda é fechada, o sistema envia um relatorio para impressora, no entanto, esta impressora fica imprimindo devagar, e só agiliza qdo saiu da minha aplicação, é como se o meu sistema estivesse segurando a impressão. Por que acontece isso, e como posso resolver.
Eu utilizo a impressora LX-300 Epson.
Agradeço desde de já.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
-
Cleiton Fidelis
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 06 Jul 2004 09:44
- Localização: Divinopolis MG
Ricardo Sales,
Já sofri com isso, mais ainda no XP. Seguinte: basta incluir, no final da rotina de impressão, um SET PRIN TO, para forçar o esvaziamento do buffer de impressão. Como vc mesmo disse, quando "sai da sua aplicação a impressão termina", certo? Isto acontece porque o Clipper, ao sair do ar, esvazia esse buffer.
Eolo
Já sofri com isso, mais ainda no XP. Seguinte: basta incluir, no final da rotina de impressão, um SET PRIN TO, para forçar o esvaziamento do buffer de impressão. Como vc mesmo disse, quando "sai da sua aplicação a impressão termina", certo? Isto acontece porque o Clipper, ao sair do ar, esvazia esse buffer.
Eolo
Código: Selecionar todos
set prin to lpt1
set devi to prin
* comandos de impressão
SET PRIN TO
set devi do scre- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Caros colegas,
Desculpem a minha insistência, mas que essa questão de gerar arquivo antes para impressão, a vejo como melhor opção. Se quiserem compartilhar maiores detalhes sobre isto, vejam:
https://pctoledo.org/forum/viewto ... %E3o#17354
Tenho certeza que esse modo de impressão através do SAY... realmente está caducado por vários motivos. Mas enfim, essa é a minha opinião.
Um clip-abraço :)Pos
Desculpem a minha insistência, mas que essa questão de gerar arquivo antes para impressão, a vejo como melhor opção. Se quiserem compartilhar maiores detalhes sobre isto, vejam:
https://pctoledo.org/forum/viewto ... %E3o#17354
Tenho certeza que esse modo de impressão através do SAY... realmente está caducado por vários motivos. Mas enfim, essa é a minha opinião.
Um clip-abraço :)Pos
Ricardo,
Primeiro liquide o problema que vc apontou, que pode ser resolvido com a inclusão do SET PRIN TO no seu programa. É só uma linha a mais. Fácil.
Amanhã, com este problema resolvido, você vai ter tempo e cabeça pra analisar outras alternativas (isto se houver necessidade). Se hoje o @say dá conta das suas necessidades, continue usando ele. Funciona.
Eolo
Primeiro liquide o problema que vc apontou, que pode ser resolvido com a inclusão do SET PRIN TO no seu programa. É só uma linha a mais. Fácil.
Amanhã, com este problema resolvido, você vai ter tempo e cabeça pra analisar outras alternativas (isto se houver necessidade). Se hoje o @say dá conta das suas necessidades, continue usando ele. Funciona.
Eolo
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Eu acho que seu programa deve estar prendendo o processador e nao está deixando tempo de CPU para o windows gerenciar a impressão como devia, tem uma lib chamada TIMESLICE que foi o Maligno que fez, você pode pegar no meu site com o nome de TSLICE.ZIP, tem o leiame.txt ensinando a usar, tenho certeza que resolverá o problema.
- Ricardo Sales Ribeiro
- Usuário Nível 3

- Mensagens: 279
- Registrado em: 13 Jul 2004 18:06
- Localização: Fortaleza-Ceara
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
todos que tiveram este problema que eu presenciei, com a timeslice resolveu, vc tem que passar um parametro numerico para ela, mude este valor para ver se melhor e verifique no gerenciador de tarefa se o consumo de CPU vai reduzir, verifique como ele fica durante este processo em que a impressora está travando.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
SET DEVICE TO
Colega Ricardo,
E se tentar a minha sugestão de criar arquivo de impressão
. Não é muito trabalhoso, se você estava utilizando o @ SAY, só basta fazer assim:
SET PRINTER TO "FICHA.PRN"
SET DEVICE TO PRINTER
@ SAY ... // continua o mesmo
SET DEVICE TO SCREEN
SET PRINTER TO
COPY FILE("FICHA.PRN") TO ("LPT1")
Ao final, você testou assim
.
E se tentar a minha sugestão de criar arquivo de impressão
SET PRINTER TO "FICHA.PRN"
SET DEVICE TO PRINTER
@ SAY ... // continua o mesmo
SET DEVICE TO SCREEN
SET PRINTER TO
COPY FILE("FICHA.PRN") TO ("LPT1")
Ao final, você testou assim
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Pois é, Eder ! Você entendeu o espirito do negócio ?. Eu simplesmente, estou repassando a minha experiência. E tem se demostrado muito eficaz a impressão através de arquivo-de-impressão. Mas agora que nós estaremos sujeitos que o cliente mude a impressora para USB, ou até mesmo para visualizar a impressão. Mas claro, como tudo implica um pouquinho de adaptação... que para o futuro não vai se arrepender.
Só falta me responderem se esta idéia funcionou ou não.
Outra coisa que eu acho que pode ser útil:
Um clip-abraço :)Pos
Só falta me responderem se esta idéia funcionou ou não.
Outra coisa que eu acho que pode ser útil:
Mas a idéia principal de geração de arquivo é boa, e eu estou disposto a ouvir dos colegas a sua opinião, numa boa !!Adicione uma nova linha na seção [386ENH] do arquivo system.ini:
PerVMFiles=150 (ou o valor necessitado)
Para resolver o problema de tempo de impressao em rede, adicione no arquivo C:\WINDOWS\SYSTEM32\SYSTEM.INI:
[Netwok]
PrintBufTime=1
[IFSMGR]
PrintBufTime=1
Um clip-abraço :)Pos
Eu uso o SET PRIN TO em conjunto com o OL_AutoYield() - que acredito ter a mesma função da TimeSlice - e foi a primeira vez que não vi funcionar com alguém. Estranho. Tenho clientes rodando 98 / ME / XP e em todos funciona beleza, exatamente como diz o Norton Guide... Mas enfim, como alguém já disse aqui no Forum, informática não é uma ciência exata.
Mas, aproveitando, uma pergunta: usando o mesmo computador e o mesmo EXE para imprimir linha a linha ou um arquivo inteiro, em uma EPSON e em uma HP, por que a EPSON inicia a impressão no ato e a HP fica "pensando" um pouco até começar a impressão? (e não é só no Clipper, até com o Word por ex acontece a mesma coisa).
Eolo
Mas, aproveitando, uma pergunta: usando o mesmo computador e o mesmo EXE para imprimir linha a linha ou um arquivo inteiro, em uma EPSON e em uma HP, por que a EPSON inicia a impressão no ato e a HP fica "pensando" um pouco até começar a impressão? (e não é só no Clipper, até com o Word por ex acontece a mesma coisa).
Eolo
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Tche, eu usa normalmente minhas impressões abaixo segue um exemplo:
Abraços
Leonardo Machado
Código: Selecionar todos
SET DEVICE TO PRINT
set print to lpt1
@ PROW()+1,01 SAY " Placa.........: "
@ PROW(),pcol()+1 SAY xplaca pict"@R !!!-!!!!"
eject
SET PRINTER TO
set device to screen
NETCANCEL("LPT1") // tem q esta com a CT.LIB ou CTP.LIB
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql

