Página 18 de 19
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 17:26
por Itamar M. Lins Jr.
Olá!
Eu vi seu código. Vc precisa jogar(direcionar) a saida para um arquivo texto, neste caso.
Essas duas funções uma liga a impressão em arquivo, a outra desliga.
Vc imprime da mesma forma que eu aqui, usando ? e ??
Código: Selecionar todos
*******************************
Function CriaArqImpressao(cArq)
*******************************
*
*
if pcount() = 0
cArq := "etiquetas.txt"
endif
IF hb_vfExists(cArq)
DO WHILE !Empty(hb_vfErase(cArq))
alert("Falha apagando o arquivo: "+cArq)
ENDDO
ENDIF
set printer to &cArq
set print on
set console off
set Printer on
Return cArq
*********************
Function FecharImpres
*********************
*
*
set margin to 0
set print off
set printer to
set console on
set Printer off
return .t.
Depois use Win_PrintFileRaw
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)
alert('Informe algo p/ imprimir.')
Return .F.
EndIf
If empty(aPrn)
alert('Não há impressoras instaladas')
Return .F.
EndIf
//alert( "win_printerStatus(): " + hb_ntos( win_printerStatus(cPrint) ) )
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
alert(cMsg)
EndIf
Return .T.
A impressora pode está na USB ou COM ou LPT, precisa está cadastrada e ou compartilha no windows.
Saudações,
Itamar M. Lins Jr.
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 17:49
por alxsts
Olá!
Itamar M. Lins Jr. escreveu:Depois use Win_PrintFileRaw
Fiz um teste com esta função Imprime(cArq,cPrint,cTit) que você postou. Retornou o valor 1. Criou o arquivo "Pedido.PDF". Ao abri-lo (Chrome), dá erro. Verifiquei que o arquivo está com zero bytes...
A impressora padrão é "Microsoft Print to PDF"
Itamar M. Lins Jr. escreveu:A impressora pode está na USB ou COM ou LPT, precisa está cadastrada e ou compartilha no windows.
Tem algo a ver com isto? Onde estou errando?
Edit: mandei imprimir um arquivo .PRG, gerado pelo Visual Studio Code...
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 18:13
por bcm
No código fonte da etiqueta que te enviei tem a opção de imprimir o teste de posicionamento, geralmente eu escolho a opção de imprimir direto, praticamente ele não executa esse código. Meu maior problema está no fato de travar quando envio a etiqueta e não consigo imprimir.
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 18:17
por JoséQuintas
De uns tempos pra cá, citam migração graspro mas não tem nada a ver.
bcm escreveu:estou precisando gerar etiquetas de produtos com a impressão das barras do código de barras, mas está travando,
É mais do que óbrio travar: o default de impressão é pra matricial conectada na porta LPT1, o que não deve existir.
Resolver o travamento não vai resolver o código de barras, e talvez nem sem código de barras imprima, se não for impressora com texto, geralmente modelos antigos de impressora.
Já foi passada a alternativa pra impressoras USB, por exemplo, mas lembrando que precisa ter o recurso de texto.
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 18:23
por bcm
Ok!
Vou ver se altero o código fonte a adapto com as funções que me enviou.
Assim que eu conclui te retorno .
desde de já te agradeço pela força.
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 19:05
por alxsts
Olá!
alxsts escreveu:Onde estou errando?
Acho que entendi. Precisa passar um arquivo aberto para a função. Depois vou testar.
Convertendo Sistema do GASPRO para Harbour
Enviado: 06 Dez 2023 19:18
por Itamar M. Lins Jr.
Olá!
geralmente eu escolho a opção de imprimir direto,
Neste caso não pode, pois quem controla a impressão é o gerenciador do windows.
Precisa usar as novas funções do Harbour(windows) para isso.
Basicamente existe duas formas, TXT ou arquivo com meta dados.(?) -> Já desenhado via a classe WIN_PRN().
Criou o arquivo "Pedido.PDF". Ao abri-lo (Chrome),
Não entendi nada. Alxsts
Mas Win_PrintFileRaw() é enviado texto puro para o gerenciador do windows.
Para gerar em PDF use a classe WIN_PRN().
Código: Selecionar todos
*********************************
Function PrintWinPrn(cArq,cPrint)
*********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST(), n := 0
if empty(aPrn)
alert('Não há impressoras instaladas')
return .f.
endif
If cPrint == Nil
cPrint := win_PrinterGetDefault()
EndIf
oPrn := win_prn():New(cPrint)
oPrn : LandScape := .F.
oPrn : FormType := WIN_DMPAPER_A4
oPrn : Copies := 1
oPrn : CharSet(255)
//oPrn : setfont('Courier New',,10,{ 4, -70 },,,255)
oPrn : SetFont( "Lucida Console", 8, { 4, -70 } )
If !oPrn:Create()
alert("Não foi criado documento")
Return Nil
EndIf
If !oPrn:startDoc("Imprimindo Documento")
alert("Erro na Impressora")
Return Nil
EndIf
HB_CDPSelect("PT850")
//setprc(7,0)
cText := memoread(cArq)
nLinh := mlcount(cText)
oPrn:NewLine()
oPrn:NewLine()
For n := 1 to nLinh
oPrn:Textout(WIN_ansitooem(memoline(cText,,n)),.t.)
Next
oPrn:EndDoc()
HB_CDPSelect( "PTISO")
Return .t.
Ajustar a fonte de letra conforme 132/80/60 colunas.
Ps. No caso das etiquetas, a impressora precisa aceitar modo RAW texto puro, estou me referindo a ARGOX 214 por exemplo.
Saudações,
Itamar M. Lins Jr.
Convertendo Sistema do GASPRO para Harbour
Enviado: 07 Dez 2023 11:37
por bcm
Bom dia!
A impressora que eu preciso imprimir a etiqueta é a Bematech L42 DT.
A impressão é de etiquetas de produtos com o código de barras.
Eu consegui fazer imprimir, mas o código de barras não está saindo, está substituindo as barras por outros caracteres.
Convertendo Sistema do GASPRO para Harbour
Enviado: 07 Dez 2023 13:07
por Itamar M. Lins Jr.
Olá!
Verifique a pagina de código do sistema.
Tem que imprimir no arquivo da forma que manda para impressora quando era DOS.
Teste com o CLIPPER mandando para arquivo e jogando para impressora. Compare com a mesma impressão do Harbour.
Deve ser a página de código, o padrão do clipper é 437.
Mude para:
Antes de mandar imprimir.
Depois volte para sua PTISO, que é o português.(não sei se está usando assim).
Saudações,
Itamar M. Lins Jr.
Impressão de Etiqueta na Bematech / Elgin L42 DT
Enviado: 10 Dez 2023 09:33
por bcm
Bom dia!
Estou precisando imprimir etiquetas de produtos com o código de barras na Impressão de Etiqueta na Bematech / Elgin L42 DT, alguém teria um exemplo de código fonte feito em harbour que pudesse me enviar. Detalhe, meu sistema era desenvolvido em clipper e gaspro 4.0 e eu compilei para harbour, está em modo console.
Convertendo Sistema do GASPRO para Harbour
Enviado: 30 Jan 2024 17:52
por bcm
Boa tarde!
Meu sistema era feito em gaspro40 eu compilei em modo console.
No windows 7 e 10 roda perfeitamente.
Alguém sabe me dizer se ele rodaria normalmente no windows 11?
Convertendo Sistema do GASPRO para Harbour
Enviado: 01 Fev 2024 11:08
por marco.prodata
bcm escreveu:Boa tarde!
Meu sistema era feito em gaspro40 eu compilei em modo console.
No windows 7 e 10 roda perfeitamente.
Alguém sabe me dizer se ele rodaria normalmente no windows 11?
99,999999% que sim
Convertendo Sistema do GASPRO para Harbour
Enviado: 01 Fev 2024 14:14
por bcm
Boa tarde!
Obrigado amigo.
Um grande abraço.
Convertendo Sistema do GASPRO para Harbour
Enviado: 24 Abr 2024 17:00
por bcm
Meu sistema era feito em gaspro40 eu compilei em modo console e sempre carrega um tela preta antesde carregar o sistema.
Teria como maneira de não aparecer está tela?
Convertendo Sistema do GASPRO para Harbour
Enviado: 24 Abr 2024 19:24
por JoséQuintas
Adicione na compilação -GUI