| auteurs : blondelle, pottiez, Atlantis |
1/ Qu'est ce qu'OpenOffice.org ?
OpenOffice.org est une suite bureautique open source entièrement francisée et multi plateforme, qui contient :
- un traitement de textes, avec un éditeur d'équations (Writer)
- un tableur (Calc)
- un logiciel de présentation (Impress)
- un éditeur de dessin vectoriel (Draw)
Pour plus d'information : http://wiki.services.openoffice.org/...office.org/FAQ
2/ Quel avenir pour OpenOffice.org ?
OpenOffice.org suit un cycle de développement de 18 mois pour chaque nouvelle version. Actuellement la version 2.2 est disponible.
3/ Où télécharger OpenOffice.org ?
http://fr.openoffice.org/about-downloads.html
4/ Format des fichiers OpenOffice.org
Un des atouts de cette suite bureautique est son format de fichier qui repose sur XML. Un fichier OpenOffice.org a le même modèle pour toutes les applications bureautiques, seule l'extension change. C'est un fichier au format zip qui contient les fichiers XML suivant :
- le fichier XML content.xml pour le contenu du document
- le fichier XML styles.xml pour le style (style et contenu sont présentés de façon séparée)
- le fichier XML meta.xml qui regroupe des informations sur le document, que vous pouvez saisir sous Fichier | Propriétés. A noter que lorsque vous enregistrez un document avec chiffrement, seul meta.xml n'est pas chiffré.
- le fichier XML settings.xml contient les choix applicatifs sur les paramètres du document, par exemple sur l'imprimante, l'historique des modifications, la source de données connectée, etc. Le fichier meta-inf/manifest.xml décrit la structure du fichier XML
- le répertoire Pictures conservant les fichiers binaires (images...)
- le répertoire Basic contient les macros écrites en Basic-code. Les - bibliothèques Basic liées se trouvent dans d'autres sous-répertoires de Basic.
Tout ceci est, conservé dans un seul fichier zip, dont l'extension est propre à la nature du document (.sxw pour les textes, ou .sxc pour les classeurs). Le résultat est un format complexe comportant plus de 450 éléments et plus de 1600 attributs facile à lire et surtout facile à transformer
Extensions des fichiers OpenOffice utilisés
Texte (formaté) odt créé par Writer
Classeur ods créé par Calc
Présentation odp créée par Impress
Dessin créé par Draw
Base de données odb créée par Base
Formule odf créée par Math
Document maitre odm créé par Writer
Modèle de document txt ott créé par Writer
Modèle de classeur ots créé par Calc
Modèle de présentation otp créé par Impress
Modèle de dessin otg créé par Draw
Modèle de document HTML oth créé par Writer/Web
5/ Je remercie TABZ qui m'a aidé pour des problèmes avec "CoreReflection"
Je cite:
(La fonction "Bridge_GetStruct" permet de créer facilement des propriétés, alors que le passage par CoreReflection est souvent problématique avec BCB.)
Les fonctions avec "CoreReflection" peuvent être remplacées par "Bridge_GetStruct"
En principe c'est sans problème, mais cela n'est valable que pour les versions d'Open Office supérieures à la 1.1.0 (J'ajouterai que rien de tout cela ne fonctionne avec BCB3 pro, sans que je ne sache pourquoi.)
6/ Les tests ont été faits avec Windows XP PRO Pack2 et OpenOffice 2.2 (dernière version à ce jour)
7/ un lien sur le site vers des exemples et explications en OOobasic
http://silkyroad.developpez.com/
8/ un lien vers la FAQ Delphi qui a servie de support
http://delphi.developpez.com/faq/?page=openoffice
|
| auteurs : blondelle, pottiez, Atlantis |
Pour utiliser OpenOffice avec BCB vous devez utiliser OLE.
1/ Se connecter à OpenOffice
Déclarer les variables globales openOffice et Document et ajouter #include <ComObj.hpp>
Variant vOOoOpenOffice;
Variant vOOoDocument;
if (VarIsEmpty (vOOoOpenOffice))
{
vOOoOpenOffice = CreateOleObject (" com.sun.star.ServiceManager " );
}
|
2/ Se déconnecter d'OpenOffice.org
Positionner OpenOffice à Unassigned permet de libérer le Variant.
3/ Savoir si on est connecté à OpenOffice
boolean vOOoConnect;
vOOoConnect = ! (VarIsEmpty (vOOoOpenOffice) | | VarIsNull (vOOoOpenOffice));
|
|
| auteurs : blondelle, pottiez, TABZ, Atlantis |
Ou comment créer une instance d'une classe dont on connaît le nom.
C'est un objet qui permet de travailler sur les attributs, méthodes et constructeurs de classes "chargées". Elle permet par exemple de construire "dynamiquement" un nouvel objet (ou même tableau) ou encore d'accéder à ses attributs et méthodes.
Par exemple pour créer un objet à partir du nom d'une classe et transmettre des arguments à son constructeur :
Je remercie TABZ qui m'a aidé pour des problèmes avec "CoreReflection"
Je cite:
(La fonction "Bridge_GetStruct" permet de créer facilement des propriétés, alors que le passage par CoreReflection est souvent problématique avec BCB.)
Les fonctions avec "CoreReflection" peuvent être remplacées par "Bridge_GetStruct"
Cette fonction ouvre un document en lecture seule
Variant vOOoOpenOffice, vOOoDesktop, vOOoLoadParams, vOOoDocument, vOOoPropertyValue;
try
{
vOOoOpenOffice = CreateOleObject (" com.sun.star.ServiceManager " );
}
catch (...)
{
}
if (VarType (vOOoOpenOffice) = = varDispatch)
vOOoDesktop = vOOoOpenOffice.OleFunction (" createInstance " , " com.sun.star.frame.Desktop " );
int Bounds[2 ] = { 0 ,0 } ;
vOOoLoadParams = VarArrayCreate (Bounds, 1 , varVariant);
vOOoPropertyValue = vOOoOpenOffice.OleFunction (" Bridge_GetStruct " , " com.sun.star.beans.PropertyValue " );
vOOoPropertyValue.OlePropertySet (" Name " , " ReadOnly " );
vOOoPropertyValue.OlePropertySet (" Value " , true );
vOOoLoadParams.PutElement (vOOoPropertyValue, 0 );
AnsiString FileName = " file:///C:/ " ;
FileName + = " essai.sxc " ;
FileName = StringReplace (FileName," <A href= " file:
Variant vFileName = StringToOleStr (FileName);
vOOoDocument = vOOoDesktop.OleFunction (" LoadComponentFromURL " ,vFileName," _blank " ,0 ,vOOoLoadParams);
|
|
Consultez les autres F.A.Q.
|
|