Python Guide - Introduction
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Introduction
Qu'est ce que PyUNO ?
LibreOffice permet aux utilisateurs d'écrire des macros dans plusieurs langages interprétés, dont l'un est Python. PyUNO est le composant qui permet aux utilisateurs d'accéder à l'interface de programmation de l'application (API ci-après par son acronyme Application Programming Interface) de LibreOffice avec Python.
Installation
Sur certains systèmes d'exploitation, comme Ubuntu 18.04 LTS, il peut être nécessaire d'installer un paquet additionnel au système. Le paquet est appelé libreoffice-script-provider-python et contient des fichiers comme scriptproviderforpython.rdb (Fichier de métadonnées au format XML) et pythonscript.py (Infrastructure Python).
- Dans Ubuntu 18.04+
sudo apt install libreoffice-script-provider-python
Test support pour les macros Python
Ouvrez un nouveau document dans Writer. Sélectionnez le menu
▸ ▸ , le dialogue "Sélection de Macro" apparaît. Dans la section , sélectionnez ▸ , dans la section , sélectionnez , et cliquez sur le bouton .Si vous voyez ce résultat, votre système peut exécuter des macros Python.
Où sauvegarder les macros?
Il n'y a pas de moyen intégré à LibreOffice pour éditer les scripts Python, vous devez donc utiliser votre propre éditeur de texte. Il y a trois endroits où vous pouvez placer votre code.
Répertoire du profil utilisateur, les macros ne sont disponibles que pour l'utilisateur
- GNU/Linux
/home/USER/.config/libreoffice/4/user/Scripts/python
- Windows
%APPDATA%\LibreOffice\4\user\Scripts\python
- macOS
~/Library/Application Support/LibreOffice/4/user/Scripts/python/
Répertoire de LibreOffice, les macros sont utilisables par tous les utilisateurs
- GNU/Linux
/usr/lib/libreoffice/share/Scripts/python/
Les chemins mentionnés sont les chemins par défaut. Dans les installations personnalisées, ils peuvent être différents. Si les dossiers n'existent pas, vous devez les créer en respectant la casse des caractères (majuscules).
A l'intérieur d'un document
- Tout fichier ODF, est en réalité un fichier ZIP, vous pouvez extraire ce fichier comme on le fait normalement pour ce type de fichiers. A la racine, créez le dossier
Scripts/python/
et copiez dedans n'importe quel fichier python, par exemple :mymacros.py
- Vous devriez voir:
myfile | ... ├── META-INF │ └── manifest.xml ├── Scripts │ └── python │ └── mymacros.py ...
- Éditer les fichiers manifest.xml dans le dossier META-INF et ajouter des lignes, juste avant la balise de fermeture </manifest:manifest>
<manifest:file-entry manifest:full-path="Scripts/python/mymacros.py" manifest:media-type="" />
<manifest:file-entry manifest:full-path="Scripts/python/" manifest:media-type="application/binary" />
<manifest:file-entry manifest:full-path="Scripts/" manifest:media-type="application/binary" />
Le fichier final devrait ressembler à cela:
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0">
<manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>
<manifest:file-entry manifest:full-path="Thumbnails/thumbnail.png" manifest:media-type="image/png"/>
<manifest:file-entry manifest:full-path="settings.xml" manifest:media-type="text/xml"/>
<manifest:file-entry manifest:full-path="manifest.rdf" manifest:media-type="application/rdf+xml"/>
<manifest:file-entry manifest:full-path="Configurations2/" manifest:media-type="application/vnd.sun.xml.ui.configuration"/>
<manifest:file-entry manifest:full-path="meta.xml" manifest:media-type="text/xml"/>
<manifest:file-entry manifest:full-path="styles.xml" manifest:media-type="text/xml"/>
<manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
<manifest:file-entry manifest:full-path="Scripts/python/mymacros.py" manifest:media-type="" />
<manifest:file-entry manifest:full-path="Scripts/python/" manifest:media-type="application/binary" />
<manifest:file-entry manifest:full-path="Scripts/" manifest:media-type="application/binary" />
</manifest:manifest>
- A présent, zipper à nouveau le document ODF (compresser au format 'zip'). Attention de ne pas zipper le dossier contenant les fichiers, mais zipper le contenu du dossier.
[[Special:MyLanguage/Macros/Python Guide|Retour à l'Index]]