Página 1 de 2
Create Error..impressão.
Enviado: 07 Abr 2014 11:08
por scom
Ola amigos.
Estou com um prolema e já busquei solução em vários tópicos e ainda não consegui.
tem uma impressora capturada na LPT3 capturo direto no no comando NET USE LPT3 \\ESTOQUE\LX /YES
Quando vou no CMD e mando DIR>LPT3 imprime normal mas no sistema toda vez que preciso imprimir nela da o seguinte erro
error term/2014 create error lpt3.prn
ja quebrei a cabeça e não consegui resolver...por favor alguem tem uma luz pra me dar?
O sistema é em Xharbour modo Console.
Create Error..impressão.
Enviado: 07 Abr 2014 11:46
por Itamar M. Lins Jr.
Cadê o código ?
Saudações,
Itamar M. Lins Jr.
Create Error..impressão.
Enviado: 07 Abr 2014 12:39
por Kapiaba
Create Error..impressão.
Enviado: 08 Abr 2014 14:06
por Itamar M. Lins Jr.
Essas são forma arcaicas de imprimir.
Use PrintFileRaw() e se livre desses bats, arquivo bat p/ imprimir é coisa do passado.
Tem n recursos prontos p/ usar todo potencial das impressoras modernas, inclusive usando as DLL fornecida pelos fabricantes.
Saudações,
Itamar M. Lins Jr.
Create Error..impressão.
Enviado: 08 Abr 2014 17:02
por Kapiaba
Veja se ajuda, co
Código: Selecionar todos
FUNCTION ImpSpool( cFileTxt, cPorta, lErase )
LOCAL CPRINTER
LOCAL cImpPadrao := GetDefaultPrinter() // É a impressora que esta como padrão no momento anterior a vc setar onde quer imprimi
//cPorta := PrnGetPort()
Default cPorta := Alltrim( PrnGetPort() ), lErase:= .t.
cPrinter := PrinterPortToName( cPorta )
IF EMPTY( cPrinter )
cPrinter := PrinterPortToName( "USB002" )
IF EMPTY( cPrinter )
cPrinter := PrinterPortToName( "USB001" )
ENDIF
ENDIF
IF .NOT. EMPTY( cPrinter ) // TEM USB
PrintFileRaw( cPrinter, TrueName( "CUPOM.TXT" ), "Impressão de Vendas" )
ELSEIF LEN( cPorta ) <= 5 .and. Left( Upper(cPorta), 4 ) = "LPT1"
//--- Spool Local - Matricial em LPT1
cPorta:= "PRN"
WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 )
// Impressao na PORTA COM 1 ou 2
ELSEIF Left( Upper(cPorta),4) = "BEMA" .OR. Left( Upper(cPorta),3) = "COM" ) // Impressao em impressoras de rede COM1/2
Set Printer To ( cPorta ) // Somente para setar a impressora
PrintFileRaw( cPorta , cFileTxt )
Set Printer To ( cImpPadrao )
ELSE
//--- Spool Remoto - Matricial em LPT1
WAITRUN("COMMAND.COM /C COPY /B " + cFileTxt + " " + cPorta, 0 )
ENDIF
IF lErase // Vem .T. da tela de vendas
FERASE( cFileTxt )
ENDIF
RETURN( .T. )
Create Error..impressão.
Enviado: 08 Abr 2014 17:33
por JoséQuintas
Não lembro exatamente o que pertence a qual versão, mas tem diferença entre os Windows:
LPT3
LPT3:
Dependendo da versão do Windows, pode precisar ou não dos dois pontos.
Create Error..impressão.
Enviado: 08 Abr 2014 17:51
por Pablo César
Muito bom o seu exemplo Kapiaba, gostei !
Se bem, que teria que ter como opção, quando não tiver impressora alguma instalada.
Obrigado por compartilhar.
Dependendo da versão do Windows, pode precisar ou não dos dois pontos.
Eu acredito que sem os dois pontos deve funcionar perfeitamente.
Create Error..impressão.
Enviado: 08 Abr 2014 18:06
por Itamar M. Lins Jr.
Tudo isso ai, pode ser simplificado apenas com printfileraw() caso use apenas texto puro p/ imprimir.
Não importa se é USb, COM, LPT, ou rede.
Caso queira simplificar p/ o usuário, aparecer um combobox já pré configurado p/ escolher qual impressora imprimir, gravar em algun arquivo INI, para ler onde está cada impressora.
Tipo impressora de cheques, impressora balcão, impressora padrão...
P/ usar basta apenas uma linha:
imprime("MEUARQTXT","IMPRESSORATAL","RELATORIO X ")
Código: Selecionar todos
**********************************
Function Imprime(cArq,cPrint,cTit)
**********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST()
hb_default(@cPrint,win_PrinterGetDefault())
hb_default(@cTit,"PEDIDO")
If Empty(cArq)
hwg_Msginfo('Informe algo p/ imprimir.')
Return .F.
EndIf
If empty(aPrn)
hwg_Msginfo('Não há impressoras instaladas')
Return .F.
EndIf
nRet := Win_PrintFileRaw(cPrint,cArq,cTit)
if nRet < 1
cMsg := 'Erro Imprimindo: '
SWITCH nRet
CASE -1
cMsg += "Parâmetro inválido passado" ; EXIT
CASE -2
cMsg += "WinAPI OpenPrinter() Falha na chamada" ; EXIT
CASE -3
cMsg += "WinAPI StartDocPrinter() Falha na chamada" ; EXIT
CASE -4
cMsg += "WinAPI StartPagePrinter() Falha na chamada" ; EXIT
CASE -5
cMsg += "WinAPI malloc() of memory failed" ; EXIT
CASE -6
cMsg += "Arquivo " + cArq + " não Localizado" ; EXIT
//DEFAULT
// cMsg += cFile + " PRINTED OK!!!"
END
hwg_Msgstop(cMsg)
EndIf
Return .T.
Saudações,
Itamar M. Lins Jr.
Create Error..impressão.
Enviado: 09 Abr 2014 09:39
por Kapiaba
Pablo César, veja se ajuda:
http://forums.fivetechsupport.com/viewt ... =3&t=28184
abs,
Create Error..impressão.
Enviado: 30 Mar 2021 12:08
por ziul
Boa tarde Itamar.
Testei Function Imprime(cArq,cPrint,cTit).
Tentei compilar, mas deu erros:
undefined reference to ´HB_FUN_WHG_MSGINFO´ e ´HB_FUN_WHG_MSGSTOP´
Poderia me ajudar?
Veja em anexo o código compilado e a msg de erro.
Obrigado.
Atenciosamente,
Luiz Fernandes
Create Error..impressão.
Enviado: 30 Mar 2021 12:42
por Itamar M. Lins Jr.
Olá!
É HWG_*...
Mude para ALERT()
São funções da Hwgui, basta trocar por ALERT() ou "@ x,y say..."
Saudações,
Itamar M. Lins Jr.
Create Error..impressão.
Enviado: 30 Mar 2021 18:33
por ziul
Boa noite Itamar.
Obrigado. Acertei.
Poderia me ajudar de novo?
Estava testando em uma impressora da rede.
Aparecia a impressão em "DISPOSITIVOS E IMPRESSORAS", mas não saia disso. Não imprimia.
Coloquei uma impressora local,
Aparece em "DISPOSITIVOS E IMPRESSORAS", some, mas nada sai na impressora.
Abs,
Luiz Fernandes
Create Error..impressão.
Enviado: 30 Mar 2021 22:40
por Itamar M. Lins Jr.
Olá!
Estava testando em uma impressora da rede.
Não tem importância onde está a impressora se local ou em rede.
Basta ela aparecer quando vc usa Word, Excel, Notepad etc... Que vai aparecer para o Harbour também.
Coloque a impressora que vc quer imprimir como "padrão" (default) lá na caixa(aba) de impressoras do windows.
Deve está setado para alguma virtual...
Ou se desejar ver quais estão cadastradas basta imprimir o conteúdo de aPrn.
Saudações,
Itamar M. Lins Jr.
Create Error..impressão.
Enviado: 31 Mar 2021 09:12
por Jairo Maia
ziul escreveu:Aparece em "DISPOSITIVOS E IMPRESSORAS", some, mas nada sai na impressora.
Outra coisa também: Informe qual é a impressora.
Win_PrintFileRaw(cPrint,cArq,cTit) Imprime somente em impressoras compatíveis com o modo RAW. Se a impressora não tem esse recurso disponível ou está desativado, ocorre o que você disse: "Some mas não imprime".
Create Error..impressão.
Enviado: 21 Abr 2021 18:08
por ziul
Boa noite Jairo.
A Minha impressora é compatível com RAW. Veja o print.
Mesmo assim, não sai da fila de impressão.
Tem alguma dica?
Luiz Fernandes