IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ C++ BuilderConsultez toutes les FAQ

Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe C++ Builder de Developpez.

Commentez cette FAQ : Commentez

SommaireOpenOffice (34)
précédent sommaire suivant
 

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 : Apache OpenOffice Wiki, 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://www.openoffice.org/fr/Telecharger/

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ées
  • Texte (formaté) odt créé par Writer
  • Classeur ods créé par Calc
  • Présentation odp créée par Impress
  • Dessin odg 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
https://silkyroad.developpez.com/
8/ un lien vers la FAQ Delphi qui a servie de support
https://delphi.developpez.com/faq/?p...OpenOffice-org

Mis à jour le 10 décembre 2007 atlantis blondelle pottiez

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>

Code c++ : Sélectionner tout
1
2
3
4
5
6
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.

Code c++ : Sélectionner tout
OpenOffice = Unassigned;

3/ Savoir si on est connecté à OpenOffice

Code c++ : Sélectionner tout
1
2
boolean vOOoConnect; 
vOOoConnect = ! (VarIsEmpty(vOOoOpenOffice) || VarIsNull(vOOoOpenOffice));

Mis à jour le 10 décembre 2007 atlantis blondelle pottiez

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

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Variant vOOoOpenOffice, vOOoDesktop, vOOoLoadParams, vOOoDocument, vOOoPropertyValue; 
try 
{ 
    vOOoOpenOffice = CreateOleObject("com.sun.star.ServiceManager"); 
} 
catch (...) 
{ 
    // si on passe ici c'est qu'il y a une erreur 
} 
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"); // pour ReadOnly ou pour Hidden 
vOOoPropertyValue.OlePropertySet("Value", true); 
vOOoLoadParams.PutElement(vOOoPropertyValue, 0); 
//ouverture fichier existant 
// FilePath = "file://localhost/C:/essai.sxc" -- pour un fichier Calc 
//ou 
// FilePath = "file:///C:/essai.sxc" -- pour un fichier Calc 
AnsiString FileName = "file:///C:/"; 
// FileName += ExtractFilePath(Application->ExeName); 
FileName += "essai.sxc"; 
FileName = StringReplace(FileName, "\\", "/", TReplaceFlags() << rfReplaceAll << rfIgnoreCase); 
Variant vFileName = StringToOleStr(FileName); 
vOOoDocument = vOOoDesktop.OleFunction("LoadComponentFromURL",vFileName,"_blank",0,vOOoLoadParams);

Mis à jour le 10 décembre 2007 atlantis blondelle pottiez TABZ

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.