Macros/Guía de Python/Introducción

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 100% complete.


⇐ Volver al índice

Other languages:
English • ‎español • ‎français • ‎italiano • ‎русский • ‎日本語


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

Abre LibreOffice Writer y ve al menú Herramientas ▸ Macros ▸ Organizar macros ▸ Python.... Si no ves esta opción, probablemente no tengas instalado el soporte para macros Python.

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