Conectar una base de datos MySQL con LibreOffice

El objetivo es poder usar información que ya tengo almacenada en una base de datos MySQL (supongo que también es posible con MariaDB) y utilizar esa información en los programas de LibreOffice.

De todos los programas que aparecen en LibreOffice el que parece más abandonado es Base. Actualmente estoy haciendo algunos experimentos con LibreOffice y MySQL, pero no me están resultando tan sencillo como esperaba.

Lo primero: Instalar el conector JDBC.

Hasta donde tengo entendido, para establecer una conexión con una base de datos en LibreOffice hay dos caminos. Usar un ODBC que es muy común en la plataforma de windows o con un JDBC (Java Database Connectivity). Como lo quiero hacer mi trabajo en Linux elegí esta última.

Descargué el que dice: Plataforma independiente.

Sigan el siguiente enlace para descargar el Connector. Elegí el que dice Plataforma Independiente. El formato no importa mucho, a fin de cuentas el archivo lo van a descomprimir y Linux soporta fácilmente archivos tar.gz como archivos zip.

Una vez descargado, hay que descomprimir los archivos en la carpeta que ustedes prefieran (tomen nota). Con eso terminamos este primer paso.

Agregar la clase del conector.

Para agregar la clase del conector (sea lo que sea que esto signifique) hay que abrir cualquier aplicación de LibreOffice, por ejemplo Calc.

Luego ir al menú HerramientasOpciones…  después en donde dice Avanzado , presionar el botón que dice: Ruta de clase…

Agregando la clase del conector.

Y agregar el archivo mysql-connector-java-5.1.44-bin.jar que descomprimimos en el paso anterior.

Lograr esto me llevó un buen rato. He tenido que leer muchos sitios, algunas cosas no me funcionaban, otras si. El proceso no es muy intuitivo que digamos. Eso de tener que lidiar con Java (que es de todos conocido que no soy fan) me resulta tortuoso, pero en fin, es lo que hay.

Pues una vez agregada la clase del conector podemos configurar una conexión a una base de datos MySQL con Base y por lo tanto con LibreOffice.

Agregar una base de datos MySQL a BASE.

Todo lo anterior ha sido para llegar a este paso. Abrimos BASE de LibreOffice y verán una pantalla como esta:

Conectar a una base de datos MySQL

A partir de este punto hay que seguir las indicaciones del asistente: Conectar mediante JDBC ¿recuerdan?.

Conectar mediante JDBC

Te preguntará cosas que un administrador debe saber, como el servidor, el nombre de la base de datos y sus credenciales (nombre de usuario y contraseña).

Prueba de conexión

Un pequeño detalle pero importante, si Registran esta información de conexión estará disponible en cualquier aplicación de LibreOffice ¡Interesante!.

Sí, registrar la base de datos.

Si todo salio bien verán que ahora pueden ver las tablas y hacer consultas con los datos.

Ejecutando una consulta SQL.

En otro artículo les voy a explicar cómo aprovechar esta información en Calc o en cualquier otro documento de LibreOffice.

¡Hasta la próxima!

P.D. Para ilustrar este artículo usé la base de datos world que está disponible en la documentación de MySQL y que sirve precisamente como datos de ejemplo para practicar.

Como reducir de tamaño un archivo pdf ¡Sin morir en el intento!

Les voy a contar lo que me pasó el otro día. Un usuario me pidió ayuda para reducir de tamaño un archivo pdf ya que era muy grande para poder enviarlo por correo. Le dije — ¡No hay problema! pero después de un rato, algo que parecía sencillo, se complicó bastante.

El archivo en cuestión constaba de 26 hojas escaneadas en buena calidad y supongo que el mismo programa con el que escaneo las hojas le generó el pdf. En total el archivo era de unos 26 MB y ya había ocasionado algunos problemas para su envío. Algunas cuentas de correo tienen límites en el tamaño de los archivos adjuntos, por lo general, se recomienda enviar archivos menores a 20 MB.

Separando el PDF en varias imágenes.

Mi primer enfoque fue separar el archivo PDF generando un archivo jpg por cada una de sus hojas, para luego reducirlas de tamaño y crear nuevamente un archivo PDF. Pero por alguna razón esta tarea puso a tope los CPU’s de mi computadora al grado de afectar otros procesos. Algo parecido ya me había pasado cuando quise generar un archivo PDF a partir de las imágenes jpg.

Con mi experiencia anterior supuse que ese consumo tan exagerado de recursos era provocado por ImageMagick así que busqué una solución usando GraphicsMagick en su lugar.

Para lograr separar las imágenes usé esta instrucción:

gm convert -density 300 -resize 1200 archivo.pdf +adjoin %02d.jpg

Como pueden ver, de una vez aproveché para ajustar la densidad de la imagen a unos 300 dpi y un ajuste en el tamaño. +adjoin me permite generar un archivo por cada página del pdf y la expresión %02d.jpg nombra los archivos incrementalmente con nombres de archivos de dos dígitos (que pueden ser más).

Aún así, no me libro de un importante consumo de recursos, aunque solo por un breve instante.

¡Mi computadora echando humo!

Lo más importante es que el resultado de esta operación sean imágenes sean legibles, luego se hacen tantos ajustes y reducciones que el resultado es un montón de hojas borrosas que no sirven de nada.

