Olá,
o OpenOffice trabalha sem problemas com o Delphi - tenho várias aplicações que
fazem interface com o OpenOffice. Inclusive, eu particularmente acho a API bem
mais completa e mais intuitiva que o do MS-Office.
Um exemplo de código que converte um DOC em um TXT:
var
ServiceManager,
CoreReflection,
StarDesktop,
Document: Variant;
uses ComObj, Variants;
begin
ServiceManager := CreateOleObject('com.sun.star.ServiceManager');
StarDesktop := ServiceManager.createInstance('com.sun.star.frame.Desktop');
CoreReflection :=
ServiceManager.createInstance('com.sun.star.reflection.CoreReflection');
ConverteDOC( Diretorio + NomeArquivo );
end;
procedure ConverteDOC( sDocument: string = '' );
var
PropertyValue,
Params : variant;
DestFileName : ShortString;
begin
if sDocument = '' then
ShowMessage('Document name must be provided')
else
begin
if not FileExists( sDocument ) then
begin
ShowMessage(sDocument+' not found');
Abort;
end;
sDocument := StrTran( sDocument, '\', '/' );
sDocument := 'file:///' + sDocument;
end;
DestFilename := ChangeFileExt( sDocument, '.txt' );
{ Exemplo de como criar um array vazio }
Params := VarArrayCreate( [ 0, -1 ], varVariant );
Document := StarDesktop.LoadComponentFromURL( sDocument, '_blank', 0, Params);
Params := unAssigned;
{ Exemplo de como criar um array com um objeto e como associar valor a ele }
CoreReflection
.forName('com.sun.star.beans.PropertyValue')
.createObject(PropertyValue);
PropertyValue.Name := 'FilterName';
PropertyValue.Value := 'Text';
Params := VarArrayCreate([0, 0], varVariant);
Params[ 0 ] := PropertyValue;
Document.StoreAsURL( DestFileName, Params );
Sleep( 1000 );
Document.close(true);
PropertyValue := UnAssigned;
Params := UnAssigned;
Document := UnAssigned;
end;
Boa Sorte,
Josir.
-------------
Ola a todos!
Gostaria de saber se os componentes p/ automação do Delphi com o MS
Office, também valem pra StarOffice, OpenOffice, Lotus, etc...
Att,
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html