Clipper On Line • Ver Tópico - Impressao em impressoras via putty

Impressao em impressoras via putty

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

Moderador: Moderadores

 

Impressao em impressoras via putty

Mensagempor narlem » 27 Jan 2010 15:48

Olá,

Alguem aqui consegue imprimir via putty em qualquer impressora que esteja instalada no windows ou no linux, ou seja o sistema estaria em um servidor linux, e sendo acessado via putty de uma estação windows, atualmente eu uso os comando chr(027)+chr(... para compactar as letras em 10 cpi, 12 cpi, etc..., mas tem algumas hp que nao aceitam estes códigos de compactacao, e tem tambem as cannon, lexmark e outras diferentes das hp e epson, entao a minha ideia seria o seguinte,
eu atulmente já gero um arquivo texto e envio para a impressora, então eu precisaria de algo no xharbour linux parecido com o win32prn do xharbour windows, onde eu ativaria a impressao 20 cpi, e o windows ou o linux onde esta a impressora, e que já tem os drives da impressora instalados, ativaria a compactacao em cpi que eu desejaria, e eu nao teria de preocupar com qualquer impressora, ou seja,
eu ativo 10 cpi e o windows envia este comando no padrao da impressora, e a impressora ativa 10 cpi por exemplo.

Desde já antecipo meus agradecimentos a quem puder me ajudar

Narlem G. A. Santos
narlem
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 24 Set 2004 14:34
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Impressao em impressoras via putty

Mensagempor sygecom » 31 Jan 2010 10:01

Infelizmente não tem o que resolva de modo facil a impressão dos CHR() em algumas impressoras, isso teria que ser refeito.
Se você tiver usando CUPS e quiser deixar a impressão livre para todas as impressoras basta alterar o arquivo /etc/cups/cupsd.conf e adicionar a linha abaixo:
BrowseAddress ALL

A mehor saida é gerar um arquivo PDF já formatado, ai sim, você podera mandar imprimir esse PDF com toda essa formatação de onde quiser, para isso você não precisa desfazer o que você já tem pronto, tens que apenas fazer um nova função que leia esse seu relatorio e gere um PDF e identifique os CHR() para poder mudar as fontes, tamanho e etc...conforme ele for lendo o seu arquivo texto. Eu postei aqui no forum um exemplo de como uso isso tanto em Windows como para Linux.
Exemplo:
*******************************
Function GERA_PDF(cARQ, vABRE )
*******************************
PRIVATE oDlgHabla:=NIL
MsgRun("Aguarde Gerando Documento PDF...")
cText := memoread( cArq )
nLines := mlcount( cText, 150 )

cFileToSave := "meupdf.pdf"  // nome do PDF

#ifdef __XHARBOUR__
   Private AMSG := {}, CIMG
   set(105,1)
   set(106,1)

   vAUTOR=""
   PdfNew(cFileToSave,6,842,595,1,20,,,) 
   PdfStartPage( {vAUTOR} , .T. )
   HB_SETLANDSCAPE(.T.)

   for nA := 1 to nLines
      cLinha := memoline( cText, 150, nA, 1, .F. )

      Aadd(AMSG,cLinha)
   next

   PdfDrawPage( AMSG )
   PdfEndPage()
   PdfEnd()
#else
   Private page, height, width, def_font, font
   Private pdf := HPDF_New()

   if pdf == NIL
      Fim_Run()
      msgstop( " Erro ao tentar gerar o Arquivo Pdf, Favor Tente novamente","Aviso do Sistema" )
      Return("")
   endif

   /* set compression mode */
   HPDF_SetCompressionMode( pdf, HPDF_COMP_ALL )
   *HPDF_SetPassword(pdf, "senha","leonardo" )  // colocar senha no PDF

   page := HPDF_AddPage(pdf)
   height := HPDF_Page_GetHeight(page)
   width  := HPDF_Page_GetWidth(page)

   def_font := HPDF_GetFont( pdf, "Helvetica", NIL )
   HPDF_Page_BeginText( page )
   HPDF_Page_MoveTextPos( page, 10, height - 10 )

   vCONT=0
   for nA := 1 to nLines
      cLinha := memoline( cText, 150, nA, 1, .F. )
      font := HPDF_GetFont( pdf, "Courier" , NIL )
      HPDF_Page_SetFontAndSize( page, def_font, 7 )

      HPDF_Page_SetFontAndSize( page, font, 7 )
      HPDF_Page_ShowText( page, cLinha )
      HPDF_Page_MoveTextPos( page, 0, -10 )

      vCONT=vCONT+1
      IF vCONT=80
         page := HPDF_AddPage(pdf)
         HPDF_Page_SetLineWidth(page, 1)

         HPDF_Page_BeginText( page )
         HPDF_Page_MoveTextPos( page, 10, height - 10 )
         vCONT = 0
      ENDIF
   next

   HPDF_Page_EndText( page )
   HPDF_SaveToFile( pdf, cFileToSave )

   HPDF_Free( pdf )
#endif

Fim_Run()
IF vABRE="S"
   Abre_arquivo( cFileToSave )  //aqui ele mostra na tela o PDF gerado
ENDIF
Return(cFileToSave)
Leonardo Machado
x[H]arbour.org + Hwgui
MSN: leonardodemachado@hotmail.com
sygecom
Membro Master

Membro Master
 
Mensagens: 6113
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

Re: Impressao em impressoras via putty

Mensagempor narlem » 03 Fev 2010 11:29

Olá,

Estava viajando, somente hoje vi a sua resposta, vou tentar fazer funcionar aqui e qualquer novidade e escrevo aqui de novo.

Mas desde já muito obrigado

Narlem G. A. Santos
narlem
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 24 Set 2004 14:34
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: janio, Kapiaba e 4 visitantes


Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro