Macros/Guía de Python/Introducción

From The Document Foundation Wiki
Jump to: navigation, 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 .deb adicional. Este paquete es libreoffice-script-provider-python y contiene archivos necesarios como scriptproviderforpython.rdb (metadatos con 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 con Python

Siga la siguiente secuencia dentro del cuadro de diálogo Macros de Pyhon.

  1. Abra un nuevo documento en Writer.
  2. Seleccione el menú Herramientas ▸ Macros ▸ Ejecutar macro…. Se abrirá el diálogo Selector de macros
  3. En el panel izquierdo Biblioteca seleccione Macros de LibreOffice ▸ HelloWorld.
  4. En el panel derecho Nombre de la macro aparecerán varias opciones. Seleccione la macro HelloWorldPython.
  5. Pulse el botón 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?

En la carpeta del perfil de USUARIO, las macros solo están disponibles para el USUARIO

Dependiendo del sistema operativo, la carpeta del perfil de usuario y la subcarpeta para macros estará en:

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:/Programas../LIbreOffice/...
OSX
/../..

Estas son las rutas predeterminadas. En instalaciones hechas a medida, las rutas pueden ser diferentes. Si las carpetas no existen, debe crearlas, respetando la capitalización de las dos últimas: Script y python.

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, como se hace con otros archivos ZIP.

1. En la raíz del archivo comprimido, cree una nueva carpeta llamada Scripts/python (python dentro de Scripts) y copie cualquier archivo Python, por ejemplo, mimacro.py.

Debe verse la estructura del archivo comprimido así:

midocumentoODF
  |   ...
  ├── META-INF
  │   └── manifest.xml
  ├── Scripts
  │   └── python
  │       └── mimacro.py
  ...

2. Edite en un editor de textos 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/mimacro.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 completo debe verse similar a esto (en este ejemplo se usó un libro de cálculo de Calc, con extensión .ods):

<?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/mimacro.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>

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


4. Cambie la extensión nuevamente, de .zip a .ods (en este ejemplo)

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


Return to Index