Clipper On Line • Ver Tópico - Create Error..impressão.

Create Error..impressão.

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

Moderador: Moderadores

 

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 18:12

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

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Create Error..impressão.

Mensagempor ziul » 21 Abr 2021 18:19

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 25 vezes
Execucao.png
Execução do programa (prints na tela)
Erro Impr.png
Recurso RAW
ziul
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 20 Out 2009 15:35
Cidade/Estado: Rio de Janeiro
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 18:40

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.
#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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Create Error..impressão.

Mensagempor ziul » 21 Abr 2021 18:42

Segue o código
Anexos
TST_IMPR.prg
Código da impressão
(1.43 KiB) Baixado 26 vezes
ziul
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 20 Out 2009 15:35
Cidade/Estado: Rio de Janeiro
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 18:44

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Create Error..impressão.

Mensagempor ziul » 21 Abr 2021 18:59

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.
Nota de Moderação:
Itamar M. Lins Jr.: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
ziul
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 20 Out 2009 15:35
Cidade/Estado: Rio de Janeiro
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 19:17

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Create Error..impressão.

Mensagempor ziul » 21 Abr 2021 19:35

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
Segundo pgm.png
Teste com o programa que vc enviou
Teste com caminho completo.png
Teste com o caminho completo do arquivo
ziul
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 20 Out 2009 15:35
Cidade/Estado: Rio de Janeiro
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Create Error..impressão.

Mensagempor ziul » 21 Abr 2021 19:53

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.
Nota de Moderação:
Itamar M. Lins Jr.: Mensagem editada para colocar a tag [ quote ]
Veja como utilizar esta tag: Clique aqui
ziul
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 20 Out 2009 15:35
Cidade/Estado: Rio de Janeiro
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 22:38

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/Impressoras-Archive-Somente-Leitura/Impressora-LaserJet-P1005-print-n%C3%A3o-imprime/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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Create Error..impressão.

Mensagempor Itamar M. Lins Jr. » 21 Abr 2021 22:51

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

*********************************
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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro