Code: Select all | Expand
// http://fivewin.com.br/index.php?/topic/ ... mment-1278Olá
Uso o brOffice desta forma, abro
".DOC" ou
".ODT" e exibo o texto em um
Dialog.
Veja o exemplo:
/*
** autor: JOSÉ MARIA DA SILVA (JMSILVA)
** xHarbour 1.2.1 com FIVEWIN
** DATA: 29/12/2011
** CIDADE: CARAGUATATUBA/SP
** OBS: PRECISA TER BROFFICE INSTALADO
*/#INCLUDE "FIVEWIN.CH"#include "FGet.ch"Function Main
()Local oService,oDesktop,oDocument,oTexto
Local oDlg,oGet,cVarTxt,cFile,aProp:=
{}cFile := cGetFile
("Arquivo (doc,odt)|*.doc;*.odt|",;
"Selecione o Arquivo (Doc/Odt)",
4 )IF EMPTY
(cFILE
) ;
RETURN nil ;
ENDIFcFile :=
"file:///"+StrTran
(cFile,
"\","/
")
TRY
oService := TOleAuto():New("com.sun.star.ServiceManager
")
CATCH
MSGSTOP("Desculpe, precisa ter o BrOffice instalado.
","Alerta
")
RETURN NIL
END
oDesktop := oService:createInstance("com.sun.star.frame.Desktop
")
AAdd(aProp,MakePropertyValue(oService,"Hidden
",.T.)) //seta prop para ocultar
oDocument := oDesktop:loadComponentFromURL(cFile, "_blank
", 0, aProp) // {}) //abre o doc
//OBTÉM O TEXTO
oTexto = oDocument:getText()
cVarTxt := oTexto:getString()
oDocument:Close(.T.) //fechao doumento
DEFINE DIALOG oDlg TITLE "Visualiza documentos doc/odt
" size 640,480
@ 0.5, 01 FORMAT GET oGet VAR cVarTXT OF oDlg SIZE 310,220 UPDATE
ACTIVATE DIALOG oDlg CENTERED
Return Nil
**==============================================================================
STATIC FUNCTION MakePropertyValue(oService,cName,nValue)
**==============================================================================
LOCAL oStruct := oService:Bridge_GetStruct("com.sun.star.beans.PropertyValue
")
oStruct:Name := cName
oStruct:Value := nValue
RETURN(oStruct)
//
/*
** autor: JOSÉ MARIA DA SILVA (JMSILVA)
** xHarbour 1.2.1 com FIVEWIN
** DATA: 29/12/2011
** CIDADE: CARAGUATATUBA/SP
** OBS: PRECISA TER BROFFICE INSTALADO
** “writer_pdf_Export†=> Para salvar arquivos do Writer como PDF
*/
#INCLUDE "FIVEWIN.CH
"
Function Main ()
Local oService,oDesktop,oDocument,oZip,oTip,oBRUSH,oActiveX
Local oDlg,oGet,cFile,aProp:={},cFilePDF,cSUrl
cFile := cGetFile("Arquivo
(doc,odt
)|*.doc;*.odt|
",;
"Selecione o Arquivo
(Doc/Odt
)", 4 )
IF EMPTY(cFILE) ; RETURN nil ; ENDIF
cFile := "file:
///"+StrTran(cFile,"\","/")TRYoService := TOleAuto
():
New("com.sun.star.ServiceManager")CATCH
MSGSTOP
("Desculpe, precisa ter o BrOffice instalado.",
"Alerta")RETURN NILEND
oDesktop := oService:
createInstance("com.sun.star.frame.Desktop")AAdd
(aProp,MakePropertyValue
(oService,
"Hidden",.T.
)) //seta prop para ocultaroDocument := oDesktop:
loadComponentFromURL(cFile,
"_blank",
0, aProp
) // {}) //abre o doc//exportar para pdfcFilePDF :=
"e:\xhbtest\test_PDF.pdf"cSUrl :=
"file:///"+StrTran
(cFilePDF,
"\","/
")
oZip := MakePropertyValue(oService, "CompressMode
", 1)
oTip := MakePropertyValue(oService, "FilterName
", "writer_pdf_Export
")
oDocument:storeToURL(cSUrl, {oZip,oTip})
oDocument:Close(.T.) //fechao doumento
DEFINE BRUSH oBrush STYLE "BORLAND
"
DEFINE DIALOG oDlg TITLE "Visualiza documentos doc/odt
" size 640,480;
BRUSH oBrush
oActiveX := TActiveX():New(oDlg,"AcroPDF.PDF
.1",3,2,;
oDlg:nRight/2-5,oDlg:nBottom/2-5)
ACTIVATE DIALOG oDlg CENTERED;
ON INIT (oActiveX:Do("LoadFile
",cFilePDF), oActiveX:Do("SetCurrentPage
",1))
oDlg:End()
//apaga pdf
//Ferase(cFilePDF)
Return Nil
**==============================================================================
STATIC FUNCTION MakePropertyValue(oService,cName,nValue)
**==============================================================================
LOCAL oStruct := oService:Bridge_GetStruct("com.sun.star.beans.PropertyValue
")
oStruct:Name := cName
oStruct:Value := nValue
RETURN(oStruct)
//
// WORD
#Include "Fivewin.ch
"
**==============================================================================
Function Main()
**==============================================================================
LOCAL cFile := CurDrive()+":\
"+CurDir()+"\teste.doc
"
LOCAL oWord, oDocument, oText, cText
TRY
oWord := CreateObject( "Word.Application
" )
CATCH
MsgStop("ERRO! Word não instalado.
","Alerta
")
RETURN Nil
END
oDocument := oWord:documents:open(cFile) //abre um arquivo doc/rtf
// get -> seleciona o objeto
oText := oWord:selection()
// oculta o word
oWord:visible := .F.
cText := oText:Text
oDocument:close() //fecha o doc
oWord:quit() //finaliza
MsgInfo(cText)
Return Nil
#Include "Fivewin.ch
"
**==============================================================================
Function Main()
**==============================================================================
LOCAL cFile := CurDrive()+":\
"+CurDir()+"\teste.doc
"
LOCAL oWord, oDocument, oText, cText
TRY
oWord := CreateObject( "Word.Application
" )
CATCH
MsgStop("ERRO! Word não instalado.
","Alerta
")
RETURN Nil
END
// oculta o word
oWord:visible := .F.
//--
oDocument := oWord:documents:open(cFile) //abre um arquivo doc/rtf
//--
oDocument:Activate() //novo
//--
oRng := oDocument:Content //novo
oRng:Select() //novo
//--
oText := oWord:selection()
cText := oText:Text
//--
oDocument:close() //fecha o doc
oWord:quit() //finaliza
//--
MsgStop(cText)
Saludos.