Página 2 de 3

Enviado: 29 Nov 2007 17:44
por janio
fladimir escreveu:Legal Eolo... Mas me diz uma coisa no Harbour o PageScript funciona ? Vc já pensou nisto ?

Sucesso a todos nós!!!

:)Pos
Será este o PageScript para xharbour???
http://www.xharbour.com/xhc/index.asp?p ... show_sub=1

Jânio

Enviado: 29 Nov 2007 18:04
por Pablo César
Se tal PageScript for para xHarbour ou não não sei. Mas me diga uma coisa Janio, por quê você não postou esta sua mensagem na seção XHarbour ???

Enviado: 29 Nov 2007 18:10
por Mário Isa
Eu era amante do PAGESCRIPT, mas quando vi que estava preso nisso e não conseguia ir para o xharbour só pq a biblioteca pscript.lib não linkava com xharbour, migrei tudo rapidinho para DOSPRINTER.

Mário

Enviado: 29 Nov 2007 18:16
por Pablo César
Mário Isa escreveu:não conseguia ir para o xharbour só pq a biblioteca pscript.lib não linkava com xharbour, migrei tudo rapidinho para DOSPRINTER.
DOSPRINTER com xHarbour ?

Enviado: 29 Nov 2007 18:18
por sygecom
Será este o PageScript para xharbour???
Sim
Mário Isa escreveu:Eu era amante do PAGESCRIPT, mas quando vi que estava preso nisso e não conseguia ir para o xharbour só pq a biblioteca pscript.lib não linkava com xharbour, migrei tudo rapidinho para DOSPRINTER.
Use a win32prn direto no xharbour que não prescissa usar nd externo.

Enviado: 30 Nov 2007 10:36
por janio
Pablo César escreveu:Mas me diga uma coisa Janio, por quê você não postou esta sua mensagem na seção XHarbour ???
A resposta é simples e de uma clareza de doer nas vistas:
fladimir: escreveu:
Legal Eolo... Mas me diz uma coisa no Harbour o PageScript funciona ? Vc já pensou nisto ?
Sucesso a todos nós!!!

Porque é EXATAMENTE neste tópico onde se indagou se existia PageScript para xharbour!

Jânio

Enviado: 30 Nov 2007 10:41
por janio
Este tópico ja está na sessão xhabour!

Será que eu tô ficando maluco???

:% :% :% :% :% :% :% :%

Jânio

Enviado: 30 Nov 2007 11:14
por Eolo
Eu usava o PageScript (nota 10) com o Clipper52e.
Agora, no XHarbour, graças às dicas do Leonardo, uso o Win32prn() = nota 20.
Aposentei o Clipper e o PageScript.

Enviado: 30 Nov 2007 11:20
por Luciano Bonfim
Caro Hevraldo,

Obrigado por compartilhar seu fonte conosco, tb uso a classe win32 e estou adorando a única coisa qe sinto falta e estou tentando resolver é criar um preview como existem em outras classe como a HWinPrn da HWGUI, porem a win32 é bem melhor que todas elas só näo tem o preview mesmo...

se alguem souber de algum tipo de soluçäo pra usar preview nesta classe favor postar aqui pra gente

Muito Obrigado

Enviado: 30 Nov 2007 12:58
por sygecom
Tche, Luciano eu tmb. tinha essa duvida uma classe tão boa para impressão, pq não tem Preview() ? Bom a unica explicação que encontrei é pq a mesma classe pode ser usada tanto em console como em modo GUI e isso é uma vantagem inorme, a questão do Preview no meu caso, eu uso três diferente um para Relatorios em GUI(HWGUI-HPRINTER),outro para compatibilidade com CHR() via HWGUI tmb e outro para CONSOLE(VIA TROWSE).

Bom Abaixo vou postar os Dois modos que são via HWGUI. Todos os dois são baseados que vc já gerou um TXT do que vc quer visualizar.

Ex 01,Quem postou esse exemplo foi o Colega Basso todos os créditos são dele, eu apenas inclui as opções de gerar word,pdf e email:

*************************************************************

Código: Selecionar todos

#define ID_TEXTO  300
********************
FUNCTION Edicao(cFile)
********************
LOCAL oDlg
Local oFont
Local lText   := hb_oemtoansi(MemoRead(cFile))
or_Text=cFile
nsizefont := -13

