Página 1 de 1

Dúvida com PrintFileRaw

Enviado: 06 Abr 2017 20:12
por porter
olá pessoal, com a rotina abaixo, estou imprimindo em uma impressora não fiscal mp-4200 th, mas a impressão está toda bagunçada,
onde eu formato o tamanho da fonte, nos parâmetros do PrintFileRaw ou o arquivo gerado tem que estar formatado ?

Estou compilando com Harbous 3.2

W32PRN_(arq,wPA_ICUPOM)

Código: Selecionar todos

PROCEDURE W32PRN_(arqtxt,nomeimpressora)
    // Essa função, Imprime uma quantidade muito grande de itens
	// sem dar espaço entre eles, ideal para impressora não fiscal
  	Local cPrinter := ALLTRIM(nomeimpressora)
  	Local nResult, cMsg:=""
  	cFileName := "C:\ESTOQUE\" + arqtxt
	
    SET PRINTER TO
    SET DEVICE TO SCREEN
	
    If !File("&cFileName")
       Return Nil
    Else
       nResult := PrintFileRaw( cPrinter, cFileName, "Impressao Pelo Sistema" )
       IF nResult = -1
          cMsg = "Parametros Invalido, 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
       IF len(alltrim(cMsg)) > 1
          Alert(HB_ANSITOOEM(cMsg) )
       ENDIF
    EndIf
    Return Nil

Dúvida com PrintFileRaw

Enviado: 07 Abr 2017 08:42
por porter
olá pessoal,
Encontrei alguns exemplos para uso com PrintFileRaw, vou testar com impressora não fiscal.

Código: Selecionar todos

FUNCTION PrintDosForWin()
	 
	   LOCAL cTexto     := ""
	   LOCAL ON_GRANDE  := CHR(27) + CHR(33) + CHR(16) // Para Impressoras Epson
	   LOCAL OFF_GRANDE := CHR(27) + CHR(33) + CHR(01) // Para Impressoras Epson
	   // Seleciona a Impressora do Windows
	   LOCAL cPrinter   := GetDefaultPrinter()         
	   LOCAL CRLF       := CHR(13) + CHR(10)
	   LOCAL cFileName  := "TEXTO.PRN"
	 
	   cTexto += "Esta e a primeira linha do texto" + CRLF
	   cTexto += Replicate( "*-", 20 ) + CRLF
	   cTexto += ON_GRANDE + "LETRAS GRANDES" + OFF_GRANDE + CRLF
	   cTexto += "Esta e outra linha de texto..." + CRLF
	   cTexto += PADL( "Esquerda ", 40 ) + CRLF
	   cTexto += PADC( "CENTRALIZADO", 40 ) + CRLF
	   cTexto += PADR( "Direita", 40 ) + CRLF
	   cTexto += PADC( "< Linha Final >", 40, "-" ) + CRLF
	 
	   IF WriteStream( cFileName, cTexto )
	      // Envia a Impressao ao Spool do Windows
	      PrintFileRaw( cPrinter, cFileName, "Impressao Em Formato DOS desde Windows" )
	      FERASE( cFileName )
	   ENDIF
	 
	RETURN NIL
	 
	// Esta Funcion la encontre por ahi...
	FUNCTION WriteStream( cFile, cStream )
	 
	   LOCAL nHandle := FCreate( cFile )
	 
	   IF FError() <> 0
	      RETURN( .F. )
	   ENDIF
	 
	   FWrite( nHandle, cStream, Len(cStream) )
	 
	   FClose( nHandle )
	 
	RETURN ( FError() == 0 )
	 
	// FIM DO PROGRAMA