Développement LibreOffice

LibreOffice intègre non seulement un langage de macros pour développer de petites applications sur la base d’un document bureautique, mais permet également de créer des interfaces avec votre système d’informations. Plusieurs technologies sont disponibles : L’utilisation du format de fichier XML de LibreOffice et une interface de programmation (API) dénommée UNO (pour Universal Network Object), utilisable pour ajouter des composants à LibreOffice ou pour développer une application pilotant LibreOffice.

Dynamiser les documents

Les macros peuvent s’appuyer sur l’ensemble des objets de LibreOffice et permettent donc de manipuler le contenu d’un document (cellules, formulaire, …), d’automatiser des opérations et de créer des interfaces utilisateurs supplémentaires. Ce développement se fait avec le langage StarBasic, dans un IDE (environnement de développement) intégré à LibreOffice, qui facilite la saisie du code et le débogage. La structure du langage StarBasic est celle du Basic, donc identique au VBA (Visual Basic for Application) de Microsoft.

Qu’en est-il du portage de macros MSOffice vers des macros LibreOffice ?

Bien que la structure des langages soit identiques, il existe une différence entre les macros sous LibreOffice et les macros sous MS Office qui est le modèle objet sous-jacent. Or, il faut s’appuyer sur ce modèle pour toutes les interactions avec le document ou l’utilisateur. Les deux modèles objets ne sont pas « superposables », c’est à dire qu’on ne trouve pas directement un objet MSOffice correspondant à un objet UNO. La migration de l’un vers l’autre demande donc une intervention humaine, même si plusieurs projets d’outil de migration se développent.

Communiquer avec vos applications métiers avec UNO

L’API UNO supporte les langages Java, Python, C++. Dans le monde Windows, elle peut également être appelée depuis un objet COM OLE Automation, donc depuis toute application développée avec un outil supportant ce modèle (tout langage des suites Visual Studio ou .net, Delphi, …). Cette API permet de piloter toutes les fonctionnalités de LibreOffice à partir d’une application externe, qui peut être distante ou locale. Il est ainsi possible de générer ou modifier des documents bureautiques à partir des applications métiers (en mode batch ou interactif), de développer des applications graphiques proposant une valeur ajoutée à LibreOffice (Ex : Ecrire un fax qui sera ensuite automatiquement envoyé par l’application). L’API permet également d’étendre les fonctionnalités de LibreOffice en créant de nouveaux composants, directement intégrés dans l’interface graphique de LibreOffice.

Manipuler les documents avec XML/XSL

Le contenu des documents LibreOffice est stocké au format XML, selon une grammaire (DTD) publiée. Il est donc possible de le manipuler par des transformations XSL, permettant de créer de nouveaux documents ou d’en extraire du contenu, de supprimer des éléments non indispensables pour la publication ou au contraire d’en ajouter. Le format XML de LibreOffice offre donc une autre manière d’intégrer la manipulation de documents bureautiques au sein des applications métiers, dès lors que ces applications utilisent une technologie intégrant un parseur XML et un processeur XSLT (Java, PHP, Perl, Python, …). LibreOffice contient nativement un environnement d’exécution XSLT, permettant d’intégrer des transformations XSL à appliquer lors de l’ouverture et de l’enregistrement d’un document. Il est ainsi facile d’utiliser une DTD spécifique d’une organisation pour le stockage des documents bureautiques.

Le développement LibreOffice vous intéresse ? Contactez-nous