Create Error..impressão.

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

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Coloque seu código por favor.
Só a parte que imprime.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
ziul
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 20 Out 2009 16:35
Localização: Rio de Janeiro

Create Error..impressão.

Mensagem por ziul »

Boa noite Jairo.
Minha impressora tem o recurso RAW, mas mesmo assim não sai da fila de impressão.
Tem alguma sugestão?

Luiz Fernandes
Anexos
TST_IMPR.prg
Programa fonte
(1.43 KiB) Baixado 166 vezes
Execução do programa (prints na tela)
Execução do programa (prints na tela)
Recurso RAW
Recurso RAW
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Onde está o aquivo ?
Vc está passando uma string e não o endereço do arquivo.
Tem que aparecer: "c:\minha_pasta\meu_arquivo.txt", invés de "ARQIMP"
Aqui outro exemplo que vem no próprio Harbour.

Código: Selecionar todos

#require "hbwin"

PROCEDURE Main()

   LOCAL nPrn := 1
   LOCAL cFileName := Space( 40 )
   LOCAL GetList := {}

   LOCAL aPrn := win_printerList()

   CLS

   IF Empty( aPrn )
      Alert( "No printers installed - Cannot continue" )
   ELSE
      DO WHILE nPrn != 0
         CLS
         @ 0, 0 SAY "win_PrintFileRaw() test program. Choose a printer to test"
         @ 1, 0 SAY "File name:" GET cFileName PICT "@!K"
         READ
         @ 2, 0 TO MaxRow(), MaxCol()
         nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
         IF nPrn != 0
            PrnTest( aPrn[ nPrn ], cFileName )
         ENDIF
      ENDDO
   ENDIF

   RETURN

STATIC PROCEDURE PrnTest( cPrinter, cFileName )

   LOCAL lDelete

   IF Empty( cFileName )
      hb_MemoWrit( cFileName := hb_FNameExtSet( __FILE__, ".prn" ), "Hello World!" + Chr( 12 ) )
      lDelete := .T.
   ELSE
      lDelete := .F.
   ENDIF

   Alert( "win_PrintFileRaw() returned: " + hb_ntos( win_PrintFileRaw( cPrinter, cFileName, "testing raw printing" ) ) )

   IF lDelete
      FErase( cFileName )
   ENDIF

   RETURN
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
ziul
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 20 Out 2009 16:35
Localização: Rio de Janeiro

Create Error..impressão.

Mensagem por ziul »

Segue o código
Anexos
TST_IMPR.prg
Código da impressão
(1.43 KiB) Baixado 91 vezes
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Já vi.
Verifica o endereço do ArqImp, precisa ser absoluto.
C:\MINHA_PASTA\ARQIMP
Aproveita e testa com esse exemplo que postei, para ver se imprime mesmo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
ziul
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 20 Out 2009 16:35
Localização: Rio de Janeiro

Create Error..impressão.

Mensagem por ziul »

Código: Selecionar todos

Function Main()
  LOCAL cImpPadrao := GetDefaultPrinter()
  SetMode(25,80)
  cArq = "ARQIMP"
  *
  Imprime(cArq, cImpPadrao, "TESTANDO IMPRESSAO")  
  return nil

*----------------------------------*
 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('Informe algo p/ imprimir.')
      Return .F.
      EndIf
   *
Wait cArq
Wait cPrint
Wait cTit
   *
   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)
      alert(cMsg)
      EndIf
   *
Wait str(nRet)
   Return .T.
Editado pela última vez por Itamar M. Lins Jr. em 21 Abr 2021 19:15, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Vc está entendendo a proposta de solução do seu problema, ou quer que apenas o Jairo responda ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
ziul
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 20 Out 2009 16:35
Localização: Rio de Janeiro

Create Error..impressão.

Mensagem por ziul »

Oi, Itamar.
Testei com o caminho completo e com o fonte que vc me enviou.
Nenhum dos 2 imprimiu.
Veja os prints anexo

Luiz Fernandes
Anexos
Teste com o programa que vc enviou
Teste com o programa que vc enviou
Teste com o caminho completo do arquivo
Teste com o caminho completo do arquivo
ziul
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 20 Out 2009 16:35
Localização: Rio de Janeiro

Create Error..impressão.

Mensagem por ziul »

Vc está entendendo a proposta de solução do seu problema, ou quer que apenas o Jairo responda ?
Por favor, aceito ajuda de todos.
Por favor, me ajudem.
Obrigado.
Editado pela última vez por Itamar M. Lins Jr. em 21 Abr 2021 22:38, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ quote ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r0
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Um problema parecido com o seu. Porquê a HP p1005 não trabalha em modo RAW por padrão.

Impressora LaserJet P1005 print não imprime

https://h30487.www3.hp.com/t5/Impressor ... td-p/32806
Olá Moises, você pode tentar mudar a configuração da impressora. Vá em Dispositivos e Impressoras, clique com o botão direito sobre o ícone da Laserjet 1005, selecione Propriedades e na janela que aparecer vá na aba Avançado. Na opção procure pelo botão Processador de Impressão e clique, mude para WinPrint e escolha o formato RAW. Então salve as alterações e reinicie o computador para elas entrarem em vigor. Esta dica é dada pelos profissionais da HP ultimamente aqui no Fórum. Boa sorte!
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Create Error..impressão.

Mensagem por Itamar M. Lins Jr. »

Olá!
Caso não queira mudar a configuração da impressora, use esta função.

Código: Selecionar todos

*********************************
Function PrintWinPrn(cArq,cPrint)
*********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST(), n := 0
if empty(aPrn)
   hwg_Msginfo('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()
   hwg_Msginfo("Não foi criado documento")
   Return Nil
EndIf
If !oPrn:startDoc("Imprimindo Documento")
   hwg_Msginfo("Erro na Impressora")
   Return Nil
EndIf

HB_CDPSelect("PT850")
  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.
Atenção ! Essa função embora parecida com a PrintFileRaw, imprime em modo gráfico.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder