OpenOffice.org ecológico con FSniper

Curioso título para un post, ¿a que sí? A diario tengo que imprimir algunas presentaciones y material didáctico para mis clases y quiero consumir el mínimo papel posible (¿llegará un día en el que los alumnos puedan tener sus netbooks en clase sin que nadie se escandalice?). Lo que suelo hacer es imprimir las presentaciones a 2×2, a doble cara. Es decir, 4 diapositivas por cada cara de la hoja. Parece sencillo, pero en OpenOffice.org Impress eso de imprimir a 2×2 no es sencillo. ¿Cómo? ¿he oído handout?. Efectivamente, la pestaña handout de Impress se supone que permite configurar cómo queremos imprimir las diapositivas. De hecho, en OOo 2.x funcionaba perfectamente siguiendo estos pasos. Pero héte aquí que a alguien se le ocurrió que esa no era una buena forma de funcionar. Por lo que «mejoró» la funcionalidad (Issue 85355: Enhance handout printing in impress) y decidió que lo de modificar el handout a mano era una chapucilla, así que, «dejamos la pestaña de handout accesible pero cuando el usuario le dé a imprimir, pues… no hará caso a lo que diga el handout». Qué majos los developers…

Así que la gente se ha enfadado y ha montado el numerito (el 94055 para ser exactos 😉
Issue 94055: Can no longer print handouts with customized size and arrangement of the preview objects

Vale, después de todo este rollo, «¡una solución quiero!». Enter FSniper. Esta aplicación puede verse como un monitorizador de la actividad en disco (de una o varias carpetas del disco). Cada vez que entre algún fichero de interés en la carpeta que queramos monitorizar, FSniper «saltará». ¿Y qué hará? Lo que le digamos. Por ejemplo: quiero que FSniper monitorice la carpeta /tmp/pdf . Cada vez que guarde un PDF en esa carpeta, quiero que FSniper ejecute el siguiente comando:

$ pdfnup --nup 2x2 --frame true --outfile /tmp/2x2/fichero-2x2.pdf  fichero.pdf

PDFNup es una de esas pequeñas joyas de los sistemas Unix que hacen su trabajo a la perfección: recoge un fichero.pdf y lo convierte en otro a 4 páginas por cara (2×2), enmarcando (frame) cada cuadrante (es sólo un ejemplo… «man» es vuestro amigo)

Así que, repasando, cuando FSniper detecta un nuevo PDF (normal, a 1 página por cada cara) en la carpeta /tmp/pdf queremos que lo pase por el comando pdfnup, lo convierta a 2×2 y lo deje en la carpeta /tmp/2×2 .

Bien, para hacer justamente eso, basta con instalar FSniper:

$ sudo apt-get install fsniper

y configurarlo (editar el fichero ~/.config/fsniper/config )

watch {
	/tmp/pdf {
		*.pdf {
			handler = pdfnup --nup 2x2 --frame true --outfile /tmp/2x2/`basename %%`  %%
		}
	}	
}

Nota 1: basename es necesario para recoger únicamente el nombre del fichero, y no su ruta completa.
Nota 2: no olvidarse de lanzar fsniper:

$ fsniper --daemon

Nota 3: si el directorio /tmp es compartido, igual no te interesa que lo que imprimas se quede ahí…

Ahora viene la magia: desde OpenOffice.org Impress, pulsamos en el botoncito de «Exportar a PDF». Elegimos la carpeta /tmp/pdf y guardamos. Abrimos con nuestro explorador de archivos la carpeta /tmp/2×2 y ahí tendremos a nuestro flamante PDF a 2×2, convertido por arte de magia por FSniper.

Obviamente lo que comento es sólo la punta del iceberg. Las posibilidades son infinitas (¿por qué no compartir la carpeta /tmp/pdf y /tmp/2×2 en la red y ofrecer el servicio para toda la LAN? ¿y un script que lo suba automáticamente a Moodle? y…)

3 comentarios en «OpenOffice.org ecológico con FSniper»

  1. Que digo yo, no es más sencillo guardar la presentación como PDF y luego imprimir el PDF desde el Evince/Kpdf/Acrobat de turno haciendo que imprima 2 ó 4 diapositivas por página? Vamos o sino una vez guardado la presentación como pdf usar pdfnup desde la línea de comandos, generar el nuevo pdf con 2 ó 4 por página e imprimirlo directamente.

    Tener un demonio sólo para eso me parece algo excesivo, bastante demonitis hay ya en Ubuntu 😉

  2. @etxekalte: tienes razón en que es más fácil dar la orden pdfnup desde la línea de comandos, o abrir Evince y desde las opciones de impresión seleccionar varios páginas por cara. Pero… ¿y lo que hemos aprendido por el camino con este post? 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.