Ce message ne concerne pas les fonctionnalités du logiciel OpenOffice mais la structure d'un document texte .odt (contenant lui-même une formule .odf) que je désirerais comprendre ; mes recherches Internet ont été infructueuses.
J'ai, dans un document .odt vierge, inséré « x » à l'intérieur d'une formule. J'ai enregistré, fermé, puis renommé le document avec l'extension .zip et ai enfin désarchvée (ou décompressé) cette archive : elle contient des fichiers XML, un fichier texte et des dossiers contenant eux aussi des fichiers XML ainsi qu'un fichier image dont j'ignore la nature ('Object 1' dans le dossier 'ObjectReplacements') ; même Gimp ne peut pas l'ouvrir ('Type de fichier inconnu').
En particulier, le fichier XML principal, 'content.xml', décrit le contenu de tout le document et a alors la structure suivante :
Code : Tout sélectionner
<office:document-content office:version="1.1">
<office:scripts/>
<office:font-face-decls>
<!-- contenu effacé pour épurer -->
</office:font-face-decls>
<office:automatic-styles/>
<office:body>
<office:text>
<text:sequence-decls>
<!-- contenu effacé pour épurer -->
</text:sequence-decls>
<text:p text:style-name="Standard">
<draw:frame draw:style-name="fr1" draw:name="Objet1" text:anchor-type="as-char"
svg:width="0.422cm" svg:height="0.504cm" draw:z-index="0">
<draw:object xlink:href="./Object 1" xlink:type="simple"
xlink:show="embed" xlink:actuate="onLoad"/>
<draw:image xlink:href="./ObjectReplacements/Object 1" xlink:type="simple"
xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</text:p>
</office:text>
</office:body>
</office:document-content>
- ⋅ un objet simple ('<draw:object>') implanté ('embed') & autochargeable (' xlink:actuate="onLoad"') décrit dans le dossier 'Object 1' associé à…
⋅ une image simple implantée & autochargeable qu'on trouve dans le dossier 'ObjectReplacements' et qui s'appelle (elle aussi) 'Object 1'.
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
<math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
<math:semantics>
<math:mi>x</math:mi>
<math:annotation math:encoding="StarMath 5.0">x</math:annotation>
</math:semantics>
</math:math>
Si, dans 'Object 1/content.xml', on remplace les x par des y et qu'on recompresse en .zip, qu'on renome tout ça en .odt et qu'on ouvre... il ne s'est apparemment rien passé, on voit x dans une formule ; sauf que si on l'ouvre en double-cliquant dessus, elle se transforme en y dans la page et dans l'éditeur d'équtions ! J'ai l'impression que, tant qu'on ne fait pas appel à l'éditeur d'équations, OpenOffice affiche l'image 'Object 1' du dossier 'ObjectReplacements' et dès qu'on essaie de modifier l'équation, c'est le dossier 'Object 1' auquel OpenOffice fait appel. Si on ferme alors tout, on nous demande d'enregistrer alors qu'aucune modif n'a été faite avec OpenOffice. Et le fichier Obtenu est valide et contient à part entière un y.
Si on remplace 'ObjectReplacements/Object 1' par une image de son choix (une .jpg) à laquelle on donne le nom de 'Obect 1' alors c'est bien cette photo qu'on voit (redimensionnée) en ouvrant le document...
Je désirerais pouvoir modifier un tel document par action d'un programme mais je ne sais pas comment générer cette image. Quel genre de fichier est l'image 'Object 1' ? Peut-on la générer avec un script php et éventuellement un autre programme ? Y a-t-il une façon de demander à OpenOffice de générer automatiquement, à l'ouverture du document, cette image à partir du code MathML de 'Object 1/content.xml' ?
Cordialement,
J.-M. B.