LibreOffice.org
Versión |
Backport de Debian Squeeze (3.3.2) |
Página principal |
http://www.libreoffice.org |
Observaciones |
Sumario
Enlaces y referencias
Recetario
Tamaños de página alternativos
Para crear un tamaño de página alternativo y reutilizable lo mejor es definirlo en un nuevo documento y guardar éste como plantilla.
Usar LibreOffice como un servicio de red
- Ref: Running openoffice/libreoffice as a service by Olly Smith
- Ref: Convert Office documents with jodconverter and openoffice by Alexis Perrier
LibreOffice puede comenzar su ejecución sin conexión a servidor gráfico alguno (desde la versión 2.3 de OpenOffice.org), sin interacción con el usuario y permanecer a la escucha de conexiones para efectuar trabajos de conversión de formatos, impresión de documentos y fusiones de datos para envíos masivos de correo. Es decir, funciona como un servidor de red con ciertas limitaciones, dado que la parte de servicio no dispone de ningún mecanismo de seguridad incorporado y queda abierta a todo aquél que consiga abrir una conexión de red.
Para lanzar el servicio se emplea:
$ soffice -norestore -nologo -headless -nofirststartwizard -accept="socket,host=localhost,port=8100;urp;StarOffice.Service"
-norestore | Suprime el mecanismo de recuperación de archivos tras un mal cierre o una caída de la aplicación. Si se da una de estas circunstancias y se le solicita que abra como servicio, he observado que comienza un bucle devorador de recursos y no atiende conexiones. |
---|---|
-headless | Arranca el programa sin interfaz de usuario; será manejado vía el API de la aplicación. |
Nota: Los parámetros pueden parecer un tanto contradictorios pero he observado que según qué versiones del programa se empleen, pueden ser necesarios emplearlos de forma conjunta.
Complementos y herramientas
JODconverter
Conversor de documentos escrito en Java y que emplea a OpenOffice/LibreOffice para llevar a cabo el trabajo, por lo que necesita que exista una instancia de LibreOffice funcionando como un servicio de red.
El puerto predeterminado es el 8100, pero se puede usar el parámetro --port para cambiarlo. También necesita saber el formato destino (vía el parámetro -f) y el archivo origen, mientras que el destino es opcional.
Una vez descargado y desempaquetado se puede optar por instalarlo en un directorio y envolverlo con un lanzador que se encargue de su puesta en marcha. Este lanzador tendría que asegurarse de que la instancia de LibreOffice está funcionando o de invocarla él en caso contrario.
Algo similar a ésto:
#!/bin/bash
VERSION=0.2
SOFFICE=soffice
SOFFICE_PARAMS="-nologo -headless -nofirststartwizard \
-accept=\"socket,host=localhost,port=8100;urp;StarOffice.Service\""
SOFFICE_PID=/var/run/soffice.pid
start_office_server()
{
check_office_run()
if [ $? -eq 0 ]; then
# está funcionando
return 0
fi
# No lo está, tenemos que lanzarlo y anotar su PID
$SOFFICE $SOFFICE_PARAMS & PID=$!
echo $PID > $SOFFICE_PID
return 0
}
stop_office_server()
{
check_office_run()
if [ $? -eq 0 ]; then
kill $(cat $SOFFICE_PID)
fi
return
}
check_office_run()
{
if [ -r $OFFICE_PID ]; then
kill -0 $(cat $SOFFICE_PID)
if [ $? -eq 0 ]; then
return 0
fi
fi
return 1
}
# Ejecutamos el programa conversor sólo si hemos recibido archivos a convertir
if [ $# -gt 0 ]; then
start_office_server()
java -jar /opt/jodconverter/lib/jodconverter-cli-2.2.2.jar -f odt $@
stop_office_server()
else
echo <<EOF
$0 - $VERSION - Conversor de documentos a OpenDocument
uso:
converter2odt documento [documento ... ]
EOF
fi