Vous êtes sur la page 1sur 4

Workspace: Extensiones OOo LINUX USER

Creacin de una Extensin OpenOffice.org

Ms All
Dmitri nos muestra cmo crear una extensin OpenOffice.org

Si nos estamos preguntando cmo funciona esta macro, aqu doy una breve explicacin. Para comenzar, la macro usa el servicio CreateUnoService (*com.sun.star.util. PathSubstitution) para determinar la ruta al directorio de usuario de OpenOffice.org y localizar el fichero de texto plano dummy.txt (que hemos creado manualmente y colocado en el directorio de usuario de OpenOffice.org). Solicita al usuario que introduzca el nmero de prrafos a insertar en el documento, y finalmente abre dummy.txt para lectura e inserta el texto de l en el documento Writer actual. Antes de aadir la macro a OpenOffice.org tenemos que crearle una librera separada de modo que podamos convertirla fcilmente en una extensin ms tarde. Para crear una nueva librera, primero seleccionamos Herramientas | Macros | Organizar macros | OpenOffice.org Basic. En segundo lugar pulsamos el botn Administrar, cambiamos a la seccin Bibliotecas y pulsamos Nuevo. A continuacin damos a la librera un nombre (por ejemplo, DummyText) y pulsamos Aceptar. Finalmente, presionamos el botn Editar para abrir la librera para editarla e introducir el cdigo de la macro en el mdulo vaco, Module1. Ahora estamos preparados para crear una extensin.

Creacin de la Extensin
Una extensin OpenOffice.org es un archivo ZIP normal que contiene una librera de macros y unos cuantos ficheros basados en XML. En teora, es posible crear los ficheros XML en un editor de textos y empaquetar la extensin manualmente, aunque por qu preocuparnos cuando la herramienta BasicAddonBuilder [1] puede hacer el trabajo pesado por nosotros? Usando BasicAddonBuilder podemos crear una extensin simplemente siguiendo el asistente que la genera. Como BasicAddonBuilder es en s misma una extensin OpenOffice.org, podemos usarla sin abandonar la comodidad de nuestra suite de productividad favorita. Una vez instalada, BasicAddonBuilder aade una nueva barra de herramientas con un nico botn. Pulsamos para abrir el asistente, el cual nos guiar a travs del proceso completo. Para comenzar, elegimos la librera que contiene la macro que queremos aadir a la extensin (en este caso, DummyText) (Figura 1). Luego necesitamos especificar el modo en el que la extensin se integra en OpenOffice.org. Llegados a este punto,

desde cero e introduce una til herramienta de empaquetado de extensiones. POR DMITRI POPOV

Dmitri Popov es licenciado en Lengua Rusa y en lenguajes de computacin. Ha estado escribiendo exclusivamente sobre Linux y software libre durante algunos aos, y sus artculos han aparecido en publicaciones y sitios web daneses, britnicos, norteamericanos, alemanes y rusos.

EL AUTOR

s que has escrito una ingeniosa macro para OpenOffice y quieres compartirla con el mundo. Evidentemente, puedes publicar el cdigo en tu blog o enviarlo por correo a tus colegas. Pero si deseas que les sea ms fcil instalar y usar nuestra macro, la mejor manera es convertirla a una extensin OpenOffice.org. Empaquetar nuestro cdigo como una extensin conlleva algn trabajo, pero un par de herramientas pueden hacer el proceso menos tedioso. Este tutorial nos guiar a travs del proceso de creacin de una extensin OpenOffice.org e introducir una til herramienta de empaquetado de extensiones con un par de interesantes funcionalidades.

Partimos desde Cero


Para este proyecto utilizaremos una simple macro que inserta un texto de prueba en el documento OpenOffice.org Writer actualmente abierto (Listado 1).

WWW.LINUX- MAGAZINE.ES

Nmero 69

69

LINUX USER Workspace: Extensiones OOo