Una vez que revisé las imágenes, que me parecieron de un tamaño adecuado y visualmente legibles iba a proceder a crear un nuevo archivo PDF usando las instrucciones de este artículo: Convertir todas las imágenes de un directorio a PDF. peeeeeeerooooo …

¡Hay una forma más simple!

Estaba a punto pegar todas las imágenes del directorio a un pdf cuando me di cuenta de que era posible hacerlo directamente, luego entonces mi instrucción anterior se convirtió en esto:

gm convert -density 300 -resize 1200 archivo.pdf archivo_nuevo.pdf

Y así, directamente, sin pasar por la generación de archivos jpg pude crear un pdf más pequeño que el anterior.

La opción en línea.

También se pueden usar los servicios de una página como ILovePDF para hacer más pequeños los archivos. Además ofrece otras herramientas como la de combinar, girar, convertir o separar archivos PDF.  Si tu archivo no es exageradamente grande o confidencial también es una buena opción.

Usando LibreOffice

Gracias al comentario de sayozo pude comprobar que también LibreOffice hace un buen trabajo en la reducción de tamaño de un PDF. De hecho es muy simple, basta con abrir el archivo PDF usando cualquier aplicación de LibreOffice (aunque al final termina abriendo Draw).

Opciones de exportación a PDF.

Luego elegir el menú ArchivoExportar a PDF y ajustar los valores de Compresión JPEG y Reducir resolución de imágenes. Generalmente valores más bajos generar archivos más pequeños.

Solo revisen que sigan siendo legibles, bajar mucho estos valores puede generar archivos ilegibles o borrosos.

Espero que este consejo les ahorre tiempo y algo de espacio en su disco duro 😉 .

Como hacer tu propio libro electrónico con software libre

Hace algún tiempo, un buen amigo de España me pidió ayuda para convertir su recién publicado libro de poemas al formato epub.

Tengo que confesar que no soy fan de los libros de poemas, no son mi género favorito. Y para colmo de males soy un crítico malvado, a riesgo de perder la amistad le dije a mi amigo que para escribir en verso tiene muy buena prosa. Lo sé, no tengo remedio 🙂 .

¿Por qué ePub?.

El libro ya me lo había pasado en formato odt para LibreOffice y convertirlo a PDF es tan sencillo como presionar un botón, en eso no hay mayor problema. Pero el formato PDF se hizo para imprimir, para el papel, no para la pantalla.

Últimamente he limitado mi lectura a aquellos momentos de ocio usando mi teléfono celular y para eso ePub es el mejor formato disponible. ¿Han intentado leer un PDF en el celular?.

ePub me permite muchas cosas, realizar ajustes en el tipo y tamaño de la letra, utilizar marcadores para llevar un control del avance de mi lectura, resaltar textos, hacer anotaciones, bueno todo aquello que no pude hacer con mis libros de papel por no maltratarlos.

A escribir en LibreOffice.

La primer tarea es muy sencilla, escribir el libro en libreOffice. Bueno para mi fue sencilla porque no lo escribí yo 🙂 .

Después de hacer algunas pruebas me di cuenta de que al texto que me entregó le faltaban algunos detalles. Por ejemplo, una tabla de contenido.

Generarla es muy fácil, pero primero tuve que ajustar el título de cada poema para que el procesador de texto hiciera su trabajo.

Insertar la tabla de contenido.

En el menú Insertarsumario e índiceSumario, índice o bibliografía. Le mueves a algunas opciones y listo. Automáticamente detecta el formato de los títulos y subtítulos y crea una tabla de contenido con un enlace a cada capítulo.

Convertir de odt a ePub con Calibre.

Una vez que está listo el archivo odt, lo que sigue es convertirlo a epub con una herramienta disponible en Calibre.

Es ridículamente sencillo, primero hay que agregar el libro a la biblioteca de Calibre y luego presionar el botón Convertir Libros. Como pueden ver, en el lado izquierdo está el formato de entrada ODT y del lado derecho las opciones del formato de salida EPUB.

Conversión de odt a ePub

Después de un breve tiempo tendremos disponible nuestro texto en un formato que podemos compartir libremente. Se le pueden dar algunos toques finales agregando los metadatos (título, autor, un pequeño resumen)  y un diseño de portada.

Como ven, hacer un libro electrónico puede ser muy sencillo. Se me ocurre que algunas escuelas hacen sus propios libros de texto y esta puede ser una buena oportunidad para realizar sus versiones electrónicas.

No tienen que adquirir software costoso y ambos programas funcionan en Windows (por aquello de la linuxfobia).

Puede ser una actividad que hagan los mismos alumnos, un equipo de redactores, de editores, de correctores, otro de ilustradores… ¡Ahhh se vale soñar!

El resultado en mi teléfono celular.

Ahora disponible en Amazon

Mi amigo Miguel me informa que el mismo libro de poesía Hojas de lluvia que le ayudé a crear en este artículo esta disponible en Amazon España.

No solo eso, tuve el honor de diseñarle una nueva portada más ad hoc que parece que le ha gustado porque es la que presenta el libro.

Le recomiendo no leerlo cerca de fármacos peligrosos o de objetos punzo cortantes. ¡Es broma Miguel! ¡ES BROMA!.  😛