3. Utilisation

OOo2sDBK exporte une méthode convert qui permet de réaliser la conversion d'un document OpenOffice Writer.

3.1. Étapes

  1. Avec un éditeur de texte, rédigez le script qui appellera la méthode convert du module ooo2sbk (voir 3.2 Syntaxe pour plus de détails). Par exemple, pour convertir le document myDoc.sxw en un document Docbook appelé myDocbook.xml avec le processeur Saxon, on rédigera le script suivant :

import ooo2sdbk
ooo2sdbk.convert("myDoc.sxw", docbook="myDocbook.xml", command="saxon")
  1. Enregistrez le script avec l'extension *.py (par exemple : conversion.py) dans le même répertoire que le document OpenOffice

  2. Ouvrez un shell sous Linux ou une session DOS sous Windows :

    1. Placez-vous dans le dossier ou se trouve votre script avec la commande CD

    2. Saisissez la commande : python conversion.py

  3. Après quelques instants, la conversion est faite (la durée dépend de la taille du document OpenOffice et de la rapidité du processeur).

3.2. Syntaxe

convert(openoffice-filename, command=commandName, \
[docbook=docbook-filename], [imagesrew=0|1] [deltemp=0|1])
OpenOffice-filename (requit)

Chemin d'accès (relatif ou absolu) au fichier OpenOffice-Writer à convertir

Command=commandName (requit)

commandName est le nom de la commande utilisée pour la conversion.

La liste des commandes disponibles se trouve le fichier de configuration config.xml. Le fichier contient 2 commandes préconfigurées : xsltproc et saxon (Voir section 3.4   Fichier de configuration ).

docbook=Docbook-filename (facultatif)

Chemin d'accès (relatif ou absolu) au fichier Docbook produit.

Si ce paramètre est omit, le fichier docbook aura le même nom que le fichier OpenOffice avec l'extension *.xml et sera enregistré dans le même répertoire. Par exemple : myDoc.sxw => myDoc.xml

Imagesrew=0|1 (facultatif, 1 par défaut)

Images Rewriting. Ne concerne que les images incorporées au document OpenOffice.

Si la valeur est 1, les images incorporées au document OpenOffice écrasent les images ayant le même nom dans le répertoire de destination.

Si la valeur est 0, les images déjà présentes dans le répertoire de destination ne sont pas réécrites.

Deltemp=0|1 (facultatif, 1 par défaut)

Delete temporary file. Si deltemp est 0, le fichier temporaire global.xml est préservé. Par défaut, il est détruit à la fin de la conversion (deltemp=1). Le fichier global.xml est la concaténation de tous les fichiers XML du document OpenOffice. Il sert de base à la conversion. Surtout utile pour le développement. Par défaut, deltemp=1.

3.3. Exemples de script

3.3.1. Exemple 1 (Windows)

Les fichiers sont ici indiqués avec de chemins absolus, on utilise le processeur Saxon.

import ooo2sbk
ooo2sbk.convert("C:\monDocumentOOo.sxw",docbook="C:\monDocbook.xml",\
command="saxon")

3.3.2. Exemple 2 (Windows ou Linux)

Les chemins d'accès aux fichiers sont relatifs, cela suppose, ici, que le script se trouve dans le même répertoire que les fichiers. Le fichier Docbook produit sera : monDocumentOOo.xml

import ooo2sbk
ooo2sbk.convert("monDocumentOOo.sxw", command="saxon")

3.3.3. Exemple 3 (Linux)

Chemins d'accès absolus et utilisation de xsltproc (avec libxslt et libxml2).

import ooo2sbk
ooo2sbk.convert("/home/Documents/doc.sxw",\
docbook="/home/Documents/monDocbook.xml", command="xsltproc")

3.4. Fichier de configuration

Le fichier de configuration config.xml se trouve à la racine du répertoire ooo2sdbk. Il permet notamment de configurer les modèles de commandes des processeurs XSLT disponibles

<config>
     <xslt-command
         name="xsltproc"
         command="xsltproc -o %o %s %i"/>
     <xslt-command
         name="saxon"
         command="java com.icl.saxon.StyleSheet -o %o %i %s"/>
     <xslt-stylesheet
         stylesheetPath="docbook.xsl"/>
     <images
         imageNameRoot="img"
         imagesRelativeDirectory="images"/>
</config>

3.4.1. xslt-command

Permet de définir un modèle de commande pour le processeur XSLT

name

Nom du modèle de commande. Il sera appelé dans le script Python.

command

Commande de conversion du processeur XSL. Trois variables sont disponibles :

%o

output, le nom du fichier XML produit

%i

input, le nom du fichier XML entrant

%s

stylesheet, le nom de la feuille de style XSL

Voici quelques exemple de commandes utilisables (à adaptés à votre système):

java com.icl.saxon.StyleSheet %i %s > %o
java -jar /usr/java/classes/saxon/saxon.jar -o %o %i %s (Linux)
java -cp C:\saxon\saxon.jar com.icl.saxon.StyleSheet %i %s > %o (Windows)
            

3.4.2. xslt-stylesheet

Permet de définir le chemin d'accès vers la feuille de style docbook.xsl

stylesheetPath

Chemin relatif vers la feuille de style XSL à partir du fichier ooo2sdbk.py.

3.4.3. images

Permet de configurer l'extraction des images incorporées au document OpenOffice.

ImageNameRoot

Radical du nom attribué aux images extraites du document OpenOffice.

Le radical "img" produira des image ayant pour nom : img001.png, img002.jpg, etc.

Le radical "pix" produira des images ayant pour nom : pix001.png, pix003.jpg, etc.

imagesRelativeDirectory

Nom du répertoire qui accueille les images extraites du document OpenOffice. Ce répertoire est généré automatiquement dans le même répertoire que le document Docbook.

3.5. Problèmes de conversion

  1. Avant la version 2.4.22, Xsltproc ne gère pas correctement la conversion du Texte préformatté. Les retours de ligne, les espaces multiples et les tabulations sont perdus.

  2. Sous Windows, Xsltproc ne gère pas correctement les chemins dans les balises import et include des feuilles XSLT (échec total de la conversion).