se nos ofrecen varias opciones: aadir una barra de herramientas personalizada, aadir un men principal, aadir elementos a Herramientas | Complementos o aadir elementos bajo el men Ayuda. Habitualmente, una barra de herramientas separada o un men principal son perfectos para extensiones que contienen mltiples macros (y, por tanto, varios elementos de men). Herramientas | Extensiones o el men Ayuda funcionan mejor para extensiones con una o dos macros. Para este ejemplo crearemos un men de nivel superior. Marcamos la opcin Agregar un men principal y pulsamos el botn Next (la interfaz est parcialmente traducida a castellano) para movernos a la ventana siguiente, donde crearemos la estructura del men de la extensin. Para crear un men principal, primero pulsamos el botn de Edicin que se encuentra al lado del campo [Ttulo del Men] (Figura 2). En la ventana de dilogo que aparece, introducimos el ttulo del men deseado en el campo Ttulo del elemento. Tambin tenemos que especificar lo que se llama contexto Office, es decir, las aplicaciones OpenOffice.org en las que el men principal ser visible. La extensin Dummy Text est diseada para documentos Writer, por lo que marcamos el cuadro de confirmacin Writer. Esto asegura que el men principal se encuentra disponible solamente en OpenOffice.org Writer. BasicAddonBuilder proporciona soporte para mltiples lenguas, de modo que podemos especificar la etiqueta del ttulo del men en diferentes idiomas. Para hacerlo pulsamos el botn Otros Idiomas junto al campo [Ttulo de men] y aadimos las entradas para distintas lenguas. Cuando el usuario instala la extensin, el sistema tomar automticamente la lengua adecuada dependiendo de las configuraciones de los escenarios de OpenOffice.org. A continuacin necesitamos especificar un elemento de men que inicie la macro InsertDummyText. Para hacerlo pulsamos el botn Agregar men. Esto abre una ventana de dilogo similar a la previa, aunque dispone de unas cuantas opciones ms. Adems de la etiqueta del elemento del men, debemos enlazar el elemento a una macro especfica (en este caso, InsertDummyText). Pulsamos el botn que est al lado del campo Comando macro, seleccionamos la librera apropiada de la lista del men desplegable, elegimos el mdulo

Figura 1: BasicAddonBuilder simplifica el proceso de creacin de una extensin.

deseado en el panel de la izquierda y luego cogemos la macro que deseamos del panel derecho.

En la seccin Iconos podemos aadir iconos al elemento del men, para lo cual pulsamos en el cuadrado del icono vaco y

Listado 1: Insercin de la Macro de Texto Dummy


01 Sub InsertDummyText() 02 Dim ParaNo as Integer 03 ThisDoc=ThisComponent 04 ThisText=ThisDoc.Text 05 TheCursor=ThisText.createTextCursor 06 On Error GoTo ErrHndl 07 SubstService = CreateUnoService(com.sun.star.util.PathSubstitution) 08 UserPath = SubstService.substituteVariables($(user), true) 09 DummyTxt = UserPath + /dummy.txt 10 DummyTxtDir=Right(UserPath, Len(UserPath)-7) 11 12 f1 = FreeFile() 13 Open DummyTxt for Input as #f1 14 ParaNo=InputBox(Nmero de prrafos:, Input) 15 ParaCounter=0 16 Do while ParaCounter<ParaNo 17 18 19 20 Line Input #f1, s TheCursor.String=s+Chr(13)+Chr(13) TheCursor.collapseToEnd ParaCounter=ParaCounter+1

21 Loop 22 Close #f1 23 Exit Sub 24 25 ErrHndl: MsgBox(Copiado de fichero dummy.txt suministrado con esta extensin a +DummyTxtDir, 16, Error)

26 End Sub

70

Nmero 69

WWW.LINUX- MAGAZINE.ES

Workspace: Extensiones OOo LINUX USER

seleccionamos el icono deseado del tamao adecuado. Si fuera necesario, repetimos este paso para otros tamaos. Aqu tambin podemos usar el botn Otros Idiomas para especificar el nombre de la entrada del men en otras lenguas. Seguidamente, marcamos el cuadro de confirmacin Writer en la seccin Contexto y pulsamos OK. Para movernos a la seccin License and version pulsamos Next, en la cual debemos especificar un nico identificador para nuestra extensin, un nmero de versin y una licencia (Figura 3). En la mayora de los casos, el identificador por defecto generado por BasicAddonBuilder funciona bien, aunque tenemos la libertad de sustituirlo por nuestra propia cadena. Finalmente, la seccin Publish nos permite especificar un directorio local en el que BasicAddonBuilder guarda la extensin creada (Figura 4). Adems, podemos configurar BasicAddonBuilder para subir la extensin creada al servidor FTP especificado. Para hacer que esta funcionalidad funcione, debemos establecer las configuraciones de conexin FTP pulsando el botn Configure que se encuentra al lado del campo FTP address para abrir la ventana de dilogo FTP connection settings. Rellenamos los campos requeridos y pulsamos el botn Connect para comprobar la conexin. Si todo funciona adecuadamente, pulsamos el botn OK para guardar las configuraciones y cerramos la ventana. OpenOffice.org puede actualizar automticamente las extensiones instaladas consultando un fichero de actualizacin XML especial que contiene el ltimo nmero de versin en el enlace al fichero .oxt ms reciente. Si el nmero de versin en el fichero de actualizacin es mayor que el nmero de versin de la extensin instalada, OpenOffice.org coger automticamente el ltimo paquete .oxt y lo instalar. Este prctico mecanismo asegura que el usuario siempre ejecute la ltima versin de la extensin y automatiza completamente el proceso de actualizacin. Si deseamos habilitar esta funcionalidad en nuestra extensin, marcamos el cuadro de confirmacin Add auto-update information en la seccin Publish de BasicAddonBuilder e introducimos la ruta que usar OpenOffice.org para coger la ltima versin de la extensin. Finalmente, pulsamos el botn Create y, una vez que BasicAddonBuilder haya acabado, encontraremos un paquete .oxt