PREPARE FONT oFont NAME "COURIER NEW" WIDTH 0 HEIGHT 0 WEIGHT -13
oFont2 := HFont():Add( "Courier New",0,-13 )
oFont3 := HFont():Add( "Ms Sans Serif",0,-10 )

INIT DIALOG oDlg TITLE "Visualização de Relatório" ;
AT 0,0 SIZE GETDESKTOPWIDTH(),GETDESKTOPHEIGHT();
FONT oFont

@ 88,19 RichEdit oEdit TEXT lText SIZE GETDESKTOPWIDTH()-100,GETDESKTOPHEIGHT()-100;
OF oDLG ID ID_TEXTO;
COLOR 0 BACKCOLOR 16777215 ;
ON getfocus {|| TopoDoc()};
STYLE WS_HSCROLL+WS_VSCROLL+ES_LEFT+ES_MULTILINE+ES_READONLY;
FONT oFont2

@ 6,30  BUTTON cmd1 Caption " - Zoom" ON CLICK {|| ZOOMIMP2(oEdit,'-')}        SIZE 75,32 FONT oFont3
@ 6,80  BUTTON cmd1 Caption " + Zoom" ON CLICK {|| ZOOMIMP2(oEdit,'+')}        SIZE 75,32 FONT oFont3
@ 6,130 BUTTON "Imprimir"  ON CLICK {||EndDialog(),CHAMAIMP("S",or_Text)}      SIZE 75,32 FONT oFont3
@ 6,180 BUTTON "Gera Pdf"  ON CLICK {||EndDialog(),GERA_PDF(or_Text)}          SIZE 75,32 FONT oFont3
@ 6,230 BUTTON "Gera Word" ON CLICK {||EndDialog(),Abre_word(or_Text)}         SIZE 75,32 FONT oFont3
@ 6,280 BUTTON "E-Mail"    ON CLICK {||EndDialog(),VAIEMAIL(or_Text)}          SIZE 75,32 FONT oFont3
@ 6,330 BUTTON "Fechar"    ON CLICK {||EndDialog()}                            SIZE 75,32 STYLE WS_TABSTOP FONT oFont3
ACTIVATE DIALOG oDlg
RETURN

**************
FUNC CHAMAIMP
**************
LOCAL nPrn
LOCAL aPrn    := GetPrinters()
PARA TAM,cARQ      // S=136 N=79

IF TAM=Nil
   TAM="S"
ENDIF

EndDialog()

If Empty(aPrn)
   OBRIGA11()
   Return
EndIf

IF !EMPTY(cARQ)
   cFILE := cARQ
ENDIF

nPrn:=PRINTSETUPEX()

IF TAM="S"
   IF !EMPTY(nPrn)
      Imprime(cFILE,136,nPrn)
   ENDIF
ELSE
   IF !EMPTY(nPrn)
      Imprime(cFILE,80,nPrn)
   ENDIF
ENDIF
RETURN NIL

*********************************************
Function Imprime( cArq, tamrel ,cPrinter )
*********************************************
local cTexto, nLinhas, nA, cLinha    // oPrinter := win32prn():New(cPrinter)
local oPrinter := win32prn():New(cPrinter)

oPrinter:Landscape := .F.
oPrinter:FormType  := 9
oprinter:SetPrintQuality(-1) // qualidade da impressão

oPrinter:Copies    := 1

IF FILE("res\logo.bmp")  // se tiver o arquivo logo.bmp dentro da mesma pasta ele vai imprimir o logo primeiro
   aTamlog := 9
else
   aTamlog := 0
Endif
*cFILE2=SubStr( cArq, 1, 9 )

GERAFILE()
vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate(cFILE, vARQ,"DBFCDX")

SELE 40
USE (cFILE) new shar VIA "DBFCDX"
append from (cArq) sdf && nome completo do arquivo sdf

IF !oPrinter:Create()
   MsgStop("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar se a Impressora esta Ligada.","Aviso do Sistema")
   return NIL
