03/12/2002
Copyright © 2002 Eric Bellot
Table des matières
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.
Ajout d'une ligne de commande standard pour la conversion (Linux et Windows).
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
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.
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)
Refonte complète de la conversion des bibliographies.
Possibilité de personnaliser les balises
Conversion Docbook => OpenOffice
<videoobject>, <audioobject>, <objectinfo>, <example>, <sidebar>, <sectioninfo> et <revhistory>
Les bibliographies (la gestion existe mais n'est pas satisfaisante)
Certains attributs
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...)
Document Docbook (au format XML)
Code du document Docbook (présenté au format HTML)
Document Docbook converti en HTML "brut" (feuilles de styles de N. Walsh non modifiées)
Document Docbook converti en HTML "amélioré" (feuilles de styles de N. Walsh personnalisées et CSS)
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).
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
Pour fonctionner, ooo2sdbk requiert un certain nombre de programmes. Vous trouverez plus de détails dans le guide d'installation.
un processeur XSLT
Nous recommandons Saxon pour l'environnement Windows et Xsltproc pour les environnement GNU/Linux.
Saxon : http://saxon.sourceforge.net
XSLTproc : http://xmlsoft.org/downloads.html
Python
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)
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 ]
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 ]
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.
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
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.
La page officielle d'Oasis : http://www.oasis-open.org/committees/docbook/
La page technique (Docbook Open repository) : http://docbook.sourceforge.net
Le portail, Docbook Wiki : http://docbook.org/wiki/moin.cgi
La FAQ : http://www.dpawson.co.uk/docbook
Les ressources pour les auteurs du Linux Documentation Project :
Le Linux Documentation Project francophone : http://fr.tldp.org
Les feuilles de styles de Norman Walsh pour convertir les documents Docbook en HTML, XHTML et FO. : http://docbook.sourceforge.net/projects/xsl/index.html
La référence de la simplified Docbook DTD : http://www.docbook.org/tdg/simple/en/
La simplified Docbook DTD 1.0CR3 :
http://www.oasis-open.org/committees/docbook/xml/simple/1.0CR3/index.shtml
Le site officiel : http://www.openoffice.org
Le projet XML : http://xml.openoffice.org
Le projet officiel de convertisseur OpenOffice vers Docbook :
La référence de la DTD OpenOffice 1.0 au format PDF [550 pages, 1.5 Mo] :
La DTD OpenOffice 1.0 (CVS):
http://www.openoffice.org/source/browse/xml/xmloff/dtd/La DTD est présente dans le répertoire d'installation d'OpenOffice:
[install-OOo]/share/dtd/officedocument