OOo2sDbk

Convertisseur OpenOffice-Writer vers Docbook

03/12/2002

Eric Bellot


Table des matières

1. Présentation
2. Nouveautés
3. Fonctionnalités
3.1. Fonctionnalités supportées
3.2. Fonctionnalités en préparation
3.3. Balises de la Docbook simplifiée non supportées
3.4. Limites de la conversion
4. Exemple de conversion
5. Téléchargement
5.1. ooo2sdbk-04
5.2. Programmes nécessaires à OOo2sDbk
6. Documentation
6.1. Guide d'installation et d'utilisation
6.2. Guide de conversion
7. Bogues et problèmes
8. Annexes
8.1. Installation du filtre "Flat XML"
8.2. Liens

1. Présentation

OOo2sDbk est une feuille de styles XSLT. Elle permet de convertir les documents OpenOffice-Writer au format Docbook simplifié.

La feuille de styles est accompagnée d'un jeu de scripts Python permettant de traiter directement les documents *.sxw et d'extraire les images incorporées au document OpenOffice.

Elle peut aussi être utilisée de façon autonome pour convertir les documents XML OpenOffice-Writer produits par le filtre FlatXML.

OOo2sDbk doit être utilisé avec un processeur XSLT (Saxon ou Xsltproc, par exemple).

OOo2sDbk est un logiciel libre sous licence GNU LGPL. Il fonctionne sous Windows 9x/Me/NT/2000 et GNU/Linux.

2. Nouveautés

03-12-2002 – La version 0.4.2 d'OOo2sDbk est disponible

Ajout d'une ligne de commande standard pour la conversion (Linux et Windows).

02-11-2002 -- La version 0.4 d'OOo2sDbk est disponible
  • Amélioration de la conversion des tableaux (support complet des fusions de cellules). Les tableaux les plus complexes sont possibles.

  • Amélioration de la gestion des métadonnées (infoarticle)

  • Support des légendes pour tableaux et figures

  • Support de la majeure partie des balises de la Docbook simplifiée (une cinquantaine de balises nouvelles)

  • Création d'un modèle de documents OOo-Writer "spécial Docbook"

  • Amélioration de la documentation

18-08-2002 – OOo2sDbk 0.3 utilisé par le projet PEARL

La feuille de style ooo2sdbk.xsl a été intégrée au système de conversion du projet Pear par Pierre-Alain Joye. Le système fonctionne avec des scripts PHP.

3. Fonctionnalités

3.1. Fonctionnalités supportées

Voici les principaux éléments d'OpenOffice qu'OOo2sDbk est capable de convertir au format Docbook :

  • Les titres hiérarchiques (convertis en sections correctement imbriquées)

  • Les métadonnées (titre, sous-titre, auteur, éditeur, mots-clefs, pubdate, legalnotice, abstract, etc.)

  • La plupart des styles de paragraphes (para, programlisting, citation, etc.)

  • Les styles de caractères courants (emphasis, citetitle, etc.)

  • Les styles de caractères techniques (command, option, literal, lineannotation, etc.)

  • Les images liées ou incorporées, avec ou sans légendes:

    • inline (inlinemediaobject)

    • simples (mediaobject)

    • légendées (figure)

  • Les tableaux avec ou sans légende (table et informaltable)

  • Les liens hypertextes et les renvois internes

  • Les notes de bas de pages et de fin (footnote) y compris l'appel de notes multiple

  • Les notes (note)

  • Les listes à puces et numérotées (itemizedlist et ordonedlist)

  • Les listes de termes (variablelist)

3.2. Fonctionnalités en préparation

  • Refonte complète de la conversion des bibliographies.

  • Possibilité de personnaliser les balises

  • Conversion Docbook => OpenOffice

