Python Guide - Introduction

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/Python Guide/Introduction and the translation is 48% complete.
    Outdated translations are marked like this.


    Return to Index


    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 Outils ▸ Macros ▸ Exécuter la macro, le dialogue "Sélection de Macro" apparaît. Dans la section Bibliothèque, sélectionnez Macros LibreOffice ▸ HelloWorld, dans la section Nom de la macro, sélectionnez HelloWorldPython, et cliquez sur le bouton Exécuter.

    Si vous voyez ce résultat, votre système peut exécuter des macros Python.

    Test macro 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]]