Será este o PageScript para xharbour???fladimir escreveu:Legal Eolo... Mas me diz uma coisa no Harbour o PageScript funciona ? Vc já pensou nisto ?
Sucesso a todos nós!!!
:)Pos
http://www.xharbour.com/xhc/index.asp?p ... show_sub=1
Jânio
Moderador: Moderadores
Será este o PageScript para xharbour???fladimir escreveu:Legal Eolo... Mas me diz uma coisa no Harbour o PageScript funciona ? Vc já pensou nisto ?
Sucesso a todos nós!!!
:)Pos


DOSPRINTER com xHarbour ?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.

SimSerá este o PageScript para xharbour???
Use a win32prn direto no xharbour que não prescissa usar nd externo.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.
A resposta é simples e de uma clareza de doer nas vistas:Pablo César escreveu:Mas me diga uma coisa Janio, por quê você não postou esta sua mensagem na seção XHarbour
fladimir: escreveu:
Legal Eolo... Mas me diz uma coisa no Harbour o PageScript funciona ? Vc já pensou nisto ?
Sucesso a todos nós!!!


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
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
Código: Selecionar todos
VEIEMAIL
OBRIGA11
GERAFILE
MSGRUN
ABRE_AQRQUIVO

Me manda seu email, que te mando o DEMO. que tem tudoasimoes escreveu:Leonardo,
Não querendo ser chato mais já sendo!
Compilei o seu exemplo nº 1 e ficou faltando as seguintes funções:
Tem como você postar as funções?Código: Selecionar todos
VEIEMAIL OBRIGA11 GERAFILE MSGRUN ABRE_AQRQUIVO
[]´s
Alexandre
