User talk:Genitalico

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Memoria de residencia en OpenOffice.org

Primer Paso

El primer paso es tener un entorno de desarrollo bien configurado, para ello escogí la distribución Crunchbang 11 Waldorf que esta basada en Debian 6 Squeezy, por ser una distribución basada en Debian 6 es bastante estable. Lo segundo es conseguir la versión en curso de Openffice desde [1], la cual sera util para empezar a probar y testar las extensiones que uno vaya desarrollando.

Genitalico (talk) 05:07, 6 February 2013 (UTC)

Instalación de OpenOffice

Para instalar OpenOffice lo primero que se tiene que hacer es descargarlo desde la pagina oficial De OpenOffice aquí, en mi caso baje el archivo en español Linux x86-64 Deb, dentro del archivo hay una carpeta llamada DEBS los cuales traen los archivos .deb que se van a instalar, extraemos esa carpeta y colocamos el promp de la consola dentro de ella y para instalar los archivos hacemos lo siguiente:

$ sudo dpkg -i *.deb

y al finalizar el proceso ya tenemos instalado OpenOffice.org

Instalación de OpenOffice SDK

Para descargar el SDK lo pueden hacer desde aquí, dentro del archivo que se descargue también hay una carpeta llamada DEBS se extrae y se ejecuta el comando anterior dentro del la carpeta

$ sudo dpkg -i *.deb

y eso es todo para tener un ambiente de desarrollo configurado y listo.

Genitalico (talk) 05:06, 6 February 2013 (UTC)

API de OpenOffice

La api de java se componen de librerías o módulos en los cuales se puede realizar una comunicación desde un lenguaje como Java, C++ o Python hacia la suite OpenOffice, todo esa se lleva acabo mediante UNO (Universal Network Objects), que es la interfaz de comunicación entre el lenguaje y OpenOffice.

Los lenguajes mas usuales son Java y Python, en mi caso empezare a usar Python y sera este lenguaje el que usare para desarrollar las extensiones para OpenOffice.

Si uno esta usando una distribución Linux lo mas probable es que ya este el interprete Python instalado, por lo que si se hizo la instalación de OpenOffice desde los archivos de la pagina oficial este interprete dará problemas, si instalaste OpenOffice desde los repositorios de tu distribución podrás usar el interprete Python por defecto de tu sistema, aun que lo mas recomendable es instalar los archivos desde la pagina Oficial.

Al crear nuestros programas en Python haremos uso de un modulo llama python-uno, el cual es indispensable para la comunicación del lenguaje con OpenOffice. Si instalamos OpenOffice desde los repositorios de nuestra distribución y en caso de no tener instalado python-uno, hacemos lo siguiente:

$ sudo apt-get install python-uno

Para el caso de una instalación desde los archivos de la pagina oficial tendremos que usar el interprete Python que viene junto con la misma, por lo general la ruta donde esta dicho interprete se encuentra en esta dirección: /opt/openoffice.org3/program/python

En cualquiera de los dos caso deberíamos de tener un interprete totalmente funcional para lograr una comunicación con OpenOffice.

Como dato adicional, en el caso de que ya se tenga en el sistema un interprete python instalado pero se va a usar el que trae OpenOffice se puede hacer lo siguiente:

  1. Quitar el interprete python del sistema
  2. Utilizar el interprete integrado en OpenOffice usando un enlace simbolico

Yo hice la segunda opción, la primera no es muy recomendable ya que podrían ocasionarse problemas con ciertos programas del sistema.

Para hacer un enlace simbólico se hace lo siguiente: $ sudo ln -s /opt/openoffice.org3/program/python /home/tusuarios/DevOO/python


con este comando estoy creando el enlace en la carpeta Dev00/, pongo esta carpeta de ejemplo ya que para mi es mejor tenerlo en una carpeta donde estarán mis archivos y carpetas que usare para desarrollar mis extensiones de esta manera se me facilita cuando mande a llamar a ese interprete.

Genitalico (talk) 05:05, 6 February 2013 (UTC)

Extensiones en OpenOffice

Si ya tenemos todo configurado nuestro entorno podemos desarrollar extensiones nuevas para OpenOffice.

¿Qué son las extensiones?

Las extensiones son pequeños programas que añaden funciones adicionales a OpenOffice. Las extensiones permiten personalizar OpenOffice con las funcionalidades que uno desee y mantiene a la suite libre de elementos que uno no necesita.

Las extensiones pueden ser programadas por cualquieras con los conocimientos necesarios esto hace que las extensiones no estén limitadas a las funcionalidades que los programadores de OpenOffice quieran añadir, esto hace qué las funcionalidades de OpenOffice aumenten.Se pueden desarrollar extensiones con los lenguajes Java y Python

Genitalico (talk) 20:17, 7 February 2013 (UTC)

Desarrollar una extensión

Para crear una extensión para OpenOffice es necesario conocimientos de programación a un nivel medio, los lenguajes para desarrollar una extensión son Java y Python. Yo utilizare Python.

Para levantar el servicio de OpenOffice el cual nos servirá para comunicar nuestro programa con la suite hacemos lo siguiente en la consola:

openoffice -accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"

Si el comando no se puede ejecutar directamente, pueden buscar el script en la siguiente dirección: /opt/openoffice.org3/program/openoffice

Se puede hacer un enlace simbólico al script para acceder a el fácilmente o agregarlo en el path. El comando quedara a la espera y en ese momento ya se puede lograr una comunicación desde Python.

El siguiente código hace una comunicación mediante el puerto 2002 con el servicio de OpenOffice levantado anteriormente.

import uno
local = uno.getComponentContext()
resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)
context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
desktop = context.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
document = desktop.getCurrentComponent()
cursor = document.Text.createTextCursor()
document = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ())
cursor = document.Text.createTextCursor()
document.Text.insertString(cursor, "Escribiendo en writer desde python", 0)

Puedes guardar ese código en un archivo con extensión .py y ejecutarlo haciendo: pyhton programa.py o pueden abrir el interprete python en la consola y escribir linea por linea para que vayan viendo en tiempo real la ejecución.

Genitalico (talk) 21:28, 12 February 2013 (UTC)

Personal tools