Makros/Python-Leitfaden/Einführung

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/Python Guide/Introduction and the translation is 100% complete.


    Zurück zum Inhaltsverzeichnis


    Einführung

    Was ist PyUNO?

    LibreOffice ermöglicht es dem Benutzer, Makros in verschiedenen interpretierten Sprachen zu schreiben, eine davon ist Python. PyUNO ist die Komponente, die den Benutzern Zugriff auf die Programmierschnittstelle (API im Folgenden entsprechend seinem Kürzel Application Programming Interface) von LibreOffice mit Python gibt.

    Installation

    Auf einigen Betriebssystemen, wie zum Beispiel Ubuntu 18.04 LTS, müssen Sie eventuell ein zusätzliches Betriebssystem-Paket installieren. Bei Ubuntu wird das Paket libreoffice-script-provider-python genannt und enthält Dateien wie zum Beispiel scriptproviderforpython.rdb (XML Metadaten) und pythonscript.py (Python Infrastruktur).

    • In Ubuntu 18.04+

    sudo apt install libreoffice-script-provider-python

    Testen von Unterstützung für Python-Makros

    Öffne Sie ein neues Dokument in Writer. Wählen Sie im Menü Extras ▸ Makros ▸ Makro ausführen..., der "Makro-Auswahl" Dialog erscheint. In dem Bibliothek Bereich wählen Sie Anwendungsmakros ▸ HelloWorld, in dem Name des Makros Bereich wählen Sie HelloWorldPython und klicken auf die Schaltfläche Ausführen.

    Falls Sie dieses Ergebnis sehen, kann Ihr System Python-Makros ausführen.

    Test macro python

    Wo Makros speichern?

    Es gibt keinen eingebaute Art und Weise, um Python-Skripte zu bearbeiten, weshalb Sie Ihren eigenen Texteditor verwenden müssen. Es gibt 3 Orte, an denen Sie Ihren Code ablegen können.

    Benutzer-Profil-Verzeichnis, nur für den Benutzer verfügbare Makros

    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/

    Verzeichnis von LibreOffice, für alle Benutzer verfügbare Makros

    • GNU/Linux
    /usr/lib/libreoffice/share/Scripts/python/

    Die erwähnten Pfade sind der Standard. In angepassten Installationen können sie unterschiedlich sein. Falls Verzeichnisse nicht existieren, sollten Sie sie erstellen, während Sie die Großschrift respektieren.

    Innerhalb eines Dokuments

    Jede ODF-Datei ist tatsächlich eine ZIP-Datei. Sie können diese Datei extrahieren, so wie Sie üblicherweise diese Dateitypen entpacken. In der Wurzel (Root) erstellen Sie ein Verzeichnis

    Scripts/python/

    und kopieren Sie jede Python-Datei hinein, zum Beispiel:

    mymacros.py
      • Sie sollten sehen
     myfile
     |   ...
     ├── META-INF
     │   └── manifest.xml
     ├── Scripts
     │   └── python
     │       └── mymacros.py
     ...
    
    • Bearbeiten Sie die Datei manifest.xml im Verzeichnis META-INF und fügen Sie Zeilen direkt vor das schließende Tag </manifest:manifest> ein

    <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" />

    • Die finale Datei sollte sein wie:

    <?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>

    • Zipen Sie das komplette Verzeichnis wieder. Vorsicht, nicht das externe Verzeichnis zippen. Zippen Sie den Inhalt des Verzeichnisses.

    Zurück zum Inhaltsverzeichnis