3.3. Balises de la Docbook simplifiée non supportées

  • <videoobject>, <audioobject>, <objectinfo>, <example>, <sidebar>, <sectioninfo> et <revhistory>

  • Les bibliographies (la gestion existe mais n'est pas satisfaisante)

  • Certains attributs

3.4. Limites de la conversion

  • Les images ancrées à la page dans OOo ne sont pas transmises au document Docbook.

  • Un certain nombre d'éléments ne sont pas convertis car la Docbook ne les supporte pas :

    • Mises en formes de caractères (souligné, couleur et autres effets de caractères)

    • Objets OLE, lignes horizontales

    • Entêtes et pied de pages

  • Les imbrications complexes de styles/tags sont impossibles à gérer avec OpenOffice (ce n'est tout de même qu'un traitement de texte...)

4. Exemple de conversion

Le test de conversion a été réalisé sous Mandrake-Linux 9.0 avec :

  • OpenOffice.org 1.0.1 (et aussi OpenOffice.org 643)

  • Saxon 6.5.2 (J2RE 1.4.1) et Xsltproc 1.0.21 (libxml2 2.4.25)

  • Python 2.2.1

  • Docbook-XSL 1.57.0

Le fichier Docbook produit a été parsé et validé avec Xmllint pour les DTD Docbook 4.1.2/ 4.2 et pour la Simplified Docbook 1.0CR3 (aucune erreur dans chaque cas).

5. Téléchargement

5.1. ooo2sdbk-04

  • oo2sdbk-0.4.2-all.zip

    L'archive contient tous les fichiers :

    • Scripts Python

    • Feuille XSLT

    • Exemple de conversion

    • Modèle OpenOffice "spécial Docbook"

    • Autotexte pour l'insertion de métadonnées correctes.

    • Documentation

  • ooo2sdbk-xsl-0.4.zip

    Feuille XSLT seule. Elle permet la conversion des fichiers OpenOffice-XML produits par le filtre Flat-XML

5.2. Programmes nécessaires à OOo2sDbk

Pour fonctionner, ooo2sdbk requiert un certain nombre de programmes. Vous trouverez plus de détails dans le guide d'installation.

[Note] Note

L'utilisation du filtre FlatXML réalisé par le groupe API de l'équipe d'OpenOffice peut éliminer le recourt aux scripts en Python d'OOo2sDbk.

  • Docbook-XSL

    Il est bon d'avoir aussi les feuilles de styles XSLT pour Docbook de Norman Walsh. Elles permettent de produire toutes sortes de formats à partir d'un fichier Docbook (FO, HTML, XHTML)

    http://docbook.sourceforge.net/projects/xsl

6. Documentation

6.1. Guide d'installation et d'utilisation

Ce document présente les étapes d'installation d'OOo2sDbk, les procédures de conversion d'un document OpenOffice au format Docbook et la mise en place du modèle OpenOffice "spécial Docbook".

[ HTML | HTML monopage | Docbook-XML ]

6.2. Guide de conversion

Ce document présente les modalités de conversion d'un document OpenOffice-Writer au format Docbook avec Ooo2sDbk. On y trouvera notamment la table de correspondance complète entre les styles et objets d'OpenOffice et leur équivalent au format Docbook.

[ HTML | HTML monopage | Docbook-XML ]

7. Bogues et problèmes

  • Incompatibilité avec PyXML.

    Les scripts Python d'OOo2sDbk sont incompatibles avec le module PyXML pour Python. Lorsque le module PyXML est présent, la conversion plante.

  • Paragraphes littéraux déstructurés avec Saxon (programlisting, literallayout)

    Le problème apparaît à 2 conditions :

    • On a choisit de produire un code Docbook indenté

    • Des mises en formes "inlines" sont présentes dans les paragraphes programlisting ou literallayout. Par exemple, command, option, etc.

Malgré pas mal de tentatives, je ne suis pas parvenu à éliminer ce comportement. Solution : ne pas indenter le code. Xsltproc ne pose pas ce problème.

8. Annexes

8.1. Installation du filtre "Flat XML"

Ce document explique comment installer le filtre Flat Writer XML (FlatXMLfilter) dans OpenOffice.org. Ce filtre permet à OpenOffice d'enregistrer directement des fichiers OpenOffice-Writer au format XML.

[ HTML | Docbook-XML | PDF | OOo-SXW | Ooo-XML ]

Pour télécharger le filtre FlatXMLfilter.zip :

http://api.openoffice.org/servlets/ProjectDownloadList

8.1.1. A propos du format FlatXML et du convertisseur OOo2sDbk

Le fichier XML produit par le filtre Flat XML peut être converti au format Docbook avec la feuille de style docbook.xsl d'OOo2sDbk.

Par exemple avec Saxon, on pourra réaliser la conversion par la ligne de commande suivante :

java com.icl.saxon.StyleSheet ooo.xml docbook.xsl > dbk.xml

La feuille de styles docbook.xsl est incapable, seule, de gérer les images incorporées au document XML. Par contre, les images liées sont rendues correctement.

8.2. Liens

8.2.1. Sur la Docbook

8.2.2. Sur OpenOffice