Impressão FiveWin com Impressora USB
Sistema Operacional Win98SE –
A impressora em questão é uma HP 3745 – com saída USB – todos outros relatórios funcionam bem.
O ASO que é o maior, na primeira vez qdo. liga o sistema e vamos tentar imprimir aparece a mensagem “Impressora não pronta” ou seja uma mensagem que tem logo após o calculo do tamanho das letras do relatório.
Interessante que se entrar no editor de texto Notpad e imprimir uma página em branco, a mensagem deixa de aparecer e o relatório passa a ser impresso normalmente. Ou seja todas as vezes que desligar o computador, antes de imprimir o relatório tenho que antes entrar em um editor de texto, e imprimir uma página.
Esta rotina de impressão coletei do Livro de Vilian – Vfatec – FiveWin Clipper for Windows.
Vejam os arquivos de configuração do Sistema e parte da rotina de impressao:
Autoexec.bat
...
SET TEMP=C:\WINDOWS\TEMP
SET SWAP=C:\WINDOWS\TEMP
SET CLIPPER=F150
...
Config.sys
DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
DOS=HIGH,UMB
BUFFERS=40
FILES=150
STACKS=18,512
...
// ------------------------------------------------------------------------
// Fun‡ao ....: PrnASO
// Descri‡ao : Imprimir Atestado de Saude Ocupacional
// Parametros .: Nenhum
// Retorna ...: Nada.
// ------------------------------------------------------------------------
FUNCTION PrnASO()
LOCAL nTam, nLen, nTamPag, nTamRel, nLin, oFont,;
oPrn, oRad, bBloco
PRINT oPrn NAME "A S O " PREVIEW
nPag := 0
nTam := 36 // 18 HP 800
nTamRel := 85
nTamPag := 60
nTipo := 1
DO WHILE .t.
DEFINE FONT oFont NAME "ARIAL" SIZE nTam,-12 OF oPrn // HP 3740
** DEFINE FONT oFont NAME "ARIAL" SIZE nTam,-10 OF oPrn // HP 800
oPrn:SetFont(oFont)
nLen := oPrn:GetTextWidht("B",oPrn:oFont)
IF oPrn:nHorzRes()/nLen < nTamRel
nTam-= 0.05
oFont:End()
ELSE
EXIT
ENDIF
ENDDO
IF empty( oPrn:hDC )
MsgStop( "Impressora não pronta!" )
RETURN nil
ENDIF PAGE
nPag ++
nLin := 7
oPrn:CharSay( 02,30," Atestado de Saude Ocupacional " )
oPrn:CharSay( 02,73,"Data: - "+Dtoc(Date()),"D")
oPrn:CharSay( 04,05, OemtoAnsi("Clinica: Clinica - Nome Ltda ","F"))
oPrn:CharSay( 06,05,"Empresa:","F" )
If Atende->Empresa = 'DIST. MAT.'
oPrn:CharSay( 06,13, "Distr. de Alim. Ltda. (Matriz)","F")
Elseif Atende->Empresa = 'DIST. FIL.'
oPrn:CharSay( 06,13, "Distr Alim. Ltda. (Filial)","F")
Elseif Atende->Empresa = 'ATAC. MAT.'
oPrn:CharSay( 06,13, " Atacadista Ltda. (Matriz)","F")
..........
ENDPAGE ENDPRINT
RETURN nil
IMPRESSAO EM USB-IMPRESSORA HP-3745
Moderador: Moderadores
IMPRESSAO EM USB-IMPRESSORA HP-3745
Vou incrementar mais o choro...
Alterei o fonte:
PRINTER oPrn FROM USER
oPrn:SetPage( 9 ) // A4 210 x 297 mm HELP-CLASS PRINTER.PRG
Retirei a linha de previsualização, (* PRINT oPrn NAME "A S O " PREVIEW)
para ver o que acontecia. Antes de imprimir qualquer coisa no Editor de Texto, a mensagem que veio foi em Inglês "Printer not instaled, Please install... " após a impressao no editor de texto, apareceu a janela "Imprimir - Impressora Padrão - HP-Desckjet 3740) etc..
para um PV-1.8 - :? ..
Vamos ver se alguém tem uma idéia.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
No trecho:
IF empty( oPrn:hDC )
O objeto não consegue trazer a informação de impressora pronta, pois o relatório, como voce mesmo disse é grande demais e a impressora esta recebendo comando para imprimir sem que os dados estejam todos no buffer, não importando qual o poder de sua maquina.
Defina nas propriedades desta impressora que ela só deva começar a imprimir após a ultima página estar no buffer.
@braços :?)
No trecho:
IF empty( oPrn:hDC )
O objeto não consegue trazer a informação de impressora pronta, pois o relatório, como voce mesmo disse é grande demais e a impressora esta recebendo comando para imprimir sem que os dados estejam todos no buffer, não importando qual o poder de sua maquina.
Defina nas propriedades desta impressora que ela só deva começar a imprimir após a ultima página estar no buffer.
@braços :?)
IMPRESSORA USB - HP 3745
Infelizmente não funcionou.
Estou testando uma função que peguei no forum do Fivewin.com.br
http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=3406
Espero que, funcione ok. Qualquer coisa informo.
Oziel
-
valdezaires
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 21 Set 2004 20:43
IMPRESSORA USB 3745
Obrigado - baixei o arquivo, não coloquei no programa.
Minha rede windows são quatro máquinas, preferi carregar no iniciar de cada uma.
Beleza funcionou....
Muito Feliz
Oziel Lopes
)javascript:emoticon(':xau')
Tchau
Minha rede windows são quatro máquinas, preferi carregar no iniciar de cada uma.
Beleza funcionou....
Muito Feliz
Oziel Lopes
Tchau