IMPRESSAO EM USB-IMPRESSORA HP-3745
Enviado: 11 Mai 2005 11:26
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
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