Macro/Guida a Python/Introduzione

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


    Ritorna all'indice


    Introduzione

    Cos'è PyUNO?

    LibreOffice consente agli utenti di scrivere delle macro in diversi linguaggi interpretati, uno di questi è Python. PyUNO è il componente che fornisce agli utenti l'accesso all'interfaccia di programmazione dell'applicazione (d'ora in poi API dall'acronimo inglese Application Programming Interface) di LibreOffice con Python.

    Installazione

    Su alcuni sistemi operativi, come Ubuntu 18.04 LTS, potrebbe essere necessario installae dei pacchetti di sistema aggiuntivi. Su Ubuntu, il pacchetto si chiama libreoffice-script-provider-python e contiene dei file come scriptproviderforpython.rdb (XML metadata) e pythonscript.py (l'infrastruttura Python).

    • In Ubuntu 18.04 e successive

    sudo apt install libreoffice-script-provider-python

    Verificare se le macro in Python sono supportate

    Aprite un nuovo documenti in Writer. Selezionate il menu Strumenti ▸ Macro ▸ Esegui macro..., apparirà la finestra di dialogo "Seleziona Macro". Nella sezione Libreria selezionate LibreOffice Macro ▸ HelloWorld, nella sezione Nome Macro selezionate HelloWorldPython e fate clic sul pulsante Esegui.

    Se visualizzate questo risultato, significa che il vostro sistema è in grado di eseguire le macro in Python.

    Prova di una macro in Python

    Dove salvare le macro?

    Non esiste uno strumento incorporato per modificare gli script in Python, perciò dovrete usare il vostro editor di testo. Ci sono 3 posti nei quali potete salvare il vostro codice.

    Nella cartella del profilo UTENTE, le macro saranno disponibili solo per l'UTENTE

    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/

    Nella cartella di LibreOffice, le macro saranno disponibili per tutti gli utenti

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

    I percorsi sopra menzionati sono quelli predefiniti. In installazioni personalizzate potrebbero essere differenti. Se le cartelle non esistono, dovrete crearle, rispettando le lettere maiuscole e minuscole.

    All'interno di un documento

    • Qualsiasi file ODF, in realtà è un file ZIP, che potete estrarre normalmente come estraete questo tipo di file. Nella radice, create una cartella
      Scripts/python/
      e copiate al suo interno qualsiasi file in python, per esempio:
      mymacros.py
      • Dovreste vedere questo:
     myfile
     |   ...
     ├── META-INF
     │   └── manifest.xml
     ├── Scripts
     │   └── python
     │       └── mymacros.py
     ...
    
    • Modificate il file manifest.xml nella cartella META-INF ed aggiungete delle righe prima del tag </manifest:manifest> di chiusura

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

    • Il file finale dovrebbe avere il seguente aspetto:

    <?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 questo punto comprimete nuovamente in zip il contenuto dell'intera cartella. Attenzione non comprimete la cartella esterna, ma il contenuto della cartella

    Ritorna all'indice