[LibreOffice] Aplicar coloreado de sintaxis a un trozo de código

Supongamos que has insertado un trozo de código fuente en Python en tu documento .odt.
Por defecto, Writer no dispone de ninguna utilidad para colorear las líneas como haría un buen IDE (lo que se conoce como Syntax Highlighting) y tu código se vería bastante feucho.

Para realizar el coloreado de sintaxis en LibreOffice Writer, instalaremos la extensión «Code Colorizer Formatter» de Andrew Pitonyak, al que algunos conoceréis por su excelente documento sobre programación de macros en LibreOffice/OpenOffice.org. Una vez instalada la extensión y antes de poderla usar, también tendréis que copiar el estilo _OOoComputerCode de este documento, tal y como se explicó en DiarioLinux.

Aplica el estilo _OOoComputerCode a la sección de código que quieras colorear. Selecciona ahora: Tools/Macros/Run Macro…/My Macros/MacroFormaterADP, elige el lenguaje en el que está programada la sección de código de tu documento (Python en nuestro caso) y a continuación pulsa MainPython y «Run…», tal y como se ve en la figura adjunta.

[LibreOffice] Instalar LibreOffice 3.6 en Ubuntu 12.04

Receta rápida para instalar LibreOffice 3.6 en Ubuntu 12.04 (dado que la versión 3.6 no está aún en el repositorio principal de Ubuntu tiene una pequeña complejidad su instalación, de ahí el tip)

Puedes descargar los .deb a mano (vienen en un paquete tgz que tendrás que descomprimir) e instalar de forma paralela una versión anterior a la 3.6 y la propia 3.6 haciendo:

$ cd /tmp/LibO_3.6.0.2_Linux_x86_install-deb_en-US/
$ sudo dpkg -i *deb

O más fácil aún, sustituir la versión vieja por la nueva usando un repo PPA:

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice libreoffice-gnome

[LibreOffice] Copiar estilos entre documentos

Así que has creado una serie de estilos en tu documento .odt (LibreOffice) que te gustaría reutilizar en otro .odt distinto… Bien, aquí va una receta rápid para hacerlo.

Abre los dos .odt y desde cualquiera de ellos, selecciona File/Templates/Organize

Doble click en el nombre de los documentos. Se abrirá un submenú «Styles». Doble click en «Styles». Se abrirá un listado de los estilos que tiene el documento. Ahora, elige el estilo que quieres copiar, pulsa la tecla Control y arrastra ese estilo de un documento a otro (es importante que pulses Control porque en otro caso, en lugar de copiar, lo moverías). ¡Listo!

Buscar cadenas de texto dentro de ficheros ODT

Como sabéis, los ficheros ODT de LibreOffice son simples ficheros .zip . Dentro de ellos, encontramos distintos archivos xml, gráficos incrustados, etc. Un ejemplo:

$ unzip -l herramientas.odt 
Archive:  herramientas.odt
  Length      Date    Time    Name
---------  ---------- -----   ----
       39  2012-07-20 12:00   mimetype
      997  2012-07-20 12:00   meta.xml
     8798  2012-07-20 12:00   settings.xml
    12512  2012-07-20 12:00   content.xml
     7003  2012-07-20 12:00   Thumbnails/thumbnail.png
       22  2012-07-20 12:00   layout-cache
      899  2012-07-20 12:00   manifest.rdf
        0  2012-07-20 12:00   Configurations2/popupmenu/
        0  2012-07-20 12:00   Configurations2/images/Bitmaps/
        0  2012-07-20 12:00   Configurations2/toolpanel/
        0  2012-07-20 12:00   Configurations2/statusbar/
        0  2012-07-20 12:00   Configurations2/toolbar/
        0  2012-07-20 12:00   Configurations2/progressbar/
        0  2012-07-20 12:00   Configurations2/menubar/
        0  2012-07-20 12:00   Configurations2/floater/
        0  2012-07-20 12:00   Configurations2/accelerator/current.xml
    12033  2012-07-20 12:00   styles.xml
     1185  2012-07-20 12:00   META-INF/manifest.xml
---------                     -------
    43488                     18 files

El problema viene cuando tienes una carpeta llena de ficheros .ODT y quieres buscar un texto en concreto en todos ellos. Al tratarse de ficheros comprimidos, no vale con usar ni el comando strings ni el comando grep, porque no encontrará lo que buscas.

¿Solución? Convertir los .odt a texto con el comando odt2txt (funciona también para .odg y otros formatos):

for i in *.odt; 
do 
   echo $i; 
   echo "*************"; 
   odt2txt $i | grep -i cadena_de_texto_a_buscar; 
done

Ese bucle for recorre todos los ficheros con extensión .odt, los convierte a texto (no genera ficheros nuevos, la conversión se realiza hacia la salida estándar) y los pasa por un pipe a grep, que realiza la búsqueda. El echo $i con los *** sirve para remarcar el nombre del fichero en el que se encontró la cadena.

Libre Office 3.5 soporta la importación de ficheros VSD (MS Visio)

Breve noticia aprovechando que el 28 y 29 será el bug hunting day para cazar fallos en la beta de LibreOffice 3.5, he revisado por encima las novedades y me ha sorprendido que ya hayan integrado el soporte de importación de ficheros VSD (MS Visio) en LibreOffice Draw. Gran trabajo de LA hacker Eilidh McAdam’s, desarrollado dentro de la iniciativa Google Summer of Code 2011.

PD: que paséis un buen solsticio de invierno 😉