viernes, 10 de enero de 2014

Cómo crear un calendario

Ahora que estamos a primeros de año, y los Bancos cada vez regalan menos calendarios (y/o cada vez son más feos), quizás sea el momento de recordar que hay una aplicación que se llama 'pcal', que está en los repos, que permite crear documentos 'ps' (postscript, que, con convert, se pueden pasar fácilmente a png, pdf, etc)
Para instalarla, basta ejecutar, en una terminal 
sudo apt-get update && sudo apt-get install pcal
Hecho esto... ¿cómo generar el calendario?
Pues hay que empezar diciendo que 'pcal' es un comando muy potente, no hay más que ver, escribiendo en consola 'man pcal', sus posibilidades de configuración.
Y que es un bonito ejercicio profundizar en este tema. 
Por ejemplo, para generar un calendario de todo el año, escribiríamos en consola... (ábrela, por ejemplo, en el Escritorio, para que te guarde ahí el archivo resultante)
pcal -P letter -l -a es -F Monday -o calendario_2014.ps 1 2014 12 
o, para personalizarlo un poco más, podría escribir esto otro
pcal -P a4 -l -K -s 0.99:/0.57 -t Arial-Bold/55 -d Arial-Bold/35 -G sun -g sat -a es -F Monday 2014 -o Calendario2014.ps 
(mira, por ejemplo, aquí). Pero hay algo más: se puede crear un archivo de configuración para una mayor personalización, incluyendo, además los festivos y eventos, u otras cosillas, que queramos.

Calendario pcal con eventos
Los archivos de eventos (o de configuración) son archivos de texto plano donde se pueden especificar opciones de formato del calendario y, lo más importante, eventos o actividades.
Se pueden hacer con cualquier editor de textos (por ejemplo, con Gedit)
En /usr/share/doc/pcal/examples/... pcal ofrece varios ejemplos de configuración, que merece la pena ver. Y un pcal-cfg.txt.gz interesante.
Si creamos uno, el archivo se puede guardar con el nombre que se quiera, pero con codificación de caracteres Occidental (ISO-8859-15) si el texto está escrito es español. Esto es necesario porque pcal todavía no se ha actualizado para usar UTF-8 como la mayoría de los sistemas modernos. La codificación de caracteres se puede elegir en la ventana que aparece al guardar un archivo nuevo o al seleccionar la opción de Guardar cómo en cualquier editor de texto.
Yo, por ejemplo, me he empezado a crear, con el editor gedit, este proyecto de configuración de 'calendario con eventos' (que llamaré miConfig_pcal.txt)
# MI CALENDARIO DE EVENTOS y SUS OPCIONES ('opt') DE FORMATO 
# guardaré este archivo, con nombre 'miCONFIG_pcal.txt, en la ruta que quiera. 
# luego abriré una consola, para ejecutar pcal en esa ruta y escribiré (en este caso) la orden
# pcal -f miCONFIG_pcal.txt -o PruebaCalendario_OK.ps 1 2014 12

# Formato de los datos (E: Europa) 
opt -E
#
# Tamaño del papel (letter, a4, legal, tabloid...) 
 opt -P a4 

# Orientación del papel: (l, para apaisado (landscape), o p, para vertical (portrait))
opt -l 

# Idioma del texto del calendario (es, para español) 
opt -a es 

# Primer día de la semana (hay que ponerlo en inglés, que es el idioma por defecto de pcal) 
 opt -F Monday 

# Tipografías: -t (para nombre del mes), -d (para números de cada día), -n (para texto de Eventos)
opt -t Arial-Bold/40 -d Arial/35 -n Times-Roman/12 

#Color de los días/color de los cuadros vacíos: escala de 0 a 1: Valor bajo (0,5) tiende a negro y alto ( 0,9) a color. 
# y el signo : (dos puntos) es para activar el color de los días que marquemos con -g, o -G (reborde)
opt -s 0,9:/0,75 
# Dias con color especial (sábados y domingos) 
opt -G sun 
opt -g sat 

# Añadir pequeño calendario de mes anterior y siguiente al principio/final de la hoja de cada mes 
opt -K 

# LISTA DE EVENTOS y FESTIVOS 
# en modo texto hay que ponerlo en inglés: jan feb mar apr may jun jul aug sep oct nov dec 
# y mon/Monday, tue/Tuesday, wed/Wednesday, thu/Thursday, fri/Friday, sat/Saturday, sun/Sunday
# ============= 
# EVENTOS 
# ============= 
# (las fechas se pueden poner en formato 'dd.mm' o en modo texto 'dia mes' (el mes en inglés))
04.03 Martes de Carnaval 
05.03 Témporas Primavera  
06 apr Cumpleaños Isabel 
11.06 Témporas Verano 
17.09 Témporas Otoño 
22 sep Anniversaire Sophie 
17.12 Témporas Invierno 
# ============ 
#FESTIVOS 
# ============
01 jan Año Nuevo 
06 jan Día de Reyes 
19 mar San José
17.04 Jueves Santo 
18.04 Viernes Santo 
19.04 Sábado Santo 
20.04 Domingo Resurrección 
21.04 Lunes de Pascua 
01.05 1º de Mayo 
10 jun Martes de Campo 
22.07 La Magdalena 
15 aug La Asunción 
08.09 Covadonga-Dia de Asturias 
21.09 San Mateo 
12 oct El Pilar 
01 nov Todos los Santos 
06.12 Fiesta de la Constitución 
08.12 La Inmaculada 
25 dec Navidad
Finalmente, abro una consola en la ruta donde he guardado este archivo de texto y ejecuto la siguiente orden: 
pcal -f miCONFIG_pcal.txt -o PruebaCalendario_OK.ps 1 2014 12

y, si ahora quiero convertirlo en PDF, basta hacer... 
convert PruebaCalendario_OK.ps Calendario2014.pdf
(posiblemente, desde el propio visor de Documentos, tengas que girar el PDF 90º a la derecha)
Como decía al principio, profundizar en las posibilidades de pcal es un bonito ejercicio para practicar con las ordenes por consola. Aprendes cosas. Por ejemplo, yo todavía estoy peleándome por cómo conseguir un 'calendario con eventos' con los sábados en negro y los domingos y festivos en rojo. 
Pero debo confesar un secreto: como soy más 'práctico' que 'teórico' , puede resultar más cómodo usar una Hoja de Cálculo. O, aún mucho más cómodo, crearte tu propio calendario, o plantilla, en Excel, a partir de esta web y ponerlo, luego, a tu gusto.
Pero ya sabes: para gustos se hicieron los colores... y para helados, los sabores.

1 comentario:

  1. Tiene buena pinta, lo voy a probar.

    Yo no he pasado del "cal 2014 > calendario.txt" :)

    Gracias!

    ResponderEliminar