LibreOffice Impress : comment faire une macro

Comme ils l’expliquent officiellement ici, tout est en constante évolution, la documentation est pas forcément à jour etc, donc il vaut mieux aller jeter un coup d’oeil directement dans les rouages pour être sûr du fonctionnement de certains objets de LibreOffice. Ajoutez tout d’abord l’inspecteur d’objet. Il faut aller dans les Macros » Gestion des extensions, et ajouter en une extention en copiant/collant l’URL ici.

Tout d’abord le lieu de référence, celui que tout développeur cherche toujours : celui qui affiche tous les élements accessibles et ce qu’on peut faire avec : les namespaces !

List of all namespaces with brief descriptions

Je vous résume mon problème : la nouvelle mise à jour de LibreOffice change le comportement des animations et il n’est plus possible d’appliquer la même animation à un groupe. Il faut applique l’animation à la main, élément par élément ! Sur un slide de 40 pages j’ai déjà 40 fois à appliquer la même animation (ouverture en fondu), mais si je dois le faire pour 40 x 10 animations = 400 fois c’est du n’importe quoi.

Vous avez tout d’abord une liste d’exemples très intéressants ici. Mais le seul problème c’est qu’il y a très peu de choses concernant Impress. Il y a une super documentation ici, mais c’est sur des macros Python, et Python en macros, n’est utilisable que sur Write, pas sur Impress…

Voici un exemple très poussé et dont plein de choses fonctionnent à merveilles, mais certains appels ne fonctionnent pas.

C’est à partir de là que je me suis débrouillé pour écrire ma macro qui sélectionne toutes les animations du slide en cours, et les change au format « Ouverture en fondu -> Durée : 1.0s ».

2 comments

    • Olivier Pons

      Oui mais cela n’est pas suffisant, si tu regarde mes questions sur stackoverflow. En effet, mon problème vient principalement du fait que les macros sur Impress sont presque à l’état embryonnaire, contrairement aux macros Writer ou Calc. Sur Impress, il n’y a pas de parser macros Python – contrairement aux macros Writer ou Calc, cela veut dire clairement : « nous n’avons rien fait côté Impress ». Si j’avais la disponibilité – ou si j’étais payé pour cela – je passerai beaucoup de temps à faire en sorte que plein de macros qui me manquent sur Impress soient présentes, je nettoierai la documentation qui est très souvent obsolète, je chercherai les bogues car, avec mes macros, j’ai fait planter Impress un nombre incalculable de fois (= très peu de vérifications de sécurité doivent être faites), et je giflerai par mail personnellement le crétin qui a changé l’ergonomie des animations qui fait qu’on ne peut plus appliquer une animation (ou un temps) à plusieurs éléments, ce qui me fait perdre des heures entières pour rien (à moins qu’il n’arrive à se justifier clairement sur le choix de cette décision qui est pour l’instant à mes yeux totalement débile et pour laquelle je n’ai rien trouvé en cherchant et discutant sur tous les forums officiels). Bref, Impress est exactement ce que sont plein de gros projets open-source : ça démarre bien, des personnes y mettent leurs grosses papattes sales avec leur code moisi pour le faire évoluer dans leur sens, plein d’autres essaient de nettoyer et faire évoluer proprement et on arrive à un programme qui fonctionne bien et pour lequel si on se plonge dedans, tout devient un cauchemar car c’est en permanence du « work in progress ». Là dessus, Word, Excel et Powerpoint sont tout de même à un niveau incomparable en terme à la fois de qualité et de fonctionnalités. Mais c’est la vie du gratuit, je fais avec !

Poster un commentaire

Vous devriez utiliser le HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>