ELSE
   IF !oPrinter:StartDoc("Impressao Pelo Sistema SAGI")
      MsgStop("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar o Spoll da Impressora","Aviso do Sistema")
      Return NIL
   endif

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

   IF TAMREL=80
      oPrinter:setfont('Courier New',,11,,,,255) // Normal
   ELSE
      oPrinter:SetFont("Courier New",11,{3,-50}) // Comprimida
   ENDIF
   oPrinter:Bold(0) // Normal

   dbgotop()
   Do while !eof()
      cLinha := Linha    // Busca linha de impressao
      oPrinter:newline() // Inicia nova linha

      oPrinter:SetFont("Courier New",11,{3,-50}) // Comprimida

      oPrinter:TextOut(HB_OemToAnsi(cLinha))
      oPrinter:Bold(0) // Normal
      dbskip()

      if !eof()
         if (oPrinter:MaxRow() - 2) <= oPrinter:Prow() // Usa "oPrinter:NewPage()" para iniciar nova pagina
            oPrinter:NewPage()
            PrintBitMap( oPrinter )
            FOR TT=1 TO aTamlog
                oPrinter:newline()
            NEXT
         endif
      endif
   enddo
   oPrinter:EndDoc()
   oPrinter:Destroy()
ENDIF
USE
RETURN NIL

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


****************
FUNCTION topodoc
****************
sendMessage(oEDiT:Handle, WM_VSCROLL  ,SB_TOP,0)
sendMessage(oEDiT:Handle, EM_SETSEL  ,0,0)
return .t.
*****************************
FUNCTION ZOOMIMP2(oedt,csize)
*****************************
nsizefont := nsizefont + iif(csize='-', 1 , -1)
nsizefont := iif(csize='-',min(-9,nsizefont),;
max(-15,nsizefont))
oFont2 := HFont():Add( "Courier New",0,nsizefont )
sendMessage(oEDiT:Handle,WM_SETFONT ,oFont2:handle,0 )
oEdIT:refresh()
RETURN .T.

*******************
FUNC GERA_PDF(cARQ)
*******************
Private AMSG, CIMG
PRIVATE oDlgHabla:=NIL
AMSG := {}
set(105,1)
set(106,1)

MsgRun("Aguarde Gerando Documento PDF...")

GERAFILE()

cFILE3 := cFILE+".PDF"

vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate(cFILE, vARQ,"DBFCDX")
vAUTOR=ALLTRIM(xemp)

SELE 40
USE (cFILE) new shar VIA "DBFCDX"//  ALIAS tela shared NEW
append from (cARQ) sdf && nome completo do arquivo sdf

PdfNew(cFile3,8,842,595,1,1,,,{vAUTOR,vAUTOR,vAUTOR,vAUTOR,vAUTOR})
PdfStartPage( {vAUTOR} , .T. )
//CIMG := "res\logo.bmp"
//PDFPLACEIMAGE(CIMG, 1,1,57.73,0.8166,1240,1754)  // função pra incluir imagem

dbgotop()
cCONT=0
Do while !eof()
   cLinha := Linha           // Busca linha de impressao
   cCONT=cCONT+1
   Aadd(AMSG,cLinha)

   IF cCONT=60
      PdfDrawPage( AMSG )
      PdfEndPage()
      PdfStartPage( {""} , .T. )
      cCONT=0
   ENDIF
   dbskip()
enddo

PdfDrawPage( AMSG )
PdfEndPage()
PdfEnd()
IF oDlgHabla#NIL
  oDlgHabla:CLOSE()
ENDIF
Abre_aqrquivo( cFile3 )
return nil

#define CRLF Chr( 13 ) + Chr( 10 )

*****************************
PROCEDURE Abre_word(cARQ,IMP)
*****************************
LOCAL oWord, oText
PRIVATE oDlgHabla:=NIL

IF IMP=Nil
   IMP="N"
endif
MsgRun("Aguarde Gerando Documento de Word...")

GERAFILE()

vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate(cFILE, vARQ,"DBFCDX")

SELE 999
USE (cFILE) alias gera_ole EXCL new VIA "DBFCDX"//  ALIAS tela shared NEW
append from (cARQ) sdf && nome completo do arquivo sdf

TRY
   oWord := GetActiveObject( "Word.Application" )
CATCH
   TRY
      oWord := CreateObject( "Word.Application" )
   CATCH
      MsgStop("Não foi Possivel Achar o Word Instalado","Aviso do Sistema")
      IF oDlgHabla#NIL
        oDlgHabla:CLOSE()
      ENDIF
      RETURN
   END
END
IF !FILE(cARQ)
   MsgStop("Não Foi possivel Abrir o Documento de Word")
   IF oDlgHabla#NIL
     oDlgHabla:CLOSE()
   ENDIF
   RETURN
ENDIF

oWord:Documents:Add()
oText := oWord:Selection()

