Passons aux choses sérieuses, analysons un fichier bureautique XML. Au niveau de la structure les fichiers OpenXML et OpenDocument sont batis sur le même modèle. Nous allons nous attacher à analyser le format d'un fichier Writer d'OpenOffice (extension odt).

Un fichier odt est en fait un fichier compressé comprenant plusieurs fichiers et répertoire.

composition fichier OpenDocument

 Dans le fichier "content.xml" on retrouve tout le contenu textuel du fichier.

 

Présentation de la bibliothèque PHPodt

PHPOdt est une bibliothèque PHP destinée à servir de moteur de template pour des fichiers OpenDocument.Son utilisation requiert PHP 5.2 et d'activer l'extension Zip.

Notre tutoriel se base sur la version 0.9

Le site sourceforge de la bibliothèque PHP odt.

Espace de  téléchargement.

Dans le repertoire test vous avez trois tutoriels qui vous permettront de mettre en pratique les trois fonctionnalités de base de PHPodt.

Mise en place du template OpenOffice

La première phase consiste à mettre en place votre document référent OpenOffice. De la même façon qu'avec les templates PHPLib il vous suffit d'indiquer les endroits que vous souhaitez remplacer avec la notation suivante "{titre}", "{message}", ...

 

Remplacement de variables

 

Figure 1. script PHP pour un document OpenOffice - [Fichier OpenOffice associé ] -
  1. <?php
  2. // Make sure you have Zip extension loaded
  3. // First : include the librairy
  4. require_once('../library/odf.php');
  5. $odf = new odf("tutoriel1.odt");
  6. $odf->setVars('titre', 'PHP: Hypertext PreprocessorPHP: Hypertext Preprocessor');
  7. $message = "PHP (sigle de PHP: Hypertext Preprocessor), est un langage de scripts libre ... commande.";
  8. $odf->setVars('message', $message);
  9. // On exporte le fichier
  10. $odf->exportAsAttachedFile();

  11. ?>

 

Ces quelques lignes de code vont vous permettre d'utiliser la fonctionnalité la plus basique de la bibliothèque PHPodt : le remplacement de variables.

Insertion d'images

Une autre fonctionnalité de la bibliothèque odtPHP est de permettre l'insertion d'images. Pour cela on utilise la méthode setImage() de la classe.

Figure 2. script PHP pour un document OpenOffice - [Fichier OpenOffice associé ] -
  1. <?php
  2. // Make sure you have Zip extension loaded
  3. // First : include the librairy
  4. require_once('../library/odf.php');
  5. $odf = new odf("tutoriel1.odt");
  6. $odf->setImage('image', './images/anaska.jpg');
  7. // On exporte le fichier
  8. $odf->exportAsAttachedFile();

  9. ?>

Il est également possible de faire des boucles et plus. D'autres tutoriels sont disponibles dans les sources.

N'hésitez pas à contribuer à cette bibliothèque.