Macro/Guida a Python/Introduzione

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


Return to Index

Other languages:
English • ‎español • ‎français • ‎italiano


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).

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?

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
OSX
~/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/

Questi sono i percorsi predefiniti, in installazioni personalizzate potrebbero essere differenti. Se le cartelle non esistono, dovrete crearle, rispettando nei nomi le lettere maiuscole e minuscole.

All'interno di un documento

    • Tutti i file ODF, in realtà sono dei file ZIP, che potete estrarre come si fa normalmente con questo tipo di file. Nella cartella radice, create una sottocartella
      Scripts/python/
      e copiate al suo interno un file python, ad esempio:
      mymacros.py
    • Dovreste vedere.
 myfile
 |   ...
 ├── META-INF
 │   └── manifest.xml
 ├── Scripts
 │   └── python
 │       └── mymacros.py
 ...
  • Modificate il file manifest.xml all'interno della cartella META-INF aggiungendo le seguenti linee, immediatamente prima al tag di chiusura </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" />
  • 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


Return to Index