Sele gera_ole
dbgotop()
Do while !eof()
   cLinha := Linha           // Busca linha de impressao
   oText:Font:Name := "Lucida Console"
   oText:Font:Size := 8
   oText:Font:Bold := .F.
   oText:Text+= cLinha   + CRLF
   dbskip()
enddo

IF IMP="N"
   oWord:Visible := .T. //PARA VISUALIZAR OU NÃO ANTES
   oWord:WindowState := 1  // Maximize
ENDIF
IF IMP="S"
   oWord:Visible := .F. //PARA VISUALIZAR OU NÃO ANTES
   oWord:PrintOut()   //PARA IMPRIMIR DIRETO
ENDIF

IF oDlgHabla#NIL
   oDlgHabla:CLOSE()
ENDIF
RETURN
*************************************************************

Ex 02, esse Proximo tmb. pega de um TXT e mostra no proprio Preview() da HPRINTER
*************************************************************

Código: Selecionar todos

****************
Func Edicao(cARQ)
****************
Local i
LOCAL cPrinter := GetDefaultPrinter()
Private oWinPrn := NIL

cARQ:=alltrim( cARQ)
frename(cARQ,cARQ+".old")
regenfile(cARQ+".old",cARQ)

GERAFILE()
vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate(cFILE, vARQ,"DBFCDX")

SELE 40
USE (cFILE) alias preview_dbf excl VIA "DBFCDX" //  ALIAS tela shared NEW
append from (cArq) sdf

oWinPrn := HWinPrn():New( ,"RU866","RU1251" )
oWinPrn:StartDoc( .T. )
oWinPrn:PrintLine()
oWinPrn:SetMode( .F.,.T. )

cCONT=0
dbgotop()
Do while !eof()
   cLinha := Linha           // Busca linha de impressao
   cCONT=cCONT+1
   oWinPrn:PrintLine(HB_OemToAnsi(cLinha)
   dbskip()
Enddo
oWinPrn:End()
sele preview_dbf
use
Return Nil
*************************************************************
Bom concerteza dah pra melhor todos os dois, mas ai fica a critério de cada um....

Abraços
Leonardo Machado

Enviado: 02 Dez 2007 22:45
por asimoes
Leonardo,

Não querendo ser chato mais já sendo!
Compilei o seu exemplo nº 1 e ficou faltando as seguintes funções:

Código: Selecionar todos

VEIEMAIL
OBRIGA11
GERAFILE
MSGRUN
ABRE_AQRQUIVO
Tem como você postar as funções?

[]´s

Alexandre

Enviado: 03 Dez 2007 02:06
por Luciano Bonfim
Caro Leonardo,

vc sabe como faço para colocar o preview da HWinPrn() em formato landscape?

muito obrigado

Enviado: 03 Dez 2007 16:17
por sygecom
asimoes escreveu:Leonardo,

Não querendo ser chato mais já sendo!
Compilei o seu exemplo nº 1 e ficou faltando as seguintes funções:

Código: Selecionar todos

VEIEMAIL
OBRIGA11
GERAFILE
MSGRUN
ABRE_AQRQUIVO
Tem como você postar as funções?

[]´s

Alexandre
Me manda seu email, que te mando o DEMO. que tem tudo

Enviado: 03 Dez 2007 16:18
por sygecom
Luciano Bonfim escreveu:Caro Leonardo,

vc sabe como faço para colocar o preview da HWinPrn() em formato landscape?

muito obrigado
Não uso o PREVIEW da HWGUI, faço como postei acima em.

Novo aplicativo hwUSB - Versão 2.1

Enviado: 06 Mai 2008 20:39
por Pablo César
Conforme a pedido do Heveraldo e disponibilização do Maligno, comunicamos que está disponível uma nova versão do antigo USB.EXE, agora em modo GUI feito em xHarbour com biblioteca WVW.

O link para download do hwusb.zip pode ser obtido na seção de ferramenstas para Clipper do site do Maligno:

http://pub.buzinello.com/index.php?d=./ ... per/tools/

Ou diretamente no: http://pub.buzinello.com/xbase/clipper/tools/hwusb.zip

Obs.: Este tópico foi movido para seção fontes, pelo motivo que nesta seção comporta os códigos fontes ora seja de todas as ferramentas que são abordadas aqui no fórum e pela razão que o autor deste tópico, o prezado Heveraldo, que disponibilizou o código fonte da versão anterior. Segundo ele, irá também disponibilizar mais tarde o código fonte desta nova versão aqui no fórum.