Documentation/Outils de génération de documents ODF

From The Document Foundation Wiki
Jump to: navigation, search
This page is a translated version of the page Documentation/ODF documents generation tools and the translation is 96% complete.

Other languages:
English • ‎français • ‎italiano • ‎日本語

Ressources de développement

Portail TDF dédié au développement : https://wiki.documentfoundation.org/Development

Outils de génération ODF

Python

odfpy
odpdown

Java

ODF Toolkit

Projet TDF officiel, collaboration avec Apache

PHP

PHPOffice

Projet tiers, activement maintenu. Le développeur principal (Franck Lefevre) avait d’ailleurs contacté la communauté francophone de LibreOffice par le biais de son compte Twitter afin de pouvoir poser des questions à un gourou de l’ODF. Contacter Svante Schubert, travaillant pour CIB, lui a été recommandé.

OpenTBS

Projet actif, plugin pour TinyButStrong mais utilisable sans TinyButStrong. Très simple d’utilisation, pas d’installation, seuls deux fichiers php contenant les classes sont nécessaires. Basé sur des modèles (template) définis par l’utilisateur.

JavaScript

WebODF

Bibliothèque JavaScript permettant de rendre un document ODF à l’aide de HTML et CSS. Initialement développé par KO GmbH.

XmlRPC

Nexedi cloudooo

Http

NDCODFAPI Project

LibreOffice

Il est également possible de générer des documents ODF avec un traitement exécutant LibreOffice sur un serveur. Ce traitement LibreOffice pourra exécuter une macro qui elle-même générera un ou des documents, par exemple via un publipostage. Pour appeler une macro sur un serveur Linux pour une exécution sans interface graphique :

   libreoffice --nofirststartwizard --norestore --headless --invisible  "macro:///bibliothèque.module.macro(arg1,arg2...)"

Méthode générique, basée sur des paquets Python standard

Le standard ODF consiste à faire un fichier comprimé (par ZIP), qui contient diverses données, la plupart au format XML. Il n’y a aucune raison qu’un outil générique pour traiter le XML soit écarté. Ça suppose bien sûr que la personne qui écrit un script sache ce qu’est le XML, ce que sont des arbres, des sous-arbres, des nœuds, des attributs, etc. Une bonne façon de travailler consiste à partir d’un fichier modèle (template), qui contient déjà les parties constantes du document à générer, avec les bons styles, et une structure convenable, puis à créer à côté un script léger qui récupère des données ailleurs, et se sert de l’arbre DOM du modèle pour générer un document élaboré. Ainsi, on sépare facilement la forme (dans le modèle) du fond (les traitements des données).

paquet zipfile

Le paquet Python zipfile permet d’ouvrir les fichiers .odt, .ods, . odg, etc. et d’accéder à leurs contenus, en particulier le fichier content.xml qui code le contenu du document, le répertoire Pictures qui contient les images, etc.

paquet xml.dom.minidom

Avec la classe minidom, il est facile d’ouvrir le fichier content.xml et d’en analyser le contenu sous forme d’un arbre syntaxique (l’arbre DOM). Quand on a cet arbre, on peut « jardiner » : trouver une branche particulière, la supprimer, ou la modifier, ou en faire des copies et les greffer à l’arbre avant ou après telle autre branche.