Macros/Guía de Python/Introducción

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


    Volver al índice


    Introducción

    ¿Qué es PyUNO?

    LibreOffice permite a los usuarios escribir macros en varios lenguajes de programación interpretados, uno de los cuales es Python. PyUNO es el componente que da acceso a la interfaz de programación de la aplicación (API, en adelante, por sus siglas en inglés: Applicación Programming Interfaz) de LibreOffice con Python.

    Instalación

    En algunos sistemas operativos, como Ubuntu 18.04 LTS, quizás sea necesario instalar un paquete adicional para el sistema operativo. En Ubuntu el paquete es libreoffice-script-provider-python y contiene archivos necesarios como scriptproviderforpython.rdb (metadatos XML) y pythonscript.py (infraestructura para Python).

    • En Ubuntu 18.04+

    sudo apt install libreoffice-script-provider-python

    Verificación de soporte para macros Python

    1. Abra un nuevo documento en Writer. Seleccione el menú Herramientas ▸ Macros ▸ Ejecutar macro…. Se abrirá el diálogo Selector de macros
    2. En el panel izquierdo Biblioteca seleccione Macros de LibreOffice ▸ HelloWorld.
    3. En el panel derecho Nombre de la macro aparecerán varias opciones. Seleccione la macro HelloWorldPython.
    4. Pulse Ejecutar.

    Si ve el siguiente resultado, entonces su sistema está preparado para ejecutar macros con Python.

    Prueba de ejecución de una macro con Python

    ¿Dónde se guardan las macros?

    No hay una forma incorporada de editar scripts de Python, por lo que debe usar su propio editor de texto. Hay 3 lugares donde puedes poner tu código.

    En la carpeta de Perfil de Usuario (USER), las macros están solo disponibles para el Usuario

    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/

    En la carpeta del programa, las macros están disponibles para todos los usuarios

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

    Estas son las rutas predeterminadas. En instalaciones hechas a medida, las rutas pueden ser diferentes. Si las carpetas no existen, debe crearlas, respetando las mayúsculas.

    Dentro de un documento ODF

    • Cualquier archivo ODF, en realidad es un archivo ZIP, puede extraer este archivo como extraer normalmente este tipo de archivos. En la raíz, cree la carpeta
      Scripts/python/
      y copie dentro de cualquier archivo python, por ejemplo:
      mymacros.py
      • Debería ver
     myfile
     |   ...
     ├── META-INF
     │   └── manifest.xml
     ├── Scripts
     │   └── python
     │       └── mymacros.py
     ...
    
    • Edite el archivo manifest.xml en la carpeta META-INF y agregue líneas, justo antes de cerrar la etiqueta </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" />

    • El archivo final debe ser similar a esto:

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

    • Ahora vuelva a comprimir todo el contenido de la carpeta donde descomprimió el archivo original.

    Precaución No comprima la carpeta externa. Comprima solo el contenido de la carpeta.

    • Cambie la extensión nuevamente, de .zip a la extensión correspondiente de LibreOffice (en este ejemplo se usó un archivo Calc, la extensión debe ser .ods)

    Puede abrir el archivo con LibreOffice y verá en la biblioteca la nueva macro que agregó.

    Volver al índice