Clipper On Line • Ver Tópico - Impressão com Imagem em Xharbour - win32prn

Impressão com Imagem em Xharbour - win32prn

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Impressão com Imagem em Xharbour - win32prn

Mensagempor sygecom » 26 Abr 2007 01:38

Um exemplo simples de como chamar as impressoras instalada no windows para xHarbour.
É soh gerar um simples TXT com nome de TEXTO.TXT e no final fazer achamada de :

Func Main
arq="c:\imp.txt"
if !file(arq)
   arqh=fcreate(arq,0)
   if !arqh>0
      quit
   endif
   txt="IMP ABERTO"
   txt_t=fwrite(arqh,txt)
   if !txt_t=len(txt)
      quit
   endif
   fclose(arqh)
endif

janela2=fopen(arq,18)
if !janela2>0
   quit
endi
rele arq, arqh, janela2, txt, txt_t
IMPRES()
Return Nil

FUNC IMPRES
LOCAL aPrn := PRINTERPORTTONAME( "PDF", .T. )   // usa a impressora PDF criator para imprimir via PDF
IF EMPTY( PRINTERPORTTONAME( "PDF", .T. ) )
   aPrn := GETDEFAULTPRINTER() //  caso a PDFCREATOR não exista ele vai pegar a impressora padrão
ENDIF
IF !FILE("TEXTO.TXT")
   RETURN
ELSE
   inkey(5)
   cFILE := "C:\LEO"+ ALLTRIM( STR( RANDOM(9999) ))+".TXT"
   COPY FILE TEXTO.TXT TO (cFILE)
   DELETE FILE TEXTO.TXT
ENDIF

If Empty(aPrn)
   alert("Não tem Impressora Instalada")
else
   Imprime(cFILE,aPrn)
EndIf
DELETE FILE C:\TEXTO.DBF
RETURN

FUNC Imprime( cArq,cPrinter )
local cTexto, nLinhas, nA, cLinha
local oPrinter := win32prn():New(cPrinter)
oPrinter:Landscape := .F.
oPrinter:FormType  := 9
oprinter:SetPrintQuality(-1)
oPrinter:Copies    := 1

IF FILE("logo.bmp")  // se tiver o arquivo logo.bmp dentro da mesma pasta ele vai imprimir o logo primeiro
   aTamlog := 9
else
   aTamlog := 0
endif

DELETE FILE C:\TEXTO.DBF
vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate("C:\TEXTO.DBF", vARQ)

SELE 40
USE C:\TEXTO ALIAS TELA EXCL
SELE TELA
append from (cArq) sdf

IF !oPrinter:Create()
   return NIL
ELSE
   IF ! oPrinter:StartDoc("SAGI")
      return NIL
   endif

   PrintBitMap( oPrinter )
   FOR TT=1 TO aTamlog
      oPrinter:newline()
   NEXT

   oPrinter:SetFont("Courier New",11,{3,-50})
   oPrinter:Bold(0)
   SELE TELA
   dbgotop()
   Do while !eof()
      cLinha := Tela->Linha
      oPrinter:newline()
      oPrinter:SetFont("Courier New",11,{3,-50})
      oPrinter:TextOut(cLinha)
      oPrinter:Bold(0)
      dbskip()
      if !eof()
         if (oPrinter:MaxRow() - 2) <= oPrinter:Prow()
            oPrinter:NewPage()   // novo pagina
            PrintBitMap( oPrinter )  // imprimindo o logotipo de novo
            FOR TT=1 TO aTamlog
               oPrinter:newline()
            NEXT
         endif
      endif
   enddo
   oPrinter:EndDoc()
   oPrinter:Destroy()
ENDIF
SELE TELA
USE
RETURN NIL

FUNC PrintBitMap( oPrn )  //função para imprimir imagem do logotipo
LOCAL oBMP
oBMP:= Win32BMP():new()
oBmp:loadFile( "logo.bmp" )
oBmp:Draw( oPrn,  { 200,200,500,500 } )
oBMP:Destroy()
RETURN

FUNC Random( nLimite )  // função para criar um arquivo temporario
  static nGuarda:= 1
  local I
  local nResult
  if ValType( nLimite ) # [N]
    nLimite:= 100
  endif
  I:= Seconds()
  while nLimite > I
    I:= I * 100 +Seconds()
  enddo
  nGuarda:= (nGuarda +I) / (nResult:= nGuarda * I % nLimite +1)
  nResult:= Int( nResult )
return nResult

FUI......
Editado pela última vez por sygecom em 25 Jul 2007 13:41, num total de 1 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Mensagempor sygecom » 22 Jul 2007 18:02

Desculpa mas dei uma alterada no post para implementar impressão com imagem usando a Classe Win32Prn.

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Mensagempor Grings » 08 Ago 2007 19:39

Sygecom, baixei o fonte, compilei mas não funcionou. Vc chegou a testar ? Será que fiz algo errado ?
Grings
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 338
Data de registro: 18 Ago 2004 13:51
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Mensagempor sygecom » 08 Ago 2007 20:00

Eu uso isso em sistema que estão indo no clipper ....vc compilou e deu algum erro ?
De uma olhada nesse que esta no meu link !!!
http://www.sygecom.com.br/xharbour/usb.zip

Qual versão do xharbour vc esta usando ?

Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

Mensagempor clodoaldo » 21 Ago 2007 10:51

Sygecom!

Quero testar sua rotina mais num to conseguindo baixar o arquivo.
At. Clodoaldo Monteiro
MSN: clodoaldosmt@hotmail.com
Fone: (86)3233-0053
Avatar de usuário

clodoaldo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 20 Ago 2007 18:59
Cidade/Estado: Teresina
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor sygecom » 21 Ago 2007 11:07

Clodoaldo, não tem que baixar nd ...no link era a mesma coisa que no post acima !!!

Compile esse CODIGO FONTE acima no xharbour puro !! e vai funcionar...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 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