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.


Return to Index

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+ ejecute
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
OSX
~/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/
  • Windows
c:\Program Files\LibreOffice\share\Scripts\python\
  • OSX
/../..

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 documento ODF en realidad es un archivo comprimido ZIP. Tan solo cambiando la extensión del mismo es posible mirar o extraer todo el contenido. En la raíz del archivo comprimido, cree una nueva carpeta llamada
    Scripts/python
    y copie en ella cualquier archivo Python, por ejemplo,
    mimacro.py
    .
    • Debe ver una estructura similar a esta:
  midocumento
 |   ...
 ├── META-INF
 │   └── manifest.xml
 ├── Scripts
 │   └── python
 │       └── mimacro.py
 ...
  • Edite el archivo manifest.xml que está dentro de la carpeta META-INF, y agregue las siguientes líneas, justo antes de la etiqueta de cierre </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 verse 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 extenxión correspondiente de LibreOffice (en este ejemplo se usó un archivo Calc)

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


Return to Index