Macro/Guida a Python/Introduzione

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


Ritorna all'indice

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

  • 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