ODF en jeu
Par sophi, lundi 29 octobre 2012 à 14:49 :: General :: #175 :: rss
Vous le savez, un fichier ODF est en fait une archive compessée qui comprend un ensemble de répertoires et de fichiers, la plupart au format xml. Ce qui est intéressant dans l'architecture de ce format, c'est la façon dont on peut jouer avec les données contenues dans ces répertoires et fichiers.
Petit rappel parce que c'est finalement une question que l'on me pose souvent, ODF est le nom du format de fichier normé par l'ISO et vaut pour Open Document Format. Ce nom de format de fichier se décline ensuite en fonction des modules qui l'utilisent : Open Document Text (.odt) pour le traitement de texte, Open Document Spreadsheet (.ods) pour les classeurs, etc.
Ce format de fichier est en fait une archive compressée. Renommez votre fichier Text.odt en Text.zip et vous aurez alors accès au contenu de cette archive. Une image vaut mieux qu'une explication :
À partir de ces fichiers, vous allez donc avoir accès à tout le contenu de votre document, que ce soit à la mise en forme (styles), le texte, les méta-données, ou encore à des configurations particulières. Le format de tout ceci, y compris de la configuration, est du XML (je vous renvoie à votre ami Wikipedia pour tout savoir de quoi je parle) un langage spécialisé dans l'échange automatisé de contenu complexe. Vous voyez où je veux en venir ;-)
En tant que simple utilisateur, cela vous donne un grand avantage par rapport à un fichier binaire, non accessible, vous allez pouvoir accéder au contenu de votre document, même si votre logiciel préféré refuse de l'ouvrir pour une raison ou une autre. Souvent, il arrive qu'un fichier se corrompe parce que trop de manipulations sur les styles ou les images. Ou encore des changements de formats. Avec un document au format ODF, vous pouvez dézipper le contenu du fichier pour accéder à l'ensemble de ses répertoires comme l'image le montre ci-dessus, supprimer le fichier styles.xml par exemple, rezipper le répertoire et ouvrir votre document une fois renommer en .odt. Vous aurez perdu les styles, mais récupéré le précieux contenu.
Si vous êtes un peu plus sûr de vous, cela devient vraiment intéressant parce que vous allez pouvoir jouer directement avec les données, parfois, sans même avoir à toucher au document lui-même. Il existe des outils, souvent des scripts en java, perl ou en python, qui vont vous permettre de manipuler les contenus.
Un exemple, je me suis amusée avec une bibliothèque de scripts en python. Vous la trouverez ici http://lpod-project.org/, développée par un ensemble de sociétés (dont Itaapy et Ars Aperta) au sein d'un projet nommé lpOD sous licence open source, facile à installer et bien documentée.
Une fois installée, voici ce dont vous disposez :
Je suis partie de trois fichiers .odt qui constituent les trois parties d'un livre que je souhaitais regrouper en un seul document :
Le document Soie.odt a donc été généré à partir des trois documents. Je peux en vérifier son intégrité à partir du script lpod-test. J'ai ensuite extirpé les métadonnées de ce document (vous savez ce que vous mettez dans Calibre pour trier vos bouquins ;-)

Notez que je n'ai toujours pas du tout ouvert le document généré, mais que j'ai de plus en plus idée de son contenu. Continuons à jouer, vous voulez avoir accès au contenu, tapez juste la commande lpod-show.py Soie.odt et tout le contenu fusionné des trois documents s'affichera.
Vous voulez savoir quels styles sont utilisés (le -a réduit la sortie aux styles automatiques) :
Voilà, je n'ai fait que jouer un tout petit peu avec le contenu d'un document généré à partir de trois autres. Mais vous pouvez imaginer tout ce que l'on peut produire à partir de ces manipulations en les intégrant à un système de gestion et de structuration des données. L'enjeu du format ODF et des API mises à disposition est ici : pouvoir avoir accéder à l'ensemble des données d'un fichier pour l'intégrer à un process complexe de traitement.
Il serait d'ailleurs intéressant de faire un inventaire des outils existant sur notre wiki afin de les mutualiser. Ce sont aussi de bons outils d'apprentissage quand ils sont bien documentés et leur réappropriation permet de les adapter et de les étendre - bien sûr s'ils sont, comme lpOD, sous licence open source :)





Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.