Win_PrintFileRaw() não funcionando

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Win_PrintFileRaw() não funcionando

Mensagem por JoséQuintas »

Tem algum detalhe a mais na função Win_PrintFileRaw() ?
Não consegui fazer imprimir por ela.
Com certeza, usando somente pra impressora matricial.

No programa:

Código: Selecionar todos

Win_PrintFileRaw(Win_PrinterGetDefault(),mTmpFile,"JPA Relatorio " + m_Prog)
Por enquanto voltei matricial para o esquema anterior, apenas com o set printer to, e set device to print.

Obs.
Não tenho matricial aqui pra testar, mas clientes diferentes tiveram o mesmo problema, de não imprimir nada.
Cheguei a colocar a seleção de impressora, pra garantir que estava sendo usada a matricial, mas nem assim.
A seleção de impressora funciona, setar impressora também (dá pra ver pelo Windows que foi alterada).
E dá pra ver o relatório entrando no gerenciador de impressão do Windows (isso acompanhei aqui, com pdfcreator).
Só falta o principal: sair o relatório.
Ainda tenho quem use matricial, principalmente escritórios de contabilidade, pelo baixo custo da fita, e muitos relatórios.

Código: Selecionar todos

Function SelecionaImpressora()
Local aPrinterList := {}, nOpc := 1, lCancel := .f.

aPrinterList := Win_PrinterList()
For nCont = 1 To Len(aPrinterList)
   If aPrinterList[nCont] == Win_PrinterGetDefault()
      nOpc := nCont
      Exit
   Endif
Next   
wAchoice(6,Int(MaxCol()/4),aPrinterList,@nOpc,"Impressora a utilizar")
lCancel := ( LastKey() == 27 )
If .Not. lCancel
   Win_PrinterSetDefault(aPrinterList[nOpc])
Endif   
Return lCancel
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Win_PrintFileRaw() não funcionando

Mensagem por sygecom »

Olá José,
Não tem segredo nem magia, porém existe uma limitação nessa função, ela apenas imprime em impressoras que dão suporte a impressão RAW, algumas impressoras jato de tinta e todas as LX-300+ que tem USB funciona, porem são por que tem suporte a impressão RAW.
Outro detalhe é que você tem que passar o caminho completo do arquivo TEXTO gerado pelo seu sistema, que no caso é sua variavel: mTmpFile

E considere pegar o retorno da impressora:
Alert( "Retorno: " + hb_ntos( WIN_PRINTFILERAW( cPrinter, cFileName, "testando impressão" ) ) )
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

Win_PrintFileRaw() não funcionando

Mensagem por deividdjs »

esse comando funciona em xHarbour ?? ou só em Harbour ...??
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Win_PrintFileRaw() não funcionando

Mensagem por sygecom »

Em xHarbour use:

Código: Selecionar todos

         ...
         ...
         cPrinterName:='c:\temp\arquivo.txt'
         nResult := PrintFileRaw( cPrinterName, cFile, "Impressao Pelo Sistema" )
         IF nResult = -1
            cMsg = "Parametros inválido, Favor Tentar Novamente"
         ELSEIF nResult = -2
            cMsg = "Falha na chamada da Impressora, Favor Verificar a Impressora"
         ELSEIF nResult = -3
            cMsg = "Falha ao Iniciar Impressão, Favor Verificar a Impressora"
         ELSEIF nResult = -4
            cMsg = "Falha ao Iniciar a Primeira Pagina, Favor Verificar a Impressora"
         ELSEIF nResult = -5
            cMsg = "Falha de Memoria da Impressora, Favor Verificar a Impressora"
         ELSEIF nResult = -6
            cMsg = "Não foi Possivel localizar o arquivo de Impressão, Favor Tentar Novamente"
         ENDIF
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

Win_PrintFileRaw() não funcionando

Mensagem por deividdjs »

Bom dia Amigos ..

eu gerei o arquivo texto e mandei imprimir... só que sai tudo desconfigurado ... alguem sabe onde eu errei ?? quando mando no NODOSIMP mostra certo ...
FUNCTION SELECT_PRINT(cARQTXT)

LOCAL nPrn:=1
LOCAL aPrn:= GetPrinters()
SETMODE(25,80)
CLS

IF EMPTY(cARQTXT)
Alert("Obrigatorio informar o arquivo")
quit
ENDIF

IF EMPTY(aPrn)
aOptions := { "SIM", "NAO" }
nChoice := Alert( "ATEN€ÇO !!! NÆo foi possivel localizar nenhuma impressora Instalada, Deseja Instalar uma Agora ?", aOptions, , 5)

DO CASE
CASE nChoice == 0
QUIT
CASE nChoice == 1
RunApplet_imp( "AddPrinter" )
CASE nChoice == 2
QUIT
ENDCASE
ENDIF

DO WHILE !EMPTY(nPrn)
CLS
@ 0,0 SAY 'Escolha uma impressora. ESC' +;
' para sair.'
@ 1,0 TO maxRow(),maxCol()
nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)

IF !EMPTY(nPrn)
PrnTest(aPrn[nPrn], cARQTXT )
ENDIF
ENDDO

@ 22,00 say ""
RETURN(NIL)
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Win_PrintFileRaw() não funcionando

Mensagem por rubens »

Bom dia...

Quintas em qual impressora e windows não está imprimindo ???
Porque se for na Epson LX-350 e Windows 10 só imprime se instalar o driver da própria Epson...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

Win_PrintFileRaw() não funcionando

Mensagem por deividdjs »

windows 7 .. impressora lx-300, epson l375, hp laser ....tentei em todas estas ... e gerando o arquivo e lendo pelo NODOSIMP mostra certinho .. porem quero imprimir em modo RAW usando essa ferramenta ..
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Responder