Laurent Godard a écrit :
qelle version de ooo ?
2.02 sou Win XP SP2
quel filtername utilises tu ?
un bout de code ?
Allez la procédure au complet (filternames 'MS Word 97',
'writer_pdf_Export')...
procedure OOoExport(ArgFrom, ARgTo, ArgFilter : string);
Var
OpenOffice : Variant;
CoreReflection : Variant;
PropertyValue : Variant;
Document : Variant;
OpenDesktop : Variant;
LoadParams : Variant;
NomFichier : AnsiString;
begin
//Exportation en PDF ou MS Office (via OOo)
OpenOffice := CreateOleObject('com.sun.star.ServiceManager');
OpenDesktop := OpenOffice.createInstance('com.sun.star.frame.Desktop');
LoadParams := VarArrayCreate([0, 0], varVariant);
CoreReflection :=
OpenOffice.createInstance('com.sun.star.reflection.CoreReflection');
CoreReflection
.forName('com.sun.star.beans.PropertyValue')
.createObject(PropertyValue);
PropertyValue.Name := 'Hidden';
PropertyValue.Value := True;
LoadParams[0] := PropertyValue;
NomFichier := StringReplace(ArgFrom, '\', '/', [rfReplaceAll,
rfIgnoreCase]);
Document := OpenDesktop.LoadComponentFromURL( 'file:///'+NomFichier,
'_blank', 0, LoadParams);
//Si document texte alors on actualise l'index
If (ArgFilter='MS Word 97') or (ArgFilter='writer_pdf_Export') Then
Document.getDocumentIndexes.GetByIndex(0).Update;
PropertyValue.Name := 'FilterName';
PropertyValue.Value := ArgFilter;
NomFichier := StringReplace(ArgTo, '\', '/', [rfReplaceAll,
rfIgnoreCase]);
Document.StoreToURL( 'file:///'+NomFichier, LoadParams);
Document.Dispose;
OpenOffice := Unassigned;
end;
Si tu veux une version "simplifiée", je t'en fais une.
A+
Fred