Macro - Guida a Python - Richiamare Python da Basic

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/Python Guide/Calling Python from Basic and the translation is 100% complete.
    Other languages:

    ⇐ Ritorna all'indice


    Supponete di avere, nella cartella specifica che contiene gli script dell'utente, uno script in Python. Come precisato nell'Introduzione:

    In Linux, sarà /home/USER/.config/libreoffice/4/user/Scripts/python. I contenuti del file denominato utcNow.py che si trova in quella cartella sono:

    from datetime import datetime
    
    def utcNow():
        return datetime.utcnow().strftime("%Y-%m-%d %H:%M")
    
    g_exportedScripts = (utcNow,)

    A questo punto vorreste usare questa funzione in Basic. Potete aprire Strumenti ▸ Macro ▸ Organizza Macro ▸ Basic..., selezionare il vostro documento, creare un nuovo modulo, selezionarlo e scegliere "Modifica". Quindi potete inserire:

    Function UtcNow
    oScriptProvider = ThisComponent.getScriptProvider()
    oScript = oScriptProvider.getScript("vnd.sun.star.script:utcNow.py$utcNow?language=Python&location=user")
    UtcNow = oScript.invoke(array(), array(), array())
    End Function

    La funzione UtcNow restituisce in Basic la stringa restituita dalla funzione in Python. Notate come la chiamata di getScript specifica il nome del file dello script in Python, il nome della funzione (che non è necessariamente lo stesso!) ed il percorso (user). Trovate le altre impostazioni possibili nelle Specifiche degli URI del Framework di Scripting.

    Se non riuscite a far si che Basic trovi lo script, provate ad eseguire LibreOffice con le variabili di ambiente: PYSCRIPT_LOG_LEVEL=DEBUG PYSCRIPT_LOG_STDOUT=1. In questo modo potrete vedere dove LibreOffice lo sta cercando.

    ⇐ Ritorna all'indice