Figura 2: Aadiendo entradas de men.

Figura 3: Especificando el identificador nico de la extensin y el nmero de versin.

recin hecho en el directorio especificado (y en el servidor FTP, siempre que habilitemos y configuremos la funcionalidad FTP). Si habilitamos la funcionalidad autoupdate, necesitaremos hacer una cosa ms antes de poder publicar nuestra extensin. A pesar de que BasicAddonBuilder aade la informacin de actualizacin

requerida a la extensin, no genera un fichero actualizado, de modo que tenemos que crearlo manualmente. Para hacerlo, utilizamos nuestro administrador de archivos preferido para extraer el fichero description.xml, luego lo abrimos en un editor e insertamos la siguiente lnea (donde EXTENSION_URL es la URL actual de des-

Listado 2: Cdigo XML


01 <?xml version=1.0 encoding=UTF-8?> 02 <description xmlns=http://openoffice.org/extensions/update/2006 xmlns:xlink=http://www.w3.org/1999/xlink> 03 04 05 06 07 <identifier value=EXTENSION_ID /> <version value=1.0.0 /> <update-download> <src xlink:href=http://DOWNLOAD_URL /> </update-download>

08 </description>

WWW.LINUX- MAGAZINE.ES

Nmero 69

71

LINUX USER Workspace: Extensiones OOo

<icon> <default xlink:href=U <I>ICON<I>.png /> <high-contrast xlink:href=U <I>ICON<I>.png /> </icon>

Ya que estamos, puede que deseemos especificar el autor, lo cual muestra el nombre de los creadores de la extensin junto con una URL que hayamos elegido. Para hacerlo, aadimos el siguiente cdigo al fichero description.xml:
<publisher> <name xlink:href=U http://dmpop.homelinux.com U lang=es>Dmitri Popov</name> </publisher>

Figura 4: Estableciendo las configuraciones del editor.

carga y EXTENSION_ID es el identificador nico de la extensin):


<update-information> <src xlink:href=U http://<I>EXTENSION_URL/U .EXTENSION_ID_update.xml /> </update-information>

Ntese que los valores de las extensiones EXTENSION_URL y EXTENSION_ID crean un nuevo fichero de texto e insertan el cdigo XML del Listado 2 en l. Sustituimos EXTENSION_ID por el identificador de extensin y DOWNLOAD_URL por el enlace directo al fichero .oxt (por ejemplo, http://dmpop.homelinux.com/ DummyText/DummyTEXT.oxt). Guardamos el fichero como .EXTENSION_ID_update.xml (no debemos olvidar sustituir EXTENSION_ID por el identificador de la extensin) y lo subimos a EXTENSION_URL.

La prxima vez que tengamos que subir una actualizacin, cargamos una nueva versin de la extensin a la URL de descarga especificada en el fichero de actualizacin. Luego abrimos el fichero de actualizacin en un editor de texto y sustituimos version value por el nuevo nmero de versin (por ejemplo, <version value=1.1.0 />. Subimos el fichero modificado al sitio especificado y ya est. Para mejorar el aspecto de nuestra extensin, podremos aadirle un icono. Para hacerlo, creamos uno de 42x42 pxeles en nuestro editor de grficos favorito y guardamos el resultado en formato PNG. Abrimos el paquete .oxt con un administrador de archivos y le aadimos el icono. Extraemos el fichero description.xml, lo abrimos en un editor de texto, y aadimos el cdigo siguiente encima del nodo <update-information>, sustituyendo ICON por el nombre de fichero grfico:

Guardamos el fichero description.xml modificado y lo aadimos al paquete .oxt. Ahora estamos preparados para instalar y comprobar la extensin, pero antes de hacerlo, eliminamos la librera DummyText, en caso contrario, colisionar con la extensin, impidiendo que funcione adecuadamente. Una vez borrada, instalamos la extensin yendo a Herramientas | Administrador de Extensiones (Figura 5). Reiniciamos OpenOffice.org, y deberamos ver el men Dummy Text en la barra de men principal.

Conclusin
Con la herramienta BasicAddonBuilder y algn ajuste, podemos convertir las macros de OpenOffice.org Basic en extensiones perfectamente empaquetadas. Evidentemente, la mejor manera de entender las complejidades es desmontando por elementos un paquete existente, por lo que recomiendo aprovechar la extensin de demostracin de Dummy Text [2] para examinarla. Ntese que esta versin de la extensin aade el comando Insert Dummy Text a Herramientas | Complementos. I

RECURSOS
[1] BasicAddonBuilder: http://extensions. services.openoffice.org/en/project/ BasicAddonBuilder [2] Extensin demo de Dummy Text: http://code.google.com/p/writertools/ downloads/ detail?name=DummyText.zip Figura 5: La extensin completa en todo su esplendor.

72

Nmero 69

WWW.LINUX- MAGAZINE.ES

Vous aimerez peut